CONTENUTO ►
Prendiamo in considerazione un sensore sonoro analogico per Arduino. Vi spiegheremo come collegare il sensore sonoro al microcontrollore Arduino, analizzeremo il programma per l’accensione automatica della luce a partire dal battito delle mani e per ottenere le letture dal modulo del sensore sonoro KY-038 sulla porta seriale di Arduino IDE. Consideriamo l’uso del tipo di dati boolean nel programma, spesso utilizzato nel linguaggio di programmazione.
Per questa attività sono necessari:
- Arduino Uno / Arduino Nano / Arduino Mega
- KY-038 modulo sensore sonoro
- LED e resistenza
- breadboard
- cavi di collegamento
Sensore di sonoro KY-038 datasheet, pinout
Il modulo sensore KY-038 è costituito da una scheda (vedi immagine sotto) su cui sono montate le porte di connessione di Arduino, un amplificatore del suono, una resistenza di sintonia e un microfono elettronico sensibile ai suoni provenienti da tutte le direzioni. Con il regolatore di sensibilità (resistenza variabile) è possibile regolare la sensibilità del microfono e scegliere da quale livello di rumore il sensore di sonoro verrà attivato.
Caratteristiche del sensore sonoro KY-038 Arduino:
- Tensione di alimentazione: 3,3 – 5 V
- Gamma di frequenza del microfono: 100 – 10000 Hz
- Sensibilità del microfono: 46 ± 2,0, ( 0 dB = 1 V/ Pa ) a 1 kHz
- Temperatura di funzionamento: 0°C – 70°C
Questa scheda di espansione per Arduino consente di convertire le vibrazioni sonore in segnali digitali o analogici. Quando la membrana del microfono oscilla a causa delle onde sonore, la capacità del suo condensatore cambia, il che si traduce in una variazione di tensione alle uscite del modulo del sensore sonoro (acustico) corrispondente al segnale sonoro. Il sensore nella figura sopra può inviare segnali digitali e analogici.
Come collegare sensore sonoro KY-038 ad Arduino
Il sensore sonoro Arduino ha uscite firmate sulla scheda (la designazione può essere diversa per ogni produttore), ma non dovreste avere problemi a collegare il sensore al microcontrollore Arduino. Il sensore è alimentato a 5 Volt, l’uscita (OUT, S o AO) è collegata a qualsiasi ingresso analogico di Arduino Uno. L’uscita DO si collega al pin 2 di Arduino se si desidera ottenere un segnale digitale dal microfono. Assemblare il circuito e caricare il seguente codice.
Programma Arduino per utilizzare sensore sonoro KY-038
#define RED 10 #define ORG 11 #define GRN 12 #define SOUND A1 void setup() { Serial.begin(9600); pinMode(GRN, OUTPUT); pinMode(ORG, OUTPUT); pinMode(RED, OUTPUT); pinMode(SOUND, INPUT); } void loop() { Serial.println(analogRead(SOUND)); if (analogRead(SOUND) < 50) { digitalWrite(GRN, HIGH); digitalWrite(ORG, LOW); digitalWrite(RED, LOW); } if (analogRead(SOUND) > 50 and analogRead(SOUND) < 100) { digitalWrite(GRN, HIGH); digitalWrite(ORG, HIGH); digitalWrite(RED, LOW); } if (analogRead(SOUND) > 100) { digitalWrite(GRN, HIGH); digitalWrite(ORG, HIGH); digitalWrite(RED, HIGH); } delay(50); }
Spiegazione del codice per sensore sonoro KY-038 Arduino:
- LED si accendono in base al livello di rumore presente nell’ambiente;
- livelli di attivazione dei LED possono essere modificati nel programma.
Come usare il sensore sonoro KY-038 con Arduino
Per realizzare una lampada fatta in casa che si accende quando si battono le mani, è necessario assemblare un circuito elettrico composto dai seguenti componenti: un LED con una resistenza, una scheda Arduino e un sensore sonoro per accendere la lampada con le proprie mani. Il LED può essere collegato a qualsiasi pin, noi abbiamo utilizzato il pin 12. Una volta assemblato il circuito, collegate Arduino al computer e scaricate il programma.
Programma Arduino per accendere le luci con il microfono
#define LED 12 #define SOUND 2 boolean statuslamp = false; void setup() { Serial.begin(9600); pinMode(LED, OUTPUT); pinMode(SOUND, INPUT); } void loop() { Serial.println(digitalRead(SOUND)); if (digitalRead(SOUND) == HIGH) { statuslamp =! statuslamp; digitalWrite(LED, statuslamp); delay(50); } }
Spiegazione del codice per accendere le luci con il microfono:
- boolean è usato per dichiarare valori booleani (true/false) nel linguaggio C++;
- nella riga statuslamp =! statuslamp; cambiamo lo stato della lampada (LED).
Conclusione. Il modulo che abbiamo recensito comprende un microfono a elettrete e un’elettronica di bordo che fornisce due tipi di segnale (analogico e digitale) per rilevare i suoni ambientali da un modulo Arduino o compatibile (non incluso). L’uscita digitale fornisce un livello alto o basso a seconda della soglia del rumore ambientale, mentre l’uscita analogica fornisce una tensione che varia in tempo reale a seconda del rumore.
Lascia un commento