⭐⭐ Fortgeschrittener Anfänger
⏱️ 20 Minuten
Parksensor
Du baust einen Parksensor, genau wie in einem Auto. Je näher du an den Sensor kommst, desto schneller piept der Summer. Ganz nah dran? Dann hörst du einen langen Ton.
🧰 Was brauchst du?
🗺️ Schaltplan
Folge den Drähten vom Arduino zu jedem Teil. Die Farben der Drähte darfst du selbst wählen.
| Von | Nach |
|---|---|
Arduino UNO · D9 |
Abstandssensor HC-SR04 · Trig |
Arduino UNO · D10 |
Abstandssensor HC-SR04 · Echo |
Arduino UNO · 5V |
Abstandssensor HC-SR04 · Vcc |
Arduino UNO · GND |
Abstandssensor HC-SR04 · Gnd |
Arduino UNO · D8 |
Aktiver Summer · S |
Arduino UNO · 5V |
Aktiver Summer · + |
Arduino UNO · GND |
Aktiver Summer · - |
🛠️ So baust du es
- Schließe den HC-SR04 an: Trig an Pin 9, Echo an Pin 10, Vcc an 5V und Gnd an GND.
- Schließe den Summer an: S an Pin 8, + an 5V und − an GND.
- Nutze die + und − Leisten auf deinem breadboard für 5V und GND.
💻 Der Code
// Parksensor
// Je näher du an den Sensor kommst, desto schneller piept der Summer. Wie im Auto!
const int TRIG_PIN = 9; // Trig des HC-SR04 an Pin 9
const int ECHO_PIN = 10; // Echo des HC-SR04 an Pin 10
const int SUMMER_PIN = 8; // S des Summers an Pin 8
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(SUMMER_PIN, OUTPUT);
}
// Misst den Abstand in Zentimetern
long missAbstand() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH); // Sende einen kurzen Ton (den du nicht hörst)
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long zeit = pulseIn(ECHO_PIN, HIGH, 30000); // Wie lange dauert es, bis das Echo zurückkommt?
if (zeit == 0) return 999; // Kein Echo: nichts in der Nähe
return zeit / 58; // Zeit in Zentimeter umrechnen
}
void loop() {
long abstand = missAbstand();
Serial.print(F("Abstand: "));
Serial.print(abstand);
Serial.println(F(" cm"));
if (abstand < 5) {
digitalWrite(SUMMER_PIN, HIGH); // Sehr nah: ein langer Ton
delay(100);
} else if (abstand < 50) {
digitalWrite(SUMMER_PIN, HIGH); // Kurzer Piepton
delay(50);
digitalWrite(SUMMER_PIN, LOW);
delay(abstand * 10); // Näher dran = kürzere Pause = schnelleres Piepen
} else {
digitalWrite(SUMMER_PIN, LOW); // Weit weg: still
delay(100);
}
}
🧠 Was macht der Code?
missAbstand()sendet einen Ton und misst, wie lange es dauert, bis das Echo zurückkommt. Das rechnen wir in Zentimeter um.- Weiter als 50 cm: Der Summer ist still.
- Näher dran: Die Pause zwischen den Pieptönen wird kürzer. Unter 5 cm piept er die ganze Zeit.
🎯 Probier mal …
- Lass den Parksensor schon ab 1 Meter piepen
- Füge eine rote LED hinzu, die leuchtet, wenn es zu nah ist
- Zeige den Abstand im seriellen Monitor, mit einem kleinen Balken aus Sternchen
🚀 Baue dieses Projekt mit Codey: Öffne codey.online/de/starter-kits/uno/projects/parking-sensor und klicke auf BAU DAS. Dann sind der Code und der Schaltplan sofort bereit.
Codey Online ist ein Produkt von OTRONIC