Come usare un PIC per applicazioni semplici Considerazioni iniziali e motivazioni Sempre più spesso leggo di persone che hanno un idea e vogliono vederla realizzata subito e con poca fatica, anche senza avere le dovute conoscenze tecniche. Per ottenere ciò, oggigiorno, la via che praticamente tutti vogliono intraprendere è quella di utilizzare un PIC. Anche se questa scelta non è sempre quella giusta, sembra ai più essere la migliore. Nella maggior parte dei casi, è quella che viene vista più semplice in quanto, non avendo le conoscenze adeguate, sembra essere l unica possibile. Le cose però non sono semplici. Ecco il motivo che mi spinge a scrivere questo articolo. Non intendo di certo scrivere un articolo completo. Lo scopo di questo mio lavoro è quello di dare almeno le minime nozioni pratiche a chi, non sapendo niente o quasi di elettronica, vuole usare un PIC per realizzare un semplice circuito. Le mie indicazioni perciò saranno basate su piccoli schemi per collegare i componenti discreti necessari e piccole indicazioni di programmazione per raggiungere rapidamente i risultati preposti. Non si tratta di un manuale d uso per PIC!!! La materia è molto vasta e io non pretendo di elencare tutte le situazioni e le possibili soluzioni realizzabili, ma solo alcune molto semplici e di immediato uso. Spero solo che chi vuole avvicinarsi ai PIC senza conoscerli possa, usando questo mio lavoro, trarne subito qualche vantaggio e, magari, appassionarsi e studiarne il funzionamento per meglio realizzare i propri progetti. Analisi della situazione Partire da un buon progetto Su internet esistono molte guide e tutorial in materia, ma ho riscontrato che spesso non riportano quelle piccole nozioni che però si rivelano essenziali per il funzionamento di un piccolo circuito. Per prima cosa sarà necessario valutare il tipo di PIC da utilizzare. A questo scopo ho predisposto un modulo (vedi figura 1) che aiuta a ragionare e chiarirsi le idee. In questo modulo ho inserito un immagine ricavata dal data-sheet del PIC scelto (per far capire l utilizzo del modulo ho riportato i dati relativi ad un mio progetto presentato qui), ma ognuno dovrà ovviamente fare riferimento al data-sheet del PIC che intende usare. - Figura 1: modulo per la scelta del PIC Una volta deciso quale PIC usare si dovrà progettare come usarlo. Per fare ciò sarà necessario disegnare uno schema a blocchi del firmware onde chiarirsi bene le idee. (vedi figura 2)
A titolo di esempio riporto quello usato per lo stesso mio progetto di cui sopra, ma è ovvio che per un altro progetto dovrà essere completamente rifatto. -Figura 2: diagramma a blocchi A questo punto si saprà cosa e come fare per realizzare il progetto voluto. Progettazione hardware Costruire delle fondamenta solide Ora passiamo alla parte più divertente. Per prima cosa naturalmente spendiamo 2 parole per l alimentazione. E risaputo che un qualsiasi circuito elettronico funzionerà bene solo se è ben alimentato. I PIC devono essere alimentati con tensione costante. Nella maggior parte dei casi questa tensione sarà di 5 Volt in corrente continua. Lo schema di un alimentatore standard sarà quindi come rappresentato in figura 3. All ingresso si potrà collegare una pila da 9 Volt oppure il secondario a 9/12 Volt di un trasformatore. Bisognerà anche considerare che l LM7805 può sopportare fino ad 1 Ampere di corrente, ma con l applicazione di adeguata aletta di raffreddamento. Come da data-sheet, l LM7805 sopporta una temperatura di esercizio fino a 150 C, ma è meglio non esagerare e non andare oltre una temperatura dito (toccare per verificare) di 40/50 C. Un altra cosa importante da non trascurare è quella di porre il più vicino possibile al PIC, tra il piedino Vdd e la massa un condensatore da 100nF. Ultima cosa altrettanto importante da tenere SEMPRE presente è che all accensione, un circuito integrato quale è un PIC, non ha una condizione prestabilita, quindi mamma Microchip ha previsto il pin MCLR che ha anche lo scopo di determinare lo stato di partenza al momento dell accensione. Come si fa? Niente di più semplice. Basta collegare tra il pin MCLR e massa un condensatore da 100nF e sempre tra il pin MCLR e l alimentazione una resistenza da 10 Kohm. Semplice ma importante.
-Figura 3: alimentatore stabilizzato 5 Volt 1 Ampere standard Scegliere dei mattoni e del cemento di qualità Consideriamo dapprima alcune uscite semplici. Un PIC (anche uno vecchio ed ormai poco usato come il PIC16F84) è una macchina elettronica estremamente complessa e sofisticata che può fare innumerevoli cose. Tra le più semplici restano comunque quelle di ricevere e inviare segnali digitali su un pin particolare. Una cosa molto importante da tenere in considerazione è che un PIC non è MAI in grado di inviare potenze elevate, ma solo dei segnali che al massimo possono accendere un led. Quindi sarà necessario predisporre, per quelle uscite che non siano semplici led, dei circuiti di pilotaggio tramite transistor o mosfet. Un esempio per pilotare l attivazione di un piccolo relè può essere quello di figura 4. Al posto del relè può anche essere messo un buzzer per emettere un suono di allarme o simile. -Figura 4: schema output con relè 5 Volt - Può anche essere alimentato a 12 Volt sostituendo la resistenza da 330 ohm con una da 680 ohm - Lo schema indica un funzionamento con logica positiva (segnale = 1 relè eccitato), per ottenere un funzionamento con logica negativa (segnale = 0 relè eccitato) sarà sufficiente sostituire il transistor con un BC557. Per pilotare un led di segnalazione a bassa luminosità invece sarà sufficiente utilizzare semplicemente una piccola resistenza da ¼ di watt e da 330 ohm collegata come in figura 5.
- Figura 5: schema collegamento led di segnalazione Per collegare uno o più display a segmenti si possono utilizzare diverse tecniche. Se non ci sono problemi di disponibilità di uscite (numero di pin disponibili), si può optare per pilotare direttamente i segmenti come fossero dei semplici led. Si userà quindi un collegamento, per ciascun segmento, come in figura 6/a se il display è a catodo comune oppure come in figura 6/b se ad anodo comune. - Figura 6: schema collegamento display 7 segmenti in modo diretto Se invece si dovrà pilotare un numero maggiore di display, si dovrà optare per la tecnica del multiplex, altrimenti il numero di pin/uscite sarebbe troppo elevato e costringerebbe ad utilizzare un PIC molto più potente per eseguire semplicemente la visualizzazione dei dati.
- Figura 6bis: schemi di collegamento in multiplex Per collegare un display LCD non ci sono grosse difficoltà, salvo conoscere esattamente la piedinatura del display stesso. In commercio ne esistono di diversi tipi ed è molto importante quando se ne acquista uno avere a disposizione il data-sheet relativo, altrimenti si rischia di distruggerlo subito e quindi di aver semplicemente buttato dei soldi. Ogni display, sia ad 1 che a 2 o più righe riceve dal PIC i dati in forma seriale. Per fare ciò sono necessari alcuni pin sul display così denominati: o E segnale di abilitazione o RS (alto) ingresso codici di istruzione (basso) ingresso dati o RW (alto) lettura dati (basso) scrittura dati o BL - e BL + - terminali di alimentazione della retroilluminazione o V0 terminale di regolazione del contrasto o Vdd alimentazione positiva a 5 Volt o GND o Vss alimentazione negativa
o 8 pin di dati numerati da 0 a 7 linea di bus dati Ora, se vogliamo solo scrivere sul display, non sarà necessario collegare al PIC il pin RW, ma sarà sufficiente collegarlo a massa. Inoltre, se non vogliamo gestire né il contrasto, né la retroilluminazione col PIC, dovremo collegare solo 6 pin. Più precisamente dovranno essere collegati i 4 pin dei dati, dal numero 4 al numero 7, il pin RS e il pin E. Questo collegamento andrà dichiarato nel firmware, e risulta essere il meno dispendioso in termini di pin da parte del PIC. Un esempio è riportato in figura 7. - Figura 7: esempio di collegamento LCD 2 righe x 16 caratteri Ora che abbiamo considerato alcune uscite, passiamo a considerare alcuni ingressi. Sempre molto semplici e con i quali possiamo dire al PIC come comportarsi. Iniziamo a descrivere come collegare dei pulsanti, cioè degli ingressi di tipo digitale. Consideriamo prima di tutto che possiamo usare sia pulsanti NA che NC. Per semplicità consiglio di usare pulsanti NA collegati verso massa come in figura 8. La resistenza di pull-up non è sempre necessaria, in quanto i PIC su quasi tutti i pin ne hanno una interna che può essere attivata o no. In questo piccolo tutorial non vengono analizzate tutte le varie possibilità, quindi se si monta un circuito come indicato, non ci saranno problemi di funzionamento, con qualsiasi configurazione del PIC. - Figura 8: schema di collegamento di un pulsante NA
Naturalmente al posto di un pulsante ci potrà essere un microinterruttore o uno switch o un reed magnetico o un qualsiasi altro tipo di contatto elettromeccanico che sia NA. La cosa migliore però in caso di possibili disturbi dall esterno e per un funzionamento sicuro sarà quella di interporre tra l esterno del circuito e il PIC un fotoaccoppiatore. Un altro componente per comunicare in modo digitale è una tastiera a matrice. Per collegarla sarà necessario utilizzare tanti pin quante sono le righe e le colonne. Cioè in altre parole per una tastiera a 12 tasti si useranno 7 pin (4 righe e 3 colonne) mentre per una tastiera a 16 tasti se ne useranno 8 ( 4 righe e 4 colonne). Lo schema relativo sarà come da figura 9. - Figura 9: schema collegamento tastiera a matrice Dopo aver visto come collegare un ingresso digitale, vediamo ora come collegare un ingresso analogico. Attenzione! Non tutti i PIC possiedono delle porte configurabili come analogiche. Per capire bene come fare e cosa collegare ad una porta analogica è necessario fare delle considerazioni. Per ingresso analogico si intende un ingresso (pin) dove può arrivare una tensione variabile da un minimo pari a 0 Volt fino ad un massimo pari alla tensione di alimentazione (5 Volt). Per capire meglio e fare delle prove per testare il firmware, consiglio di preparare un piccolo circuito come da figura 10. - Figura 10: circuito di prova per ingresso analogico Ad un ingresso analogico possono essere collegati una moltitudine di componenti, ma per fare un esempio, in questo tutorial verrà proposto il collegamento con una sonda in grado di rilevare una temperatura. La sonda scelta è la LM35. Si tratta di un piccolo componente in un contenitore tipo TO-92 con 3 piedini. Due piedini servono all alimentazione della sonda stessa, mentre il terzo (quello centrale) emette un livello di tensione direttamente proporzionale alla temperatura a cui si trova. Più precisamente la tensione di uscita
vale 0 Volt se la temperatura è 0 C e cambia di 0,01 Volt ad ogni C di variazione. Ad una temperatura di 20 C la tensione sarà quindi di 0,20 Volt, a 50 C sarà di 0,50 Volt e così via. Il range di temperatura misurabile va da 55 C fino a +150 C. Per il collegamento al PIC lo schema sarà come quello di figura 11. - Figura 11: collegamento sonda LM35 Nota: per la determinazione del fondo scala di lettura di un ingesso analogico, configurando l apposito registro, si può fare riferimento ad una tensione in ingresso ad una porta specifica. Questa tecnica permette di regolare la risoluzione della lettura che dovrà essere tramutata da tensione ad un valore digitale a 8, 12 o 16 bit a seconda dell hardware del PIC. Conclusioni Questo piccolo tutorial si chiude qui. Spero che gli argomenti trattati siano di facile comprensione e che possano servire a far appassionare altri che, come me, vogliano capire e sfruttare questi piccoli gioielli tecnologici. Download zone Questo è il file.pdf con tutto l articolo. Qui invece potete trovare il file del modulo di valutazione del PIC. Ringraziamenti Un ringraziamento a tutta la comunità di Grix dove spesso ho trovato idee e spunti e, in particolare, a tutti coloro che, tramite proficuo scambio di opinioni, hanno contribuito a farmi capire molte cose. Claudio alias zuperone