Arduino per tutti parte ottava: un bel dì vedremo…

Benvenuti a questa nuova puntata della rubrica dedicata alla scheda di prototipazione Arduino.
Qest’oggi proporremo un’attività più pratica di quanto visto finora: la creazione di un rilevatore di fiamma.

Il fattore fondamentale per costruire un rilevatore di fiamma è un sensore di fiamma.
Il sensore di fiamma utilizzato in questo tutorial, in realtà, non registra direttamente le fiamme. Al contrario, esso riesce a rilevare le onde elettromagnetiche, non percepibili dai nostri sensi, che sprigiona una fiamma, la cui lunghezza d’onda varia dai 700 ai 1000 nanometri. Si tratta di segnali di tipo infrarosso.

Figura 1

View post on imgur.com

In figura 1 (qui sopra) e’ rappresentato un sensore di questo tipo montato su di una basetta sulla quale sono presenti anche sei resistenze, due led, una resistenza variabile ed un comparatore di tensione.
Il procedimento è semplice.
Il rilevatore di fiamma rileva un’improvvisa ed importante variazione dei raggi infrarossi e la converte in un segnale elettrico. Se l’intensita’ del segnale supera una soglia (definita tramite la resistenza variabile) la basetta produce un impulso digitale rilevabile dalla nostrascheda Arduino.
Ogni qualvolta che il sensore rileva le onde elettromagnetiche prodotte da una fiamma fa attivare il buzzer e il lampeggio di un LED rosso.

Ingredienti

Cosa ci serve?

1X ARDUINO UNO
1X LED
1X SENSORE FIAMMA
1X RESISTENZA (220 Ohm)
1X BUZZER
CAVI
BREADBOARD

la struttura

Analizziamo orail progetto.
Per quanto riguarda l’uso del led, lo schema è lo stesso visto precedentemente. Per collegare il led:
si collega il Positivo (PIN più lungo) all’alimentazione a 5V della scheda, il Negativo (PIN più corto) ad una resistenza (da 220 Ohm), in modo da impedire alla corrente in eccesso (le uscite dell’Arduino sono a 5v) di bruciare il led.
Anche il buzzer va inserito nella breadboard con molta attenzione, perché altrimenti, come è ovvio, il circuito non si chiude. Gli indicatori del Positivo e del Negativo sono nella parte inferiore, sotto i pin.
Il sensore di fiamma ha quattro uscite che vanno posizionate tutte nella breadboard. Solo tre di queste uscite però vanno collegate con cavi alla scheda Arduino.

Lo sketch

Guardiamo ora la parte software.
Questo è lo sketch

int max=20;
void setup() {
pinMode(3,OUTPUT);
pinMode(9,OUTPUT);
digitalWrite(7,LOW);
}
void loop() {
if(analogRead(A0)>=max){
alarm();
flash();
digitalWrite(9,HIGH);
}
else{
digitalWrite(9,LOW);
}
}
void alarm(){
tone(4,400,500);
delay(500);
tone(4,650,500);
delay(500);
}
void flash(){
digitalWrite(3,HIGH);
delay(50);
digitalWrite(3,LOW);
}

Come si può notare, dapprima viene inizializzata una variabile di tipo int (integer, cioè numero intero)
int max=20;
Viene inizializzata immediatamente, quindi all’esterno delle routine, perché deve avere carattere globale. Se inquadrata in una routine, infatti, una può essere usata solo in quella routine e non in tutto lo sketch.
Passiamo ora al cuore dello sketch, le istruzioni per la scheda vere e proprie.
In questo caso, a differenza delle precedenti esperienze, abbiamo addirittura quattro void.
La void setup, di routine, che, come ricorderanno i nostri lettori affezionati, si occupa di cosa debba fare Arduino appena avviato.
La void loop che si preoccupa delle attività che vanno ripetute finche la scheda è attiva.
Seguono poi due void, alarm e flash, che si preoccupano di attivare rispettivamente il buzzer e il led in caso di percezione di fiamma.
Le due ultime void sono abbastanza banali, limitandosi a settare il buzzer (tone, seguito dal pin e dai valori relativi) e il led (digitalWrite, seguito dal numero del pin e dal valore HIGH, cioè acceso), in caso di attivazione, impostando i tempi di attesa fra un suono o un lampeggiamento e l’altro (istruzione delay).
Più interessante risulta la void loop, in cui ritroviamo un ciclo if… else che introduce nella nostra programmazione una condizione operativa. Viene richiesto, cioè, alla scheda di compiere un’azione se si verifica (o non si verifica) una condizione.
I cicli if sono molto utili si vuole impostare un’azione in modo tale che non agisca in modo indiscriminato ma solo in una serie di casi ben definiti. L’istruzione legata al ciclo if si sviluppa in due istruzioni:
if introduce la condizione che si deve verificare perché si attivi la procedura e si copia l’azione da parte della scheda (in questo caso, se il valore registrato dal pin analogico a cui è collegato il sensore raggiunge o supera la quota da noi dettata all’inizio come variabile, max. in questo caso, si attivano le due void seguenti, alarm e flash e si accende (il pin digitale 9 (quello a cui è collegato il buzzer), impostando il valore HIGH.
l’istruzione else, invece, indica quali attività avviare se non si verifica la condizione impostata da if. In questo caso, il pin a cui è collegato il buzzer è impostato sul valore spento (LOW).

schema progetto

Link esterni

link allo sketch
http://tinyurl.com/y8klfbaz
oppure
https://www.progettiarduino.com/uploads/8/1/0/8/81088074/sensore_fiamma.ino

E per oggi è tutto. Alla prossima….

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *