Arduino sensore di suono: rilevare rumori e accendere un LED
Impariamo a utilizzare un modulo microfono con Arduino per rilevare suoni e rumori nell’ambiente e accendere un LED quando viene superata una soglia impostata.
Introduzione
In questo progetto utilizzeremo un sensore di suono per rilevare rumori presenti nell’ambiente.
Il modulo contiene un piccolo microfono che trasforma le variazioni di pressione dell’aria generate dal suono in un segnale elettrico.
Nei moduli dotati di uscita digitale, un circuito comparatore verifica se il livello del segnale supera una soglia regolabile. Quando ciò accade, l’uscita DO cambia stato e Arduino può rilevare l’evento.
Nel nostro esempio utilizzeremo questo segnale per accendere un LED quando viene rilevato un suono.
Con l’uscita digitale DO Arduino non misura direttamente quanto è forte il rumore. Il modulo segnala semplicemente quando il livello sonoro supera la soglia impostata.
Cosa imparerai
- come funziona un modulo microfono per Arduino;
- come collegare un sensore di suono ad Arduino;
- come leggere l’uscita digitale DO;
- come utilizzare
digitalRead(); - come regolare la soglia di rilevamento;
- come accendere un LED quando viene rilevato un rumore.
Dove può essere utilizzato un sensore di suono?
Un modulo microfono può essere utilizzato in molti piccoli progetti elettronici, ad esempio:
- rilevatori di rumore;
- comandi tramite battito di mani;
- sistemi di allarme;
- automazioni domestiche;
- giochi interattivi;
- progetti didattici con Arduino.
Materiale necessario
🧰 Non hai ancora i componenti?
Molti dei progetti presenti su ProgettiArduino utilizzano componenti elettronici di base come LED, resistenze, sensori e breadboard.
Se stai iniziando con Arduino, un kit completo per principianti permette di avere a disposizione gran parte dei componenti necessari per realizzare numerosi esperimenti.
Scopri il kit Arduino In qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.📘 Vuoi imparare Arduino passo dopo passo?
Nei miei libri dedicati ad Arduino trovi spiegazioni, schemi e progetti pratici pensati per imparare partendo dalle basi.
Scopri i miei libri Arduino In qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.Come funziona il sensore di suono
Il microfono del modulo trasforma il suono in un piccolo segnale elettrico.
Nei moduli con uscita digitale, questo segnale viene confrontato con una soglia impostata tramite un piccolo trimmer.
Quando il livello sonoro supera la soglia, l’uscita digitale DO cambia stato.
Se il modulo dispone di un trimmer, puoi ruotarlo con un piccolo cacciavite per modificare la soglia di intervento.
In questo modo puoi decidere se il sensore deve reagire anche a rumori deboli oppure soltanto a suoni più forti.
Schema di collegamento
Sensore di suono
Per questo progetto utilizziamo l’uscita digitale DO del modulo.
| Sensore di suono | Arduino Uno |
|---|---|
| VCC | 5V |
| GND | GND |
| DO | Pin digitale 2 |
LED
| Arduino | Collegamento |
|---|---|
| Pin 8 | Resistenza 220 Ω → Anodo LED (+) |
| GND | Catodo LED (−) |
Esistono molti moduli microfono diversi. Alcuni possiedono soltanto un’uscita digitale, altri dispongono anche di un’uscita analogica indicata come AO.
Questo progetto utilizza esclusivamente l’uscita DO.
Codice Arduino
Dopo aver completato i collegamenti possiamo caricare il seguente sketch sulla scheda Arduino.
// ============================================
// Progetto #32 - Sensore di suono
// Accende il LED quando viene rilevato
// un rumore oltre la soglia
// ============================================
// Pin collegato all'uscita digitale DO
const int soundPin = 2;
// Pin collegato al LED
const int ledPin = 8;
// Alcuni moduli microfono sono attivi LOW,
// altri attivi HIGH.
// Se il comportamento è invertito,
// cambia HIGH in LOW.
const int soundActiveState = HIGH;
void setup() {
// Imposta il sensore come ingresso
pinMode(soundPin, INPUT);
// Imposta il LED come uscita
pinMode(ledPin, OUTPUT);
// Avvia il Monitor Seriale
Serial.begin(9600);
}
void loop() {
// Legge lo stato dell'uscita digitale DO
int soundState = digitalRead(soundPin);
// Verifica se è stato rilevato un suono
if (soundState == soundActiveState) {
Serial.println("Suono rilevato!");
// Accende il LED
digitalWrite(ledPin, HIGH);
} else {
// Spegne il LED
digitalWrite(ledPin, LOW);
}
}
La logica dell’uscita DO dipende dal modulo utilizzato. Alcuni sensori portano DO a HIGH quando rilevano un suono, altri lo portano a LOW.
Se il tuo circuito reagisce al contrario, modifica:
soundActiveState = HIGH
in
soundActiveState = LOW.
Come funziona il programma
Il comando:
digitalRead(soundPin)
legge lo stato digitale presente sul pin 2.
Quando il livello sonoro supera la soglia impostata, il circuito del modulo modifica lo stato dell’uscita DO.
Il programma confronta il valore letto con
soundActiveState.
Se i due valori coincidono significa che il modulo ha rilevato un suono oltre la soglia.
Arduino esegue:
digitalWrite(ledPin, HIGH)
e contemporaneamente visualizza Suono rilevato! nel Monitor Seriale.
Come regolare la sensibilità
Se il sensore reagisce continuamente ai rumori ambientali oppure non rileva nemmeno un battito di mani vicino al microfono, è necessario regolare la soglia.
Ruota molto lentamente il trimmer presente sul modulo e prova ogni volta a produrre un suono vicino al microfono.
Per iniziare, regola il sensore in modo che non si attivi con il normale rumore della stanza ma reagisca chiaramente a un battito di mani eseguito nelle vicinanze.
Il sensore misura il livello di rumore?
Non con l’uscita digitale utilizzata in questo progetto.
L’uscita DO funziona come un rilevatore di soglia: Arduino può sapere se il suono ha superato o meno il livello impostato, ma non riceve direttamente un valore preciso dell’intensità sonora.
Suono sotto la soglia → nessun evento
Suono sopra la soglia → evento rilevato
Se il modulo dispone anche dell’uscita analogica AO, è possibile leggerla con un ingresso analogico Arduino per osservare le variazioni del segnale.
Un semplice modulo microfono per Arduino non permette, senza una corretta calibrazione e un circuito adatto, di misurare accuratamente il livello sonoro in decibel.
Varianti del progetto
👏 Controllo con battito di mani
Possiamo riconoscere un battito di mani e utilizzarlo per accendere o spegnere una luce o un altro dispositivo.
🔔 Allarme acustico
Il sensore può attivare un buzzer o inviare una segnalazione quando viene rilevato un rumore improvviso.
📊 Monitor del rumore
Con un modulo dotato di uscita analogica possiamo realizzare esperimenti più avanzati per osservare le variazioni del livello sonoro nel tempo.
Conclusione
In questo progetto abbiamo collegato un sensore di suono ad Arduino e utilizzato la sua uscita digitale per rilevare rumori nell’ambiente.
Arduino legge lo stato del modulo tramite
digitalRead() e accende il LED quando il
livello sonoro supera la soglia impostata.
Abbiamo inoltre visto la differenza tra rilevare semplicemente il superamento di una soglia e misurare realmente l’intensità di un suono.
Questo semplice circuito costituisce una buona base per realizzare comandi tramite battito di mani, sistemi di allarme e altre automazioni sensibili ai rumori.

