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¶
Fritzing-Schaltung¶
In diesem Beispiel ist die Verdrahtung unten dargestellt.
Schematische Darstellung¶
Code¶
Bemerkung
Sie können die Datei
3.1_reversingAid.ino
unter dem Pfadsunfounder_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.
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.
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; }
Ü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; }
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);