#include <Ultrasonic.h>
#define TRIGGER_PIN 2 // Pin di trigger del sensore HC-SR04 (collegato a D2)
#define ECHO_PIN 3 // Pin di echo del sensore HC-SR04 (collegato a D3)
#define LED_R_PIN 5 // Pin del LED rosso (collegato a D5)
#define LED_G_PIN 6 // Pin del LED verde (collegato a D6)
#define LED_B_PIN 7 // Pin del LED blu (collegato a D7)
#define MAX_DISTANCE 200 // Distanza massima di rilevamento del sensore (in cm)
Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN); // Oggetto per la gestione del sensore HC-SR04
void setup() {
pinMode(LED_R_PIN, OUTPUT); // Imposta i pin del LED come output
pinMode(LED_G_PIN, OUTPUT);
pinMode(LED_B_PIN, OUTPUT);
// Inizializza la comunicazione seriale per il debug
Serial.begin(9600);
}
void loop() {
delay(50); // Attendi 50 millisecondi tra le letture
// Effettua una misurazione della distanza utilizzando il sensore HC-SR04
unsigned int distance = ultrasonic.read(CM);
// Stampa la distanza rilevata sulla porta seriale per il debug
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Mappa la distanza rilevata in una scala da 0 a 255 per controllare l'intensità dei LED
int intensity = map(distance, 0, MAX_DISTANCE, 255, 0);
// Assicurati che l'intensità rimanga all'interno del range valido (da 0 a 255)
intensity = constrain(intensity, 0, 255);
// Imposta l'intensità dei LED RGB in base alla distanza rilevata
analogWrite(LED_R_PIN, intensity); // Imposta l'intensità del LED rosso
analogWrite(LED_G_PIN, intensity); // Imposta l'intensità del LED verde
analogWrite(LED_B_PIN, intensity); // Imposta l'intensità del LED blu
}