Ultraschallsensor - Eine Einführung
Erstellt von Frank Lüthjohann und Viktor Reichert
Benötigtes Material
- Arduino Uno
- USB-Kabel für den Arduino
- Ultraschallsensor (HC-SR04)
- 4x MW-Kabel
Als PDF
Beschreibung
Damit ein Roboter seine Umgebung wahrnehmen kann braucht er Sensoren. Es
gibt verschiedene Arten von Sensoren. Wir wollen uns zunächst mit dem
Ultraschallsensor beschäftigen. Er sendet und empfängt Schall und kann
so erkennen, ob sich vor ihm Gegenstände befinden. Das funktioniert
genauso wie bei Fledermäusen, die sich so in der Dunkelheit
zurechtfinden!
Der Ultraschallsensor besteht aus drei Hauptkomponenten
- Einem Lautsprecher (Trig), welcher Schall aussendet.
- Einem Mikrofon (Echo), welches den Schall empfängt.
- Einer Stromversorgung (Vcc und Gnd).
Verkabelung
Trig | 9 |
Echo | 10 |
Vcc | 5V |
GND | GND (Ground) |
Code
Wir wollen unserem Arduino nun beibringen, eine LED in Pin 13 leuchten
zu lassen, wenn ihm etwas zu nahe kommt. Wir verwenden dazu folgenden
Code:
int trigPin = 9;
int echoPin = 10;
int ledPin = 13;
int zeit; // Hier speichern wir, wie lange der Schall unterwegs ist.
int abstand; // Hier speichern wir den gemessenen Abstand.
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
// Wir messen den Abstand zum nächsten Objekt.
digitalWrite(trigPin, LOW); // Lautsprecher aus.
delay(2);
digitalWrite(trigPin, HIGH); // Lautsprecher gibt Ton aus.
delay(10);
digitalWrite(trigPin, LOW); // Lautsprecher aus.
zeit = pulseIn(echoPin, HIGH); // Hier wird gemessen, wann das Mikrofon den
// Ton hört.
abstand = zeit * 0.034 / 2; // Umrechnung des Abstands von Zeit in
// Zentimeter.
if (abstand < 12) { // Wenn der Abstand kleiner als 12 Zentimeter ist.
digitalWrite(ledPin, HIGH); // Schalte die LED an.
} else { // sonst
digitalWrite(ledPin, LOW); // Schalte die LED aus.
}
}
Aufgaben
Probiere verschiedene Abstände aus! Wie zuverlässig arbeitet der Sensor
auf längere und kürzere Distanzen?
Was schätzt zu wie breit ist der Winkel, in dem die Sensoren gut
arbeiten? Vergleiche das mit dem Winkel deiner Augen!
Was passiert, wenn du den else-Block weglässt? Kannst du dir einen
Apparat vorstellen, bei dem so ein Verhalten gewünscht ist?
Die LED geht nach dem ersten Anschalten nicht mehr aus.
Programmiere ihn so, dass er Hindernissen ausweicht!
Welche Funktionen fallen dir ein, die man mit noch mit dem
Ultraschallsensor umsetzen kann! Welche Funktionen kannst du mit mehr
als einem Sensor umsetzen?
Bewegungsensor, Hand in eine Richtung folgen
Wie viele Sensoren wären nötig, damit der Roboter deiner Hand folgt,
wenn du sie vor ihm bewegst? Wie könnte ein Code aussehen, der das
umsetzt?
Es ist möglich dies mit zwei Sensoren umzusetzen, die leicht Versetzt
angeordnet sind.