🧠 Introduzione
Dopo aver realizzato diversi progetti basati su WiFi e controllo remoto, in questo progetto torniamo a lavorare su un sistema locale, ma estremamente utile nella vita reale.
L’obiettivo è costruire un sistema di assistenza al parcheggio utilizzando un sensore a ultrasuoni per misurare la distanza da un ostacolo e un display LCD per visualizzare le informazioni in tempo reale.
A differenza del classico parcheggio con buzzer, qui introduciamo una visualizzazione precisa della distanza, rendendo il sistema più intuitivo e informativo.
Questo tipo di soluzione è molto simile a quella utilizzata nei sistemi di parcheggio delle auto moderne e rappresenta un’ottima applicazione pratica di Arduino.
Dopo aver realizzato diversi progetti basati su WiFi e controllo remoto, in questo progetto torniamo a lavorare su un sistema locale, ma estremamente utile nella vita reale.
L’obiettivo è costruire un sistema di assistenza al parcheggio utilizzando un sensore a ultrasuoni per misurare la distanza da un ostacolo e un display LCD per visualizzare le informazioni in tempo reale.
A differenza del classico parcheggio con buzzer, qui introduciamo una visualizzazione precisa della distanza, rendendo il sistema più intuitivo e informativo.
Questo tipo di soluzione è molto simile a quella utilizzata nei sistemi di parcheggio delle auto moderne e rappresenta un’ottima applicazione pratica di Arduino.
🧰 Materiale necessario
- Arduino UNO
- Sensore ultrasuoni HC-SR04
- Display LCD 16x2 (con o senza I2C)
- Breadboard
- Cavi jumper
🛒 Componenti e risorse consigliate
👉 Kit Arduino consigliato: https://amzn.to/41fmFNK
💡 Con un solo kit puoi realizzare la maggior parte dei progetti presenti nel sito.
📚 I miei libri consigliati
👉 Arduino per tutti – Volume 1: https://amzn.to/4rGNxB9
👉 Arduino per tutti – Volume 2: https://amzn.to/4bkfaey
👉 Arduino per tutti – Volume 3: https://amzn.to/4bogjAg
👉 Kit Arduino consigliato: https://amzn.to/41fmFNK
💡 Con un solo kit puoi realizzare la maggior parte dei progetti presenti nel sito.
📚 I miei libri consigliati
👉 Arduino per tutti – Volume 1: https://amzn.to/4rGNxB9
👉 Arduino per tutti – Volume 2: https://amzn.to/4bkfaey
👉 Arduino per tutti – Volume 3: https://amzn.to/4bogjAg
🔌 Schema di collegamento
Sensore HC-SR04
Display LCD 16x2 (I2C)
⚠️ Tutti i GND devono essere collegati tra loro.
Sensore HC-SR04
- VCC → 5V Arduino
- GND → GND Arduino
- TRIG → Pin 9 Arduino
- ECHO → Pin 10 Arduino
Display LCD 16x2 (I2C)
- VCC → 5V Arduino
- GND → GND Arduino
- SDA → A4 Arduino
- SCL → A5 Arduino
⚠️ Tutti i GND devono essere collegati tra loro.
📚 Librerie necessarie
Se utilizzi il display LCD con modulo I2C, è necessaria la libreria:
Se utilizzi il display LCD con modulo I2C, è necessaria la libreria:
- LiquidCrystal_I2C
💻 Codice Arduino
// ============================================
// Progetto 93 - Sistema parcheggio con display
// Distanza su LCD con ultrasuoni
// ============================================
#include <Wire.h> // Libreria per comunicazione I2C
#include <LiquidCrystal_I2C.h> // Libreria display LCD I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); // Indirizzo LCD (0x27), 16 colonne, 2 righe
int trigPin = 9;
int echoPin = 10;
long durata;
int distanza;
void setup() {
pinMode(trigPin, OUTPUT); // Pin che invia l'impulso
pinMode(echoPin, INPUT); // Pin che riceve l'eco
lcd.init(); // Inizializza LCD
lcd.backlight(); // Accende retroilluminazione
Serial.begin(9600);
}
void loop() {
// Genera impulso ultrasonico
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Legge il tempo di ritorno dell'eco
durata = pulseIn(echoPin, HIGH);
// Converte il tempo in distanza (cm)
distanza = durata * 0.034 / 2;
// Aggiorna display
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Distanza:");
lcd.setCursor(0, 1);
lcd.print(distanza);
lcd.print(" cm");
delay(500); // piccolo ritardo per stabilità lettura
}
// Progetto 93 - Sistema parcheggio con display
// Distanza su LCD con ultrasuoni
// ============================================
#include <Wire.h> // Libreria per comunicazione I2C
#include <LiquidCrystal_I2C.h> // Libreria display LCD I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); // Indirizzo LCD (0x27), 16 colonne, 2 righe
int trigPin = 9;
int echoPin = 10;
long durata;
int distanza;
void setup() {
pinMode(trigPin, OUTPUT); // Pin che invia l'impulso
pinMode(echoPin, INPUT); // Pin che riceve l'eco
lcd.init(); // Inizializza LCD
lcd.backlight(); // Accende retroilluminazione
Serial.begin(9600);
}
void loop() {
// Genera impulso ultrasonico
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Legge il tempo di ritorno dell'eco
durata = pulseIn(echoPin, HIGH);
// Converte il tempo in distanza (cm)
distanza = durata * 0.034 / 2;
// Aggiorna display
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Distanza:");
lcd.setCursor(0, 1);
lcd.print(distanza);
lcd.print(" cm");
delay(500); // piccolo ritardo per stabilità lettura
}
🌐 Come funziona
Il sensore HC-SR04 emette un impulso ultrasonico e misura il tempo impiegato per ricevere il segnale riflesso da un ostacolo.
Arduino utilizza questo tempo per calcolare la distanza in centimetri.
Il valore viene poi mostrato sul display LCD in tempo reale, permettendo di capire quanto si è vicini a un ostacolo durante il parcheggio.
Questo sistema fornisce un feedback visivo semplice ma molto efficace.
Il sensore HC-SR04 emette un impulso ultrasonico e misura il tempo impiegato per ricevere il segnale riflesso da un ostacolo.
Arduino utilizza questo tempo per calcolare la distanza in centimetri.
Il valore viene poi mostrato sul display LCD in tempo reale, permettendo di capire quanto si è vicini a un ostacolo durante il parcheggio.
Questo sistema fornisce un feedback visivo semplice ma molto efficace.
🔁 Varianti possibili
- Aggiungere buzzer per segnale acustico
- LED a colori per distanza (verde/giallo/rosso)
- Grafica migliorata su display
- Sistema multi-sensore