Display eliminacode con telecomando e… sorpresa!

Introduzione

Su richiesta di un amico ho realizzato tempo fa questo di display “eliminacode” del tipo di quelli usati dal salumiere…

Poiché mi era rimasta libera una certa quantità di memoria flash nella MCU, decisi di utilizzarla aggiungendo una funzione “nascosta”… una implementazione completa della tombola (o bingo..) che si attiva solo premendo opportuni tasti del telecomando!

Un’immagine vale più di mille parole… per cui di seguito un video che mostra il funzionamento dell’eliminacode e della funzione “aggiuntiva” (il motivo di 007 serviva a creare un pò di atmosfera da… Casinò):

La qualità audio è quella che è… in fin dei conti ho usato un buzzer costruito per fare solo… “beep”!.

Descrizione della scheda

Il tutto si basa su una versione “custom” di Arduino Uno, realizzata usando un Atmega328P in versione TQFP32, che pilota direttamente in “multiplexing” le due cifre del display ottenute con dei normali led da 3mm. Inoltre gestisce la decodifica del ricevitore IR e il buzzer piezo.
Il clock dell’Atmega è realizzato con il classico quarzo da 16MHz.

Il sensore ad infrarossi è il noto TSOP4838 al quale è stato aggiunto un filtro RC sull’alimentazione come raccomandato dal relativo datasheet (da alcuni test che ho eseguito è risultato che l’omissione di tale filtro può causare delle “false” ricezioni da parte del ricevitore, andando ad “innescare” la MCU inutilmente).

Lo schema elettrico è il seguente:

Sulla scheda sono presenti i seguenti connettori:

* P1: ingresso per l’alimentazione a 12V (con protezione inversione di polarità);
* P2: interfaccia ICSP per caricare il bootloader di Arduino;
* P3: collegamento ad un adattatore serial-USB (con segnale DTR per l’autoreset comandato dall’IDE di Arduino) per il normale upload dall’IDE.

ATTENZIONE!: solo un connettore alla vota può essere collegato/usato.

La resistenza R1 a monte del regolatore ha lo scopo di diminuire la potenza dissipata del regolatore stesso, permettendo di utilizzare un economico alimentatore da 12V 1A “nominali” (la corrente assorbita non supera all’incirca i 180mA).

Per il controllo da remoto ho utilizzato un telecomando di basso costo (1$) per strisce led che invia i segnali IR secondo il “codice NEC”. Naturalmente si può usare un qualsiasi altro telecomando IR compreso tra quelli riconosciuti (e sono tanti) dalla libreria IrRemote che ho utilizzato, avendo cura di modificare nello sketch i codici dei singoli tasti utilizzati.

Il tutto può essere facilmente replicato con un qualsiasi Arduino Uno (o equivalente). A tal proposito per facilitare le cose ho riportato nello schema elettrico tra parentesi quadre il numero dei pin secondo lo “standard” di Arduino Uno.

Di seguito le foto della scheda:

Il cartoncino bianco piegato ad “L” sotto il sensore IR serve per evitare i disturbi ottici doviti al multiplexing del display.

La saldatura del regolatore è venuta una “chiavica”… la lezione è stata: “mai saldare SMD dopo mezzanotte”!

Caricamento del Bootloader

La prima operazione da farsi una volta completato l’assemblaggio è il caricamento del bootloader di Arduino attraverso l’interfacccia ICSP. Per questo si possono utilizzare vari tipi di programmatori con interfacccia ICSP e la funzione “carica bootlaoder” dell’IDE (ovviamente sull’IDE dovrà essere preventivamente selezionato come “device” la scheda “Arduino/Genuino UNO”).

Io ho utilizzato un economico programmatore tipo USBasp:

Il layout del connettore ICSP standard a 10 pin è il seguente:

Da notare che i pin 4 e 6 del connettore ICSP dello USBasp non sono collegati a massa e non devono essere usati.

Per collegare l’USBasp al connetore P2 e provvedere provvisoriamente anche all’alimentazione della scheda durante l’upload del bootloader, è stata seguita le seguente tabella di connessione:

Connettore P2 Connettore ICSP USBasp
MISO MISO
VCC VTG
SCK SCK
MOSI MOSI
RST /RES
GND GND (Pin 10)

ATTENZIONE!: quando si collega P2 all’ USBasp sia P1 che P3 devono essere scollegati.

Una volta “installato” il bootloader sarà possibile scollegare il programmatore USBasp da P2.

Sarebbe anche possibile effettuare direttamente l’upload dello sketch utilizzando il solo programmatore USBasp con la modalità dell’IDE “carica attraverso programmatore”. In questo modo però non sarà presente il bootloader di Arduino ed eventuali modifiche potranno essere caricate solo con il programmatore stesso.

Caricamento dello “sketch”

Dopo aver caricato il bootloader sarà possibile utilizzare la normale modalità di upload di Arduino IDE attraverso un adattatore serial-USB da 6 pin come questo, collegato al connettore P3 della scheda:

avente anche il pin DTR usato per l’autoreset comandato dall’IDE.

Una volta caricato lo sketch con la modalità preferita, e solo allora, sarà possibile collegare l’alimentazione a 12V con il connettore P1, avendo cura di scollegare prima il programmatore o l’adattatore seriale-USB (come già detto, non deve mai accadere l’uso contemporaneo di 2 o più “fonti” di alimentazione, per cui è possibile utilizzare un solo connettore per volta tra P1, P2 e P3).

Lo schema elettrico (in .pdf) può essere scaricato da qui.

Lo sketch con le librerie utilizzate possono essere scaricati da qui.

VOTO
6 commenti
  1. gvsoft
    gvsoft dice:

    Ti ringrazio, sei stato molto cortese e velocissimo.
    Il circuito mi piace, però permettimi non una critica beninteso (!) ma personalmente io avrei fatto così:
    Per Il display a led avrei usato un MAX7219: con tre pin di arduino avresti risolto il tutto multiplex compreso e senza bisogno di resistenze (fatto salvo per i led in serie o in parallelo).
    Per il micro anch’io progettavo i miei circuiti con l’ATMEGA e circuiteria varia, ma ultimamamente mi sono dotato di qualche Arduino_NANO per cui risparmio connessioni, interfaccia USB per caricare lo sketch, alimentazione da USB o esterna. Se hai bisogno di qualche dritta guarda i miei due articoli che postato ultimamente,
    Ciao e grazie.
    gvsoft

    Approvazioni
  2. gvsoft
    gvsoft dice:

    Ottimo,però il circuito elettrico è illeggibile (almeno sul mio pc). Mi interessa molto anche perchè con i telecomandi ho fatto alcune esperienze, Potresti inviarmi lo schema ? (gvsoft75@hotmail.com).
    Grazie.

    Approvazioni
    • Just4Fun
      Just4Fun dice:

      Ciao, ti ho appena inviato lo schema alla mail indicata.
      Comunque nelle ultime righe dell’articolo c’è il link per scaricare sia lo schema che il SW… forse non le ho evidenziate a sufficienza…

      PS: per visualizzare bene la “fotografia” dello schema, devi cliccare col tasto destro del mouse sull’immagine e scegliere “View image” (ho la versione inglese di Windows… )

      A disposizione per ogni ulteriore info.

      Ciao.

      Approvazioni

Lascia un Commento

Vuoi partecipare alla discussione?
Fornisci il tuo contributo!

Lascia un commento