Es ist recht einfach, einen Arduino-basierten Garagen-Parkplatzsensor zu bauen, und Sie können Licht- und Tonanzeigen verwenden, um Sie auf den Mindestabstand aufmerksam zu machen. Es wird nicht empfohlen, dieses Projekt für Ultraschallsensoren in einem Auto zu verwenden, da diese eine große Fehlerspanne haben und nicht gegen Feuchtigkeit geschützt sind. Erwägen Sie den Einbau eines Parksensors mit Display 1602.
Bestandteile:
- Arduino Uno / Arduino Nano / Arduino Mega
- HC-SR04 Ultraschallsensor
- 1602 LCD-Display mit I2C
- Piezo Buzzer
- Dupont-Kabel
- Bibliothek LiquidCrystal_I2C.h und Ultrasonic.h
Als Erstes muss das Problem der Fehlalarme des Ultraschallsensors gelöst werden, indem im Programm eine Funktion mit mehreren Entfernungsmessungen erstellt und der arithmetische Mittelwert berechnet wird. Führen Sie dazu in der for-Schleife 10 Messungen hintereinander durch, addieren Sie das Ergebnis zur Gesamtsumme und teilen Sie am Ende der Schleife die erhaltene Summe durch die Anzahl der Messungen, d. h. durch 10.
Parksensor in der Garage mit Arduino und dem HC-SR04
LCD 1602 i2c | Arduino Uno | Arduino Nano | Arduino Mega |
GND | GND | GND | GND |
VCC | 5V | 5V | 5V |
SDA | A4 | A4 | 20 |
SCL | A5 | A5 | 21 |
Um den Parktronic zusammenzubauen, schließen Sie den Ultraschall-Entfernungsmesser, den Piezo-Lautsprecher und den LCD-Bildschirm an die Platine an, wie im Bild oben dargestellt. Dann fügen wir die Entfernungsausgabe auf dem Display und die Bedingung für die Aktivierung des Summers in das Programm ein. Die Zeit zwischen den Messungen und die Entfernung, bei der der Summer aktiviert wird, können in der Skizze geändert werden.
Programm Arduino für Parksensor mit Ultraschallsensor
#include "Ultrasonic.h" Ultrasonic ultrasonic (11, 12); //Trig, Echo #include "Wire.h" #include "LiquidCrystal_I2C.h" LiquidCrystal_I2C LCD(0x27,20,4); int del = 5; // Verzögerung zwischen den Messungen in µs int cm = 10; // Entfernung in cm, bei der der Summer ausgelöst wird void setup() { Serial.begin(9600); LCD.init(); LCD.backlight(); pinMode(4, OUTPUT); } void loop() { int distance, sum, total; // 10 Mal hintereinander eine Entfernungsmessung durchführen for (byte i = 0; i < 10; i++) { distance = ultrasonic.Ranging(CM); sum = sum + distance; delay(del); } total = sum / 10; // den Durchschnittswert berechnen Serial.println("Distance - " + String(total)); LCD.clear(); LCD.setCursor(0,0); LCD.print("Distance - "); LCD.print(total); if (total > cm) { noTone(4); } if (total <= cm) { tone(4, 100); } }
- Die Verzögerungszeit zwischen den Messungen und der Abstand beim Auslösen der Buzzer kann zu Beginn des Codes durch Ändern der Werte del & cm geändert werden;
- Die Anzahl der Messungen kann erhöht werden, was jedoch die Ausführungszeit verlängert, ohne die Qualität der Abstandsmessung grundlegend zu verändern.
Schlussfolgerung. Aufgrund der mangelnden Feuchtigkeitsresistenz der HC-SR04 Abstandssensoren ist es nicht empfehlenswert, das Gerät an einem Fahrzeug anzubringen. Daher ist es am besten, anstelle des 1602 i2c-Displays eine Lichtanzeige zu verwenden, für die rote, gelbe und grüne LEDs eingesetzt werden können. Diese dienen zur Anzeige der Entfernung zwischen dem Gerät und dem in die Garage einfahrenden Fahrzeug.
Schreibe einen Kommentar