Alcool Tester (breathalyser) con PIC12F683
Vi ho parlato tempo fa di come funzionano i sensori di alcool e vi ho quindi illustrato il sensore MQ-3. Abbiamo inoltre visto come sia semplice pilotare una bargraph da 30 led utilizzando soltanto 3 IO di un picmicro e qualche shift register tipo 74HC595. Per cui vi invito, se non l’avete già fatto, a leggere questi due articoli linkati prima di proseguire perchè, specie quello sul sensore MQ-3, è indispensabile per proseguire.
In questo progetto semplice semplice, fatto giusto per rilassarmi un po’ durante gli studi sui PICmicro a 32bit, non ho fatto altro che unire le due cose e l’ho fatto utilizzando un microcontrollore PICc di quelli “piccoli”: il PIC12F683. Per cui, anche se non siete interessati a realizzare un alcool tester, può sempre essere utile per avere sottomano un esempio di utilizzo del modulo A/D su questo PIC. Il circuito è molto semplice, l’ho realizzato su una breadboard.
Conoscete bene il mio odio verso le breadboard ma ogni tanto le uso anch’io. Probabilmente a causa di questo mio odio, la prima breadboard che ho usato ha deciso di farmi impazzire un be po’: il circuito difatti non funzionava correttamente a causa di qualche strano falso contatto, che poi si è tramutato in altro tipo di problema spostando tutto il circuito in un’altra zona della breadboard…. Tutto si è risolto utilizzando una breadboard differente. Per cui, se avete problemi, usate una millefori perchè vi assicuro che il circuito funziona correttamente!
Settando opportunamente la word di configurazione è possibile utilizzare i pin dedicati all’oscillatore come normali IO e MCLR come ingresso. Sia il sensore di Alcool MQ-3 che la Bargraph Breakout Board le ho acquistate da Robot-Italy (qui e qui). Lo schema è il seguente:
Nello schema non è presente il connettore ICSP, potete aggiungerlo voi o programmare il picmicro a parte su un adattatore tipo questo come ho fatto io.
In realtà non è possibile, con questo schema/sorgente, realizzare un alcool tester molto preciso per svariati motivi: primo su tutti c’è il fatto che l’MQ-3 (ma quasi tutti i sensori di gas) necessitano un tempo di preriscaldamento che spesso supera le 24 ore, e poi il valore in uscita non è lineare in funzione della concentrazione di alcool (il che rende abbastanza difficile eseguire una conversione volt/ppm) ed è fortemente influenzato dalla temperatura. Non dico che è impossibile realizzare un sistema preciso: sto dicendo che è molto difficile farlo e questo progetto esula dallo scopo: è più che altro un sistema per illustrare un utilizzo “ludico” di questo tipo di sensore, divertitevi con gli amici e basta.
In particolare la resistenza da 10KΩ andrebbe sostituita con un trimmer o con una resistenza di valore molto più elevato (200KΩ o più) per eseguire rilevazioni più precise. Provate a mettere la resistenza da 200KΩ e osservate il comportamento della bargraph: all’inizio sarà tutta illuminata (alla prima accensione tutta spenta e dopo alcuni secondi si illumina), man mano che il sensore si riscalda la tensione scende e il valore sulla barra di conseguenza si abbassa. Questo è il funzionamento corretto: usare il sensore dopo un adeguato tempo di riscaldamento. La resistenza di valore più basso consente di leggere un valore prossimo allo zero subito dopo l’accensione.
Il sistema che ho utilizzato qui può andar bene per svariati tipi di sensori, ad esempio mi suggeriscono “dalla regia”, mentre scrivo questo articolo, che sarebbe ancora più simpatico, rimanendo sempre in ambito ludico, sostituire l’MQ-3 con un MQ-4 (sensore di metano e gas naturali) e realizzare quindi un flatulenzometro (ma non ho idea di come chiamare uno strumento del genere, forse andava meglio un termine anglosassone del tipo Fart-o-meter come hanno già fatto su instructables). Pare invece che l’MQ-7 (Sensore di monossido di carbonio, e probabilmente altri) non possa essere utilizzato con questo schema perchè richiede un’alimentazione “circolare” (la resistenza di riscaldamento va alimentata prima a 5V, poi a 1.4, quindi di nuovo a 5V e così via per tempi di 60sec).
Qui c’è un video che illustra il funzionamento:
Vedete che l’MQ-3 è molto sensibile e necessita di un certo tempo per “riprendersi” dopo essere stato invaso dai vapori di alcool. Provate a bere un po’ di liquore ed alitare sul sensore, ma dopo ovviamente non guidate!
Vi lascio con il sorgente… fatene buon uso e divertitevi ! Ma soprattutto se realizzate un fart-o-meter, fatemelo sapere e non usate il materiale che trovate qui per fare le raccolte a punti!
Downloads
- Alcool tester con PIC12F683 e bargraph (643 download)
- Datasheet PIC12F683 (2280 download)
- Datasheet MQ-3 - Sensore Alcool Etilico (750 download)