16 led + 16 pulsanti con un PIC12F675 : Luci8

Giovanni Bernardo | 25 luglio 2012
Categorie: PICmicro 10/12/16 - Progetti

Non si tratta di una cosa nuova, in realtà è un giochino che ho realizzato per mia figlia circa 2 anni fa, quando cominciò a dire le prime parole e a camminare e veniva attratta da qualsiasi cosa avesse dei pulsanti da premere che sortissero qualche effetto. Diedi a questo giochino il nome di Luci8 (Luciotto).

Cominciai con la rilevazione di 16 pulsanti utilizzando un unico I/O e il convertitore AD (qui) quindi proseguii con il controllo di 16 led con 3 I/O sfruttando uno shift register con latch 74HC595 (qui). Si trattava difatti di studi preliminari per realizzare il giochino. Il giorno stesso che pubblicai l’articolo sui 16 led, mi misi di buona lena con un PIC12F675 per realizzare Luci8. Li per li non volli pubblicarlo, un po’ perchè si trattava alla fine di due articoli già visti e fusi insieme, un po’ perchè mi parve una cosa futile.

L’altro giorno vedo Rita mostrare orgogliosa Luci8 ai suoi amichetti dicendo: “questo l’ha fatto papà, si chiama Luciotto”… così ho pensato di postare il codice sorgente, riadattato per le nuove versioni di Hitech-C e di MPLAB.

Il giochino è semplice: ci sono 16 tasti (un tastierino a matrice) e 16 led, il primo pulsante, premuto, accende il primo led e così via. Ripremendo un pulsante corrispondente ad un led acceso, il led si spegne. Una baggianata insomma, ma per un bambino penso possa essere uno strumento affascinante.

Tutti i dettagli costruttivi e lo schema del PCB li potete trovare nell’articolo relativo al controllo di 16 led con lo shift register. Il PCB in questione ha difatti l’area inferiore realizzata a mille-fori, è in questa zona che ho messo il circuito con il PIC. L’alimentazione viene fornita con una batteria da 9V e un regolatore 7805. Il PIC utilizza l’oscillatore interno a 4MHz e MCLR come IO, per cui non è necessario nessun collegamento “strano” se non quello dell’alimentazione. I collegamenti sono indicati nel file settings.h (GPIO0 = data, GPIO5 = clock, GPIO4 = data). Il tastierino a matrice 4×4 va collegato come illustrato nell’articolo relativo al controllo di 16 pulsanti con un solo IO. L’ingresso analogico da utilizzare è AN1 (GPIO1).

Assemblare il tutto non dovrebbe essere difficile. Il circuito a 4MHz presenta un piccolo malfunzionamento: alcuni led si accendono in maniera fioca in corrispondenza di altri, questo problema a frequenze superiori non mi si è presentato, penso possa essere causato dai transistor che pilotano i led, magari cambiando le resistenze sulla base e forzando le basi a massa con delle resistenze di pulldown il problema scompare, ma non ho avuto modo di provare.

Ad ogni modo il sorgente è ricco di spunti e può tornare utile, nella speranza che non me lo ritrovo sui siti di elettronica a punteggio. Può essere rielaborato per creare qualche gioco più interessante (tipo un whack-a-mole).

Download

Il download contiene il codice sorgente, scritto per Hitech-C compiler, il progetto MPLAB e l’hex precompilato.

PDFLuci8 source code (87.96 kB - 135 downloads)

Galleria

Puoi andare alla fine dell'articolo e lasciare un commento. I trackback e i ping non sono attualmente consentiti.

  1. #1 da volcane il 25 luglio 2012

    Ciao,

    Interessante, guardando il sorgente si possono imparare tante cose, in aprticolar modo per un principiante come me.

    Una curiosita’ come ha tagliato il contenitore plastico? hai usato qualche fresa CNC?

  2. #3 da digito il 6 agosto 2012

    … mi sembra un progetto interessante e molto istruttivo dal punto di vista logico, Grazie & Saluti.

  3. #4 da Guido8311 il 29 giugno 2013

    salve sono alle prime armi nel mondo dei pic e vorrei realizzare un programma ke faccia accendere un led rgb in dissolvenza premetto ke io ho un pic 16f628a , grazie e saluti

(non verrà pubblicata)
No linguaggio da SMS, NO tutto maiuscole Nota bene:
Non saranno tollerati commenti scritti con linguaggio da SMS. Assicurati inoltre di non avere il tasto CAPS-LOCK inserito e che il commento sia attinente all'articolo che c'è scritto sopra. Queste semplici regole aiutano tutti a cercare/tenere ordinate le informazioni in maniera ottimale.
  1. Ancora nessun trackback
Settorezero.com e il logo Zroid™ ©2007÷2017 Giovanni Bernardo - E' vietata la copia e la distribuzione anche parziale dei contenuti di questo sito web senza l'esplicito consenso dell'autore. I contenuti di settorezero.com sono distribuiti sotto una licenza Creative Commons Attribuzione-Non Commerciale-Non Opere derivate 2.5 Italia e sono soggetti alle condizioni definite nel disclaimer. Settorezero.com e tutti i suoi contenuti sono tutelati dalla legge sul diritto d'autore per cui i trasgressori sono perseguibili a norma di legge. Settorezero fa uso dei cookie leggi l'informativa estesa. Il tema di questo sito è basato sul tema Fusion per wordpress, realizzato originariamente da digitalnature e fa uso del plugin Wassup per il computo delle statistiche. Per contattare l'autore siete pregati di utilizzare la sezione contatti. Siamo presenti anche su Facebook e, meno assiduamente, anche su Twitter - Tumblr - Blogspot - Youtube.
Creative Commons BY-NC-ND 2.5