Einparkhilfe mit HC-SR04 und dem LCD 1602 Arduino

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

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); }
}
  1. 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;
  2. 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.

5/5 - (1 vote)


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert