DIY Ultraschall-Sicherheitssystem mit Arduino: Echtzeit-Entfernungsmessung & Alarm
Benötigte Bauteile
| Komponente | Anzahl |
|---|---|
| Arduino UNO | 1 |
| Ultraschallsensor HC-SR04 | 1 |
| Piezo-Summer (Buzzer) | 1 |
| LEDs: Rot, Gelb, Grün | je 1 |
| Widerstände 220 Ω (für LEDs & Buzzer) | 4 |
| Steckbrett & Jumper-Wires (ca. 10) | 1 Set |
Aufbau & Verkabelung
Stromversorgung
Arduino 5 V → Breadboard + Schiene Arduino GND → Breadboard – Schiene
HC-SR04
VCC → + Schiene GND → – Schiene Trig → Arduino Pin 2 Echo → Arduino Pin 3
LEDs (Anode an Pin, Kathode über 220 Ω an GND)
Grün → Pin 6 Gelb → Pin 5 Rot → Pin 4
Buzzer
Plus (längerer Pin) → Pin 7 Minus (kürzer) → 220 Ω → GND
Hinweis: Der 220-Ω-Widerstand am Buzzer reduziert Lautstärke und schützt den Piezo vor Überlastung.
Funktionsweise
Der HC-SR04 misst die Entfernung per Laufzeitmessung eines Ultraschallpulses. Der Arduino wertet aus und schaltet LEDs + Buzzer gestaffelt:
- > 50 cm: Keine LED, kein Ton (Bereich außerhalb).
- 20–50 cm: Grüne LED an (Bereich „Beobachtung“).
- 5–20 cm: Gelbe LED an (Bereich „Warnung“).
- < 5 cm: Rote LED an + Buzzer piept (Bereich „Alarm“).
Serieller Monitor gibt die Entfernung in cm aus (oder „Outside the permissible range“).
Code (korrigiert & kommentiert)
#define TRIG_PIN 2
#define ECHO_PIN 3
#define LED_GREEN 6
#define LED_YELLOW 5
#define LED_RED 4
#define BUZZER_PIN 7
int alarmTone = 500; // Hz
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(LED_YELLOW, OUTPUT);
pinMode(LED_RED, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
long duration, distanceCm;
// Trigger-Puls
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Echo auslesen
duration = pulseIn(ECHO_PIN, HIGH);
distanceCm = (duration / 2) / 29.1; // cm
// LEDs
digitalWrite(LED_GREEN, (distanceCm < 50) ? HIGH : LOW);
digitalWrite(LED_YELLOW, (distanceCm < 20) ? HIGH : LOW);
digitalWrite(LED_RED, (distanceCm < 5) ? HIGH : LOW);
// Buzzer & Serial
if (distanceCm > 5 || distanceCm <= 0) {
Serial.println("Outside the permissible range of distances");
noTone(BUZZER_PIN);
} else {
Serial.print(distanceCm);
Serial.println(" cm");
tone(BUZZER_PIN, alarmTone);
}
delay(300);
}
Korrekturen gegenüber Original: Variable distanceincm vereinheitlicht, distance durch distanceCm ersetzt, Buzzer-Pin-Name korrigiert (soundbuzzer → BUZZER_PIN).
Erweiterungsideen
- Relais für externe Sirene / Licht ansteuern.
- OLED-Display für Entfernungsanzeige.
- Loggen auf SD-Karte mit Zeitstempel (RTC).
- Mehrere Sensoren für Überwachung eines Raumes.
Fazit
Ein klassisches Einsteigerprojekt, das Ultraschall-Entfernungsmessung, bedingte Logik und Aktoren (LED, Buzzer) anschaulich demonstriert. Der Code ist bewusst einfach gehalten – ideal zum Experimentieren und Erweitern.
Herstellungsprozess
- ESP32-CAM Bewegungserkennungs-Kamera für Discord
- Arduino Digitaler Würfel: LCD-Würfel mit Zufallszahlen (1–6)
- 37-LED-Roulette-Spiel mit Arduino Nano bauen – Europäisches Layout
- ATtiny85 Mini-Arcade: Snake – Handheld OLED-Spielekonsole selbst bauen
- Tragbarer Entfernungsmesser – Arduino Nano DIY-Kit mit HC-SR04, 18650-Akku und 3D-gedrucktem Gehäuse
- Smart Home Automatisierung & Sicherheitssystem mit 1Sheeld
- Smart-Home Pflanzenbewässerungssystem mit Arduino Nano
- Kupfer-Galvanik-Projekt: Intelligentes System mit Arduino UNO bauen
- NeoPixel-Matrix Pong auf Arduino Nano: Neon-Pong selbst bauen
- Beeindruckende Lichtsequenzen mit Arduino und Schieberegister erstellen