Archive for the ‘Knock’ Category

Knock

venerdì, aprile 1st, 2011

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.