6.4 Einparkhilfe

Mit der Entwicklung von Wissenschaft und Technik wurden viele High-Tech-Produkte in Autos eingebaut, unter denen das Einparkhilfesystem eines der bekanntesten ist. In diesem Projekt nutzen wir ein Ultraschallmodul, LCD, LED und Buzzer, um ein einfaches Ultraschall-Einparkhilfesystem zu erstellen.

Benötigte Bauteile

Für dieses Projekt benötigen wir die folgenden Komponenten.

Es ist sicherlich praktisch, ein komplettes Set zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

Sie können sie auch separat über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

SunFounder R3 Platine

BUY

Breadboard

BUY

Jumper-Kabel

BUY

Widerstand

BUY

LED

BUY

Summer

BUY

I2C LCD1602

BUY

Ultraschall-Modul

BUY

Schaltplan

../_images/image265.png

Verdrahtung

../_images/backcar.png

Code

Bemerkung

  • Sie können die Datei 6.4_reversingAid.ino direkt im Pfad 3in1-kit\basic_project\6.4_reversingAid öffnen.

  • Oder kopieren Sie diesen Code in die Arduino IDE 1/2.

  • Hier wird die Bibliothek LiquidCrystal I2C verwendet. Sie können sie aus dem Library Manager installieren.

    ../_images/lib_liquidcrystal_i2c.png

Nachdem der Code erfolgreich hochgeladen wurde, wird die aktuell erkannte Entfernung auf dem LCD angezeigt. Der Buzzer wird dann die Klangfrequenz je nach Entfernung ändern.

Bemerkung

Wenn der Code und die Verdrahtung korrekt sind, aber das LCD dennoch keinen Inhalt anzeigt, können Sie das Potentiometer auf der Rückseite drehen.

Wie funktioniert das?

Dieser Code hilft uns, ein einfaches Entfernungsmessgerät zu erstellen, das die Entfernung zwischen Objekten messen kann und Feedback über ein LCD-Display und einen Summer liefert.

Die Funktion loop() enthält die Hauptlogik des Programms und läuft kontinuierlich. Schauen wir uns die Funktion loop() genauer an.

  1. Schleife zum Auslesen der Entfernung und Aktualisieren von Parametern

    In der loop liest der Code zuerst die vom Ultraschallmodul gemessene Entfernung aus und aktualisiert den Intervall-Parameter basierend auf dieser Entfernung.

    // Entfernung aktualisieren
    distance = readDistance();
    
    // Intervalle basierend auf der Entfernung aktualisieren
    if (distance <= 10) {
        intervals = 300;
    } else if (distance <= 20) {
        intervals = 500;
    } else if (distance <= 50) {
        intervals = 1000;
    } else {
        intervals = 2000;
    }
    
  2. Überprüfen, ob es Zeit für einen Signalton ist

    Der Code berechnet die Differenz zwischen der aktuellen Zeit und der letzten Signalton-Zeit. Wenn die Differenz größer oder gleich der Intervallzeit ist, löst er den Summer aus und aktualisiert die letzte Signalton-Zeit.

    unsigned long currentMillis = millis();
    if (currentMillis - previousMillis >= intervals) {
        Serial.println("Beeping!");
        beep();
        previousMillis = currentMillis;
    }
    
  3. LCD-Anzeige aktualisieren

    Der Code löscht das LCD-Display und zeigt dann „Dis:“ und die aktuelle Entfernung in Zentimetern in der ersten Zeile an.

    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Dis: ");
    lcd.print(distance);
    lcd.print(" cm");
    
    delay(100);