Advanced - Ultraschallsensor mit LED
- Arduino Uno
- Ultraschallsensor (HC-SR04)
- großes Breadboard
- 11x MM-Kabel
- 4 verschiedenfarbige LED (rot, gelb, grün, blau)
Beschreibung
Im Folgenden soll ein Ultraschallsensor (siehe AB Ultraschallsensor) mit vier LED’s (siehe AB Led ansteuern) verbunden werden und je nach Entfernung eines Objektes soll eine andere LED aufleuchten.
Verkabelung
HC-SR04 | Arduino | Sonstiges |
---|---|---|
VCC | 5V | |
GND | GND | über das Breadboard |
Trig | 2 | |
Echo | 3 |
LED | Arduino | GND am Breadboard |
---|---|---|
GELB | 8 | über seitlichen Leisten |
ROT | 9 | über seitlichen Leisten |
BLAU | 10 | über seitlichen Leisten |
GRÜN | 11 | über seitlichen Leisten |

Schaltplan
Code
// Angeschlossene LEDs.
int LED_GELB = 8;
int LED_ROT = 9;
int LED_BLAU = 10;
int LED_GRUEN = 11;
// Pins für den Sensor.
int TRIG_PIN = 2;
int ECHO_PIN = 3;
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED_GELB, OUTPUT);
pinMode(LED_ROT, OUTPUT);
pinMode(LED_BLAU, OUTPUT);
pinMode(LED_GRUEN, OUTPUT);
}
void loop() {
// Speichern, wie lange der Schall unterwegs ist.
long zeit;
// Speichern des gemessenen Abstandes.
long abstand;
// Wir messen den Abstand zum nächsten Objekt.
digitalWrite(TRIG_PIN, LOW); // Lautsprecher aus.
delay(2);
digitalWrite(TRIG_PIN, HIGH); // Lautsprecher gibt Ton aus.
delay(10);
digitalWrite(TRIG_PIN, LOW); // Lautsprecher aus.
zeit = pulseIn(ECHO_PIN, 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 < 25) { // Wenn der Abstand kleiner als 25 Zentimeter ist...
digitalWrite(LED_ROT, HIGH); // ... schalte die rote LED an,
// und alle anderen LEDs aus.
digitalWrite(LED_GELB, LOW);
digitalWrite(LED_BLAU, LOW);
digitalWrite(LED_GRUEN, LOW);
} else if (abstand < 100) { // Größer als 25 cm und kleiner als 1m...
digitalWrite(LED_GELB, HIGH); // ... schalte die gelbe LED an,
// und alle anderen LEDs aus.
digitalWrite(LED_ROT, LOW);
digitalWrite(LED_BLAU, LOW);
digitalWrite(LED_GRUEN, LOW);
} else if (abstand < 200) { // Größer als 1m und kleiner als 2m...
digitalWrite(LED_GRUEN, HIGH); // ... schalte die grüne LED an,
// und alle anderen LEDs aus.
digitalWrite(LED_ROT, LOW);
digitalWrite(LED_BLAU, LOW);
digitalWrite(LED_GELB, LOW);
} else if (abstand < 300) { // Größer als 2m und kleiner als 3m...
digitalWrite(LED_BLAU, HIGH); // ... schalte die blaue LED an,
// und alle anderen LEDs aus.
digitalWrite(LED_ROT, LOW);
digitalWrite(LED_GELB, LOW);
digitalWrite(LED_GRUEN, LOW);
} else { // Sonst, wenn die Entfernung größer als 3m, schalte alle LEDs aus.
digitalWrite(LED_GELB, LOW);
digitalWrite(LED_ROT, LOW);
digitalWrite(LED_BLAU, LOW);
digitalWrite(LED_GRUEN, LOW);
}
}
Aufgaben
Wie misst ein Ultraschallsensor die Entfernung zu einem Hindernis?
siehe AB Ultraschallsensor
Erkläre was der Echo- und Triggerpin sind und wie sie den Abstand messen.
siehe AB Ultraschallsensor
Was ist bei der LED die Anode und was die Kathode?
- Die Anode ist der Pluspol und das lange Bein der LED.
- Die Kathode ist der Minuspol und das kurze Bein der LED.
Häufige Fragen und Probleme
Wieso leuchten einige LEDs nicht?
- Alle Anschlüsse überprüft und richtig verkabelt?
- Der Abstand ist wohl nicht klein/groß genug, um in einen der Fälle zu springen und die LED zum Leuchten zu bringen. Gehe etwas näher heran/weiter weg.
Meine LEDs springen während des Leuchtens immer hin und her, was bedeutet das?
Deine Messbahn ist wohl nicht ganz frei von Hindernissen, welche der Sensor als solche erkennt und deshalb eine wechselnde Entfernung angibt. Sorge für eine freie Messbahn, um, vor allem für die grüne und blaue LED, genauere Ergebnisse zu erzielen. Stehe zudem gerade und ruhig beim Messen oder stelle das Gerät auf eine feste Unterlage, denn schon durch leichtes Ruckeln werden andere Bereiche erkannt und somit andere Werte gemessen.
Das Material und dessen Inhalte sind - sofern nicht anders angegeben - lizenziert unter der Creative Commons Lizenz CC BY-NC-SA 4.0 (für den vollständigen Lizenztext siehe https://creativecommons.org/licenses/by-sa/4.0/legalcode )