Automatische Tür mit Arduino & Ultraschallsensor bauen
Komponenten und Materialien
| Bauteil | Menge |
|---|---|
| Adafruit RGB Backlight LCD 16x2 | 1 |
| Ultraschallsensor HC-SR04 | 1 |
| Summer (Buzzer) | 1 |
| DC-Motor | 1 |
| Arduino UNO | 1 |
| Motorshield L293D | 1 |
| Jumper-Kabel | 1 |
Apps und Online-Dienste
- Arduino IDE
Projektbeschreibung
Automatisches Türöffnen mit Ultraschallsensor HC-SR04
Das Projekt realisiert ein automatisches Türöffnungssystem. Ein Sensor erkennt sich nähernde Personen oder Objekte. Solche Systeme sind in Einzelhandel, Supermärkten etc. weit verbreitet.
Das System wird von einem Arduino-Mikrocontroller gesteuert. Ein DC-Motor bewegt die Tür über Zahnstangen- und Ritzelgetriebe. Ein LCD zeigt den Türstatus an, ein Summer gibt während der Öffnungszeit Töne aus.
Das Gesamtsystem ist ein mechatronisches System, entworfen nach den sieben Schritten des mechatronischen Systementwurfs.
Schritt 1: Hardware & Werkzeuge beschaffen
LCD und Summer sind optional – sie dienen nur der visuellen/akustischen Statusanzeige.
Materialien:
- Computer mit Arduino IDE
- Arduino UNO R3 (ATmega328P)
- HC-SR04 Ultraschallsensor (2–400 cm, 3 mm Genauigkeit)
- 12V DC-Motor (Last: 70 mA, max 250 mA, Drehmoment 1,9 kgf·cm)
- LCD 16x2 Dot Matrix
- Piezo-Summer
- Motorshield L293D (vierfacher Halb-H-Treiber)
- Mechanik: Acrylplatten für Gehäuse mit Schiebetür
- Jumper-Kabel, Netzteil
Werkzeuge: Multimeter, Lötkolben (optional, aber hilfreich).
Warum Motorshield? Der Arduino liefert nur 5V bei begrenztem Strom. Der Motor zieht bei 12V mehr Strom – direkt am Arduino würde der Regler überhitzen. Der L293D wirkt als Verstärker.
Schritt 2: Arduino-Programm
Schritt 3: Hardware-Anschlüsse
Die Pins können je nach Board angepasst werden. Der Code enthält die Pin-Belegung.
Schritt 4: Hochladen & Stromversorgung
Sketch hochladen, System mit Strom versetzen. Video zeigt die Funktion.
Arduino-Code
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 8, 9, 1);
const int trigPin = 7;
const int echoPin = 4;
const int mt_En_Pin1 = 2;
const int mt_IN1_Pin2 = 3;
const int mt_IN2_Pin3 = 6;
int buzz = 10;
long duration;
int distance;
void setup() {
lcd.clear();
lcd.begin(16, 2);
lcd.print("WELCOME");
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(mt_En_Pin1, OUTPUT);
pinMode(mt_IN1_Pin2, OUTPUT);
pinMode(mt_IN2_Pin3, OUTPUT);
Serial.begin(9600);
pinMode(buzz, OUTPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
if (distance <= 5) {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(mt_En_Pin1, HIGH);
analogWrite(mt_IN1_Pin2, 50);
analogWrite(mt_IN2_Pin3, 0);
delay(2000);
analogWrite(mt_IN1_Pin2, 0);
analogWrite(mt_IN2_Pin3, 0);
delay(1000);
tone(buzz, 1000); delay(1000);
tone(buzz, 1000); delay(1000);
noTone(buzz);
delay(3000);
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Please Enter");
delay(1000);
analogWrite(mt_IN1_Pin2, 0);
analogWrite(mt_IN2_Pin3, 50);
delay(3000);
} else {
digitalWrite(13, LOW);
digitalWrite(mt_En_Pin1, LOW);
analogWrite(mt_IN1_Pin2, 50);
analogWrite(mt_IN2_Pin3, 0);
}
}
Schaltpläne & Aufbau
Herstellungsprozess
- Universelle IR-Fernbedienung mit Arduino bauen: Schritt-für-Schritt-Anleitung
- Arduino Iron Man bauen: Komponenten, Sensoren & Schritt-für-Schritt-Anleitung
- Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
- Selbstbau: Schlagbare, anpassbare Tasten mit Arduino und Piezo-Element
- Interaktive LED-Matrix Tür-Anzeige mit PIR-Bewegungssensor – Arduino Feiertagsgruß
- Erdmassen-Messung mit Arduino: Schritt-für-Schritt DIY-Anleitung
- Kontaktloser automatischer Türöffner mit Temperaturerkennung bauen
- DIY Arduino Lenkrad / Joystick für Rennspiele – USB-HID-Umbau
- Musikalische Töne mit Arduino erzeugen: Schritt-für-Schritt-Anleitung
- Digitaler Kompass in Echtzeit mit Arduino & Processing bauen