Bemerkung

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!

6.4 Rückwärts-Hilfssystem

Mit dem Fortschritt von Wissenschaft und Technologie wurden viele Hightech-Produkte in Autos eingebaut. Eines davon ist das Rückwärts-Hilfssystem. In diesem Projekt verwenden wir ein Ultraschallmodul, LCD, LED und Buzzer, um ein einfaches ultraschallbasiertes Rückwärts-Hilfssystem zu erstellen.

Benötigte Komponenten

Für dieses Projekt benötigen wir folgende Komponenten.

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

Name

ARTIKEL IN DIESEM KIT

LINK

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

Sie können diese auch separat über die folgenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

Arduino Uno R4 Minima

-

Breadboard

KAUFEN

Jumper-Kabel

KAUFEN

Widerstand

KAUFEN

LED

KAUFEN

Summer

KAUFEN

I2C LCD1602

KAUFEN

Ultraschall-Modul

KAUFEN

Schaltplan

../_images/image265.png

Verdrahtung

../_images/6.4_reversing_aid_bb.png

Code

Bemerkung

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

  • Oder kopieren Sie diesen Code in die Arduino IDE.

  • Die Bibliothek LiquidCrystal I2C wird hier verwendet. Sie können diese 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 ändert dann die Tonfrequenz je nach Entfernung.

Bemerkung

Wenn Code und Verkabelung in Ordnung sind, das LCD aber 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 und Feedback über ein LCD-Display und einen Buzzer geben kann.

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

  1. Schleife zum Lesen der Entfernung und Aktualisieren von Parametern

    In der loop liest der Code zuerst die vom Ultraschallmodul gemessene Entfernung und aktualisiert den Intervall-Parameter basierend auf der 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 den Unterschied zwischen der aktuellen Zeit und der vorherigen Piep-Zeit. Wenn der Unterschied größer oder gleich der Intervall-Zeit ist, löst er den Buzzer aus und aktualisiert die vorherige Piep-Zeit.

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

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

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