Knock

In questo tutorial usiamo un componente piezoelettrico per rilevare il suono. Un componente piezoelettrico non è altro che un dispositivo elettronico che può sia essere utilizzato per riprodurre i toni sia per rilevare i toni. Un esempio é questo:

Nel nostro tutorial collegheremo il Piezo in uno dei pin di ingresso analogici. Una cosa da ricordare è la loro polarità, hanno di solito un filo rosso e uno nero che indica come collegarlo alla scheda. Colleghiamo il nero a GND e il rosso in un pin analogico, infine dovremo anche collegare una resistenza nel range dei megaohm in parallelo all’elemento piezoelettrico.

Il circuito da fare è il seguente:

La resistenza in parallelo al piezo e nel range dei megaohm mentre la resistenza in serie al led è sempre la solita. Il filo rosso della resistenza di X megaohm và collegata al pin analogico 0.

Ora dobbiamo scrivere il seguente codice:

#define ledPin 13  //Led connesso al pin 13
#define knockSensor 0  //Sensore connesso al pin analogico 0
byte val = 0;  //Variabile per salvare il valore del sensore
int statePin = LOW;  //Variabile usato per salvare l'ultimo stato del led
int THRESHOLD = 100;  //Valore di soglia per decidere quando un suono è stato rilevato da un colpo o non

void setup()
{
     pinMode(ledPin, OUTPUT);  //Dichiaro il ledPin come OUTPUT
     Serial.begin(9600);  //Uso la porta seriale
}

void loop()
{
     val = analogRead(knockSensor);  //Legge il valore del sensore e lo salva
     if (val >= THRESHOLD)
     {
         statePin = !statePin; //Inverte lo stato del pin
         digitalWrite(ledPin,statePin);  //Accende o spegne il led
         Serial.println("Knock!");  //Invia al terminale la scritta
         delay(10);
     }
}

In pratica questo programma serve a rilevare un suono, per esempio potremmo incollare il piezo alla porta e ogni volta che qualcuno bussa, il programma scriverà sul serial monitor la parola Knock! e accenderà un led.

Analisi del codice:

1-Serial(): Per questa funzione ho realizzato un tutorial a parte raggiungibile qui.

6 Risposte a “Knock”

  1. Veramente carino questo sensore!! ma oltre all’intensità legge anche l’altezza dell’onda??

  2. nel senso di riconoscere l’onda del suono come do,re,mi,fa,sol…

    perchè io vorrei fare tipo un gioco per far impare a cantare i bambini, gli faccio cantare il Do e magari si accende una lampadina oppure faccio schizzare l’acqua… tutte cose cosi

  3. no no questo non è in grado di farlo, credo ti serva più un microfono per fare quello

I commenti sono chiusi.