⭐⭐ Principiante avanzato
⏱️ 20 minuti
Sensore di parcheggio
Costruisci un sensore di parcheggio, proprio come in auto. Più ti avvicini al sensore, più il cicalino suona veloce. Sei vicinissimo? Allora senti un tono lungo.
🧰 Che cosa ti serve?
🗺️ Schema di collegamento
Segui i fili dall'Arduino a ogni componente. Puoi scegliere tu i colori dei fili.
| Da | A |
|---|---|
Arduino UNO · D9 |
Sensore di distanza HC-SR04 · Trig |
Arduino UNO · D10 |
Sensore di distanza HC-SR04 · Echo |
Arduino UNO · 5V |
Sensore di distanza HC-SR04 · Vcc |
Arduino UNO · GND |
Sensore di distanza HC-SR04 · Gnd |
Arduino UNO · D8 |
Buzzer attivo · S |
Arduino UNO · 5V |
Buzzer attivo · + |
Arduino UNO · GND |
Buzzer attivo · - |
🛠️ Così lo costruisci
- Collega il HC-SR04: Trig al pin 9, Echo al pin 10, Vcc a 5V e Gnd a GND.
- Collega il cicalino: S al pin 8, + a 5V e − a GND.
- Usa le strisce + e − della tua breadboard per 5V e GND.
💻 Il codice
// Sensore di parcheggio
// Più ti avvicini al sensore, più il cicalino suona veloce. Proprio come in auto!
const int TRIG_PIN = 9; // Trig del HC-SR04 sul pin 9
const int ECHO_PIN = 10; // Echo del HC-SR04 sul pin 10
const int CICALINO_PIN = 8; // S del cicalino sul pin 8
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(CICALINO_PIN, OUTPUT);
}
// Misura la distanza in centimetri
long misuraDistanza() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH); // Manda un suono breve (che tu non senti)
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long tempo = pulseIn(ECHO_PIN, HIGH, 30000); // Quanto tempo serve perché l'eco torni?
if (tempo == 0) return 999; // Nessuna eco: niente vicino
return tempo / 58; // Converti il tempo in centimetri
}
void loop() {
long distanza = misuraDistanza();
Serial.print(F("Distanza: "));
Serial.print(distanza);
Serial.println(F(" cm"));
if (distanza < 5) {
digitalWrite(CICALINO_PIN, HIGH); // Molto vicino: un tono lungo
delay(100);
} else if (distanza < 50) {
digitalWrite(CICALINO_PIN, HIGH); // Bip breve
delay(50);
digitalWrite(CICALINO_PIN, LOW);
delay(distanza * 10); // Più vicino = pausa più corta = bip più rapidi
} else {
digitalWrite(CICALINO_PIN, LOW); // Lontano: silenzio
delay(100);
}
}
🧠 Che cosa fa il codice?
misuraDistanza()manda un suono e misura quanto tempo ci mette l'eco a tornare. Poi lo trasformiamo in centimetri.- Oltre 50 cm: il cicalino sta zitto.
- Più vicino: la pausa tra i bip diventa più corta. Sotto 5 cm suona senza fermarsi.
🎯 Prova anche…
- Fai iniziare il sensore di parcheggio a suonare già da 1 metro
- Aggiungi un LED rosso che si accende quando è troppo vicino
- Mostra la distanza nel monitor seriale, con una barretta di asterischi
🚀 Costruisci questo progetto con Codey: apri codey.online/it/starter-kits/uno/projects/parking-sensor e clicca su FAI QUESTO. Così il codice e lo schema di collegamento sono subito pronti.
Codey Online è un prodotto di OTRONIC