⭐⭐⭐ Sfida ⏱️ 30 minuti

Sensore di parcheggio deluxe

La versione deluxe del sensore di parcheggio! Fa bip più in fretta quando ti avvicini, e il display OLED mostra la distanza in centimetri. Con una barretta che diventa più lunga quando ti avvicini.

Prima fai un veloce accesso. Poi il tuo progetto è subito pronto.

🧰 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 · -
Arduino UNO · A4 Piccolo schermo OLED 0,91" · SDA
Arduino UNO · A5 Piccolo schermo OLED 0,91" · SCL
Arduino UNO · 5V Piccolo schermo OLED 0,91" · VCC
Arduino UNO · GND Piccolo schermo OLED 0,91" · GND

🛠️ Così lo costruisci

  1. Collega il HC-SR04: Trig al pin 9, Echo al pin 10, Vcc a 5V e Gnd a GND.
  2. Collega il cicalino: S al pin 8, + a 5V e − a GND.
  3. Collega il display OLED: SDA a A4, SCL a A5, VCC a 5V e GND a GND.
  4. Tre componenti hanno bisogno di 5V e GND. Usa le strisce + e − della tua breadboard.

💻 Il codice

// Sensore di parcheggio deluxe
// Come il sensore di parcheggio normale, ma ora vedi la distanza anche sul display OLED.

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

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

Adafruit_SSD1306 display(128, 32, &Wire, -1);  // OLED: SDA = A4, SCL = A5

// Misura la distanza in centimetri
long misuraDistanza() {
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  long tempo = pulseIn(ECHO_PIN, HIGH, 30000);
  if (tempo == 0) return 999;   // Nessun eco: niente vicino
  return tempo / 58;
}

// Mostra la distanza grande sul display, con una barretta sotto
void mostraDistanza(long distanza) {
  display.clearDisplay();
  display.setTextSize(2);
  display.setCursor(0, 0);
  if (distanza >= 999) {
    display.print(F("---"));
  } else {
    display.print(distanza);
    display.print(F(" cm"));
  }
  // Barretta: più vicino, più lunga
  int lunghezza = map(constrain(distanza, 0, 100), 0, 100, 128, 0);
  display.fillRect(0, 24, lunghezza, 8, SSD1306_WHITE);
  display.display();
}

void setup() {
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  pinMode(CICALINO_PIN, OUTPUT);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.setTextColor(SSD1306_WHITE);
}

void loop() {
  long distanza = misuraDistanza();
  mostraDistanza(distanza);

  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 = bip più veloci
  } else {
    digitalWrite(CICALINO_PIN, LOW);
    delay(100);
  }
}

🧠 Che cosa fa il codice?

  • misuraDistanza() misura la distanza in centimetri con il HC-SR04.
  • mostraDistanza() mette il numero grande sul display e disegna una barretta con fillRect().
  • Il cicalino fa bip più in fretta quando la distanza diventa più piccola.

🎯 Prova anche…

  • Mostra "STOP!" sul display se sei a meno di 5 cm
  • Mostra la distanza in metri se qualcosa è a più di 1 metro
  • Aggiungi l'anello LED che cambia colore da verde a rosso

🚀 Costruisci questo progetto con Codey: apri codey.online/it/starter-kits/uno/projects/parking-sensor-deluxe e clicca su FAI QUESTO. Così il codice e lo schema di collegamento sono subito pronti.

Prima fai un veloce accesso. Poi il tuo progetto è subito pronto.
⬇️ Scarica questa pagina come PDF 📚 Scarica il tutorial completo (PDF)

Codey Online è un prodotto di OTRONIC

Crea il tuo progetto Arduino o ESP32 con l'AI

Descrivi cosa vuoi realizzare. Codey Online scrive il codice, disegna lo schema di collegamento, lo compila e programma la tua scheda direttamente dal browser.

Inizia gratis