3.1 Rückfahrhilfe

Überblick

Mit der Entwicklung von Wissenschaft und Technologie wurden viele Hightech-Produkte in Autos eingebaut, darunter das Rückfahrassistenzsystem. Hier verwenden wir Ultraschallsensoren, LCD, LED und Summer, um ein einfaches Ultraschall-Rückfahrassistenzsystem herzustellen.

Erforderliche Komponenten

../_images/Part_three_1.png

Fritzing-Schaltung

In diesem Beispiel ist die Verdrahtung unten dargestellt.

../_images/image264.png

Schematische Darstellung

../_images/image265.png

Code

Bemerkung

  • Sie können die Datei 3.1_reversingAid.ino unter dem Pfad sunfounder_vincent_kit_for_arduino\code\3.1_reversingAid direkt öffnen.

  • Oder kopieren Sie diesen Code in Arduino IDE.

  • Die LiquidCrystal I2C-Bibliothek wird hier verwendet. Sie können sie über den Library Manager installieren.

    ../_images/lib_liquidcrystal_i2c.png

Code-Analyse

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

Die Funktion loop() enthält die Hauptlogik des Programms und läuft kontinuierlich. Werfen wir einen genaueren Blick auf die loop() Funktion.

  1. Schleife zur Distanzmessung und Aktualisierung der Parameter

    Innerhalb der loop liest der Code zuerst die vom Ultraschallmodul gemessene Entfernung und aktualisiert den Intervallparameter basierend auf dieser Entfernung.

    // Update the distance
    distance = readDistance();
    
    // Update intervals based on distance
    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 zum Piepen ist

    Der Code berechnet die Differenz zwischen der aktuellen Zeit und der letzten Piepzeit. Wenn die Differenz größer oder gleich der Intervallzeit ist, wird der Summer ausgelöst und die letzte Piepzeit aktualisiert.

    unsigned long currentMillis = millis();
    if (currentMillis - previousMillis >= intervals) {
        Serial.println("Piepen!");
        beep();
        previousMillis = currentMillis;
    }
    
  3. LCD-Display 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);