Nota

Ciao, benvenuto nella community SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.

Perché unirsi?

  • Supporto esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.

  • Impara e condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.

  • Anteprime esclusive: Accedi in anteprima agli annunci di nuovi prodotti.

  • Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni e omaggi festivi: Partecipa a omaggi e promozioni speciali durante le festività.

👉 Pronto per esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!

3.1 Sistema di Assistenza al Parcheggio

Panoramica

Con lo sviluppo della scienza e della tecnologia, molte innovazioni hi-tech sono state integrate nelle automobili, tra cui il sistema di assistenza al parcheggio. Qui utilizziamo sensori ultrasonici, LCD, LED e buzzer per creare un semplice sistema di assistenza al parcheggio basato su ultrasuoni.

Componenti necessari

../_images/Part_three_1.png

Circuito Fritzing

In questo esempio, il cablaggio è mostrato di seguito.

../_images/image264.png

Schema elettrico

../_images/image265.png

Codice

Nota

  • Puoi aprire direttamente il file 3.1_reversingAid.ino nella cartella sunfounder_vincent_kit_for_arduino\code\3.1_reversingAid.

  • Qui viene utilizzata la libreria LiquidCrystal I2C, che puoi installare dal Library Manager.

    ../_images/lib_liquidcrystal_i2c.png

Spiegazione dell’Esempio

Questo codice ci aiuta a creare un semplice dispositivo di misurazione della distanza che misura la distanza tra oggetti e fornisce feedback tramite un display LCD e un buzzer.

La funzione loop() contiene la logica principale del programma e viene eseguita continuamente. Analizziamola nel dettaglio.

  1. Ciclo per leggere la distanza e aggiornare i parametri

    Nella funzione loop, il codice legge la distanza misurata dal modulo ultrasonico e aggiorna il parametro dell’intervallo in base alla distanza.

    // Aggiorna la distanza
    distance = readDistance();
    
    // Aggiorna gli intervalli in base alla distanza
    if (distance <= 10) {
        intervals = 300;
    } else if (distance <= 20) {
        intervals = 500;
    } else if (distance <= 50) {
        intervals = 1000;
    } else {
        intervals = 2000;
    }
    
  2. Controlla se è il momento di emettere un segnale acustico

    Il codice calcola la differenza tra il tempo corrente e l’ultimo segnale acustico emesso. Se la differenza è maggiore o uguale al tempo dell’intervallo, attiva il buzzer e aggiorna il tempo dell’ultimo segnale.

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

    Il codice cancella il display LCD e visualizza «Dis:» e la distanza corrente in centimetri sulla prima riga.

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