Lezione 20/31: Visualizzazione della distanza ultrasonica su LCD1602
Questo progetto dimostra come combinare un sensore di distanza a ultrasuoni HC-SR04 con un display LCD1602 abilitato I2C per creare un sistema di misurazione della distanza in tempo reale. Alla fine di questa guida, avrai un dispositivo funzionante che misura e visualizza continuamente la distanza da un oggetto in centimetri. Questa è un'abilità fondamentale nell'elettronica con Arduino, poiché combina l'input del sensore con l'output visivo.
Questa configurazione pratica può essere utilizzata in una varietà di applicazioni del mondo reale, tra cui:
- Creare un assistente di parcheggio intelligente che ti aiuta a valutare la distanza da un muro o da un altro veicolo.
- Costruire un semplice monitor del livello del liquido per un serbatoio misurando la distanza dalla parte superiore alla superficie.
- Sviluppare un dispenser automatico di disinfettante per le mani o un cestino senza contatto che si apre quando un oggetto è vicino.
- Costruire un allarme di sicurezza di base che si attiva quando qualcuno entra in una zona specifica.
Hardware e Componenti
Per costruire questo progetto, avrai bisogno dei seguenti componenti:
- Scheda Arduino (es., Uno)
- Display LCD1602 con modulo interfaccia I2C
- Sensore di distanza a ultrasuoni HC-SR04
- Cavi jumper
- Breadboard (opzionale, per connessioni più facili)
Capire l'LCD1602 e I2C
L'LCD1602 è un display popolare in grado di mostrare 16 caratteri per riga su due righe. Il modulo "I2C" sul retro è un vantaggio significativo perché riduce il numero di pin necessari per controllare il display da 6 o più a solo 2 per la comunicazione (SDA e SCL) e 2 per l'alimentazione (VCC e GND). Questa semplificazione rende il cablaggio molto più pulito e libera preziosi pin digitali sul tuo Arduino per altri sensori, come quello a ultrasuoni utilizzato in questo progetto. (nel video a 01:30)
Il modulo I2C presenta anche un piccolo potenziometro per regolare il contrasto del display. Se accendi il display e non vedi nulla, prova a girare questa vite finché il testo non diventa visibile. (nel video a 02:47)
Guida al Cablaggio
Collegare i componenti è semplice. Il modulo I2C dell'LCD ha quattro pin che devono essere collegati all'Arduino. Per il sensore a ultrasuoni, ha anche quattro pin.
Ecco una ripartizione delle connessioni:
Modulo I2C LCD1602 ad Arduino:
- GND a Arduino GND
- VCC a Arduino 5V
- SDA a Arduino A4
- SCL a Arduino A5
Sensore a ultrasuoni HC-SR04 ad Arduino:
- VCC a Arduino 5V
- Trig al pin digitale Arduino 12
- Echo al pin digitale Arduino 11
- GND a Arduino GND
Lo schema di cablaggio per questo progetto è referenziato nel video.
Installazione delle Librerie Richieste
Questo progetto si basa su due librerie cruciali. La prima, LiquidCrystal_I2C, è necessaria per controllare l'LCD e non è inclusa con l'IDE Arduino per impostazione predefinita. Puoi scaricarla dal link fornito nella descrizione del video o dal sito web Robojax. (nel video a 06:16)
La seconda libreria, NewPing, viene utilizzata per interfacciarsi con il sensore a ultrasuoni. Semplifica il processo di invio di un ping e lettura del tempo di eco. Entrambe le librerie possono essere installate tramite il Library Manager dell'IDE Arduino andando su Sketch -> Include Library -> Manage Libraries e cercando i loro nomi.
Spiegazione del Codice
Questo sketch combina la funzionalità dell'LCD e del sensore a ultrasuoni. Il codice è strutturato per essere facilmente configurabile per la tua configurazione specifica.
In cima al codice, troverai le variabili chiave che potresti dover regolare:
// Imposta l'indirizzo LCD a 0x27 per un display a 16 caratteri e 2 righe
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);
#define TRIGGER_PIN 12 // Pin Arduino collegato al pin trigger del sensore a ultrasuoni.
#define ECHO_PIN 11 // Pin Arduino collegato al pin echo del sensore a ultrasuoni.
#define MAX_DISTANCE 190 // Distanza massima che vogliamo misurare (in centimetri).
- Indirizzo LCD (0x27): Questo è l'indirizzo I2C del tuo modulo LCD. La maggior parte dei moduli utilizza
0x27, ma alcuni potrebbero usare0x3F. Se il tuo display non mostra nulla, potresti dover eseguire uno sketch di scansione I2C per trovare l'indirizzo corretto e aggiornare questo valore. (nel video a 08:11) - TRIGGER_PIN e ECHO_PIN: Questi definiscono i pin digitali Arduino collegati ai pin Trig e Echo del sensore a ultrasuoni. Se usi pin diversi, cambia queste definizioni.
- MAX_DISTANCE: Questo imposta la distanza massima in centimetri che il sensore misurerà. L'HC-SR04 può misurare fino a 400-500cm, ma impostare un valore più basso può migliorare l'accuratezza e l'affidabilità delle letture, specialmente per distanze più corte.
Nella funzione loop(), il codice esegue i seguenti passaggi:
- Utilizza la funzione
sonar.ping_cm()per misurare la distanza e memorizzarla nella variabiledistance. - Pulisce il display LCD e stampa il testo "Robojax.com" sulla prima riga.
- Quindi posiziona il cursore sulla seconda riga e stampa "Distance: ".
- Infine, sposta il cursore alla posizione 10 sulla seconda riga per stampare il valore misurato di
distanceseguito da "cm".
Il delay(200) alla fine del ciclo controlla la frequenza con cui il sensore effettua una nuova lettura e aggiorna il display.
Dimostrazione del Codice
Una volta caricato il codice sul tuo Arduino, il display LCD si accenderà e inizierà a mostrare la distanza. Puoi testare la configurazione avvicinando o allontanando la mano o un oggetto dal sensore a ultrasuoni. Il numero sullo schermo dovrebbe aggiornarsi in tempo reale, mostrando la distanza in centimetri. (nel video a 38:07)
Progetti correlati da questo video
- Lezione 20/31: Utilizzo di LCD1602 con Arduino per visualizzare testo | Robojax
- Lezione 20/31: Visualizzazione di temperatura e umidità da DHT11 su schermo LCD
- Lezione 20/31: Visualizzazione della tensione su LCD1602
Capitoli
- [00:00] Introduzione all'LCD1602 e panoramica del progetto
- [01:30] Hardware LCD1602 e modulo I2C spiegati
- [03:14] Pinout LCD e configurazione dell'indirizzo I2C
- [05:28] Schema di collegamento per l'LCD1602
- [06:16] Installazione della libreria LCD richiesta
- [07:24] Codice di base per stampare testo sull'LCD
- [08:11] Trovare l'indirizzo I2C del tuo LCD
- [11:10] Esempi LCD: cursore lampeggiante e caratteri personalizzati
- [18:51] Esempio LCD: display seriale e testo scorrevole
- [24:36] Visualizzazione di temperatura e umidità DHT11 sull'LCD
- [33:00] Visualizzazione della tensione da un potenziometro sull'LCD
- [35:56] Combinazione del codice del sensore a ultrasuoni con l'LCD
- [38:07] Dimostrazione del display della distanza a ultrasuoni
This code has not been parsed yet. Please return to the admin panel to parse it.
Cose di cui potresti avere bisogno
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
Risorse e riferimenti
-
DocumentazioneDocumentazione per il kit di apprendimento SunFounder 3 in 1 IoT/Smart Car.docs.sunfounder.com
-
Esterno
File📁
Librerie Arduino (zip)
-
Codice sorgente del kit di apprendimento Smart Car 3-in-1 di SunFounder
3in1-kit-main-v2.zip12.80 MB
Manuale dell'utente
-
SunFounder 3-in-1 Arduino Smart Car assembly manualThis document shows step by step assembly of SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB