Timer Multiuso a Microcontrollore MCU

www.narcisivalter.it
Progetti Elettronici

 

Translate Page



 

 

 

 

 

 

 


TIMER MULTIUSO a MICROCONTROLLORE

Digital Timer with PIC16F886 Microcontroller


Timer Programmabile MCU

INTRODUZIONE    [ TORNA ALL'INDICE ]

Ho "doverosamente" dovuto costruire questo Temporizzatore Digitale Multiuso dopo le insistenti richieste di mia moglie che aveva bisogno di un timer preciso e con allarme udibile anche a distanza.

Timer Multiuso a microcontrollore

Nel progettarlo, ho tenuto conto delle seguenti caratteristiche:

  • Possibilità di alimentazione a batteria (quindi un Timer portatile)
  • Precisione (specialmente nei tempi corti)
  • Visualizzazione, oltre ai Minuti e alle Ore, anche dei Secondi (per quanto detto al punto precedente)
  • Segnale acustico forte e chiaro a fine conteggio
  • Facilità d'uso

Detto questo, con l'aiuto del microcontrollore PIC16F886 della Microchip, ho realizzato il Timer descritto in questa pagina, in grado di lavorare con ritardi da un secondo fino a 100 ore con visualizzazione su sei display (lettura in formato HH:MM:SS).

LO SCHEMA ELETTRICO COMPLETO    [ TORNA ALL'INDICE ]

Quello che segue è lo schema elettrico completo del Timer (cliccare sull'immagine per ingrandirla).

Schema elettrico completo del Timer con PIC-micro

Per facilitarne la comprensione e la realizzazione del progetto, lo schema elettrico è stato diviso in due parti ben distinte ognuna con un PCB dedicato cosicché chiunque può utilizzare un diverso tipo di display nel caso non si avessero a disposizione gli SA03-11 oppure i MAN71A (display ad Anodo Comune).

Gli SA03-11 hanno due puntini decimali (uno a destra e uno a sinsitra, come anche gli LTS312) mentre i MAN71A hanno i classici due puntini a destra (uno alto e uno basso): tutto questo è ininfluente perché in questo progetto i punti dei display non sono utilizzati.

CIRCUITO DI CONTROLLO e BASE DEI TEMPI    [ TORNA ALL'INDICE ]

Di seguito lo schema della Sezione Controllo e Base dei Tempi (cliccare sull'immagine per ingrandirla).

Schema elettrico Controllo e Base dei Tempi

Per ottenere una base dei tempi molto stabile e precisa, ho realizzato una configurazione che mi permette di inviare al micro i segnali per generare DUE INTERRUPT al secondo e grazie a questi segnali, il micro gestisce il tempo in maniera molto precisa.

Per l’oscillatore vero e proprio (vedi il circuito racchiuso dentro il tratteggio rosso) ho utilizzato un PCB già pubblicato sul mio sito (qui i dettagli) il cui connettore M1 va innestato direttamente sul connettore M5 (FREQ. IN.) della Main board in modo tale che il piccolo PCB risulti posizionato verticalmente, come visibile nella seguente foro.

Foto del Timer PIC - Sez. Controllo con Base dei Tempi

Nello schema seguente (il circuito tratteggiato in rosso è relativo alla schedina esterna posizionata verticalmente), il 74HC4060, unitamente al Quarzo, genera una frequenza di 4194304 Hz e la divide per 8192 volte grazie al ponticello sul pin 2 (Uscita Q13 del 4060) ottenendo sul Pin 1 del connettore M1 una frequenza moltoi stabile pari a 512 Hz.

Base dei Tempi del Timer con PIC

Questo segnale finisce sul piedino 10 del CD4020 (vedi U2) utilizzato come ulteriore divisore dal quale esce ancora diviso per 256 volte (grazie al ponticello J6 presente sul pin 13).

I segnali a 2 Hz, molto stabili e precisi, vengono poi applicati al piedino RB0/INT del microcontrollore (vedi pin 21 di U3), piedino programmato per ricevere segnali di INTERRUPT esterni.

Il PICmicro, dunque, genera DUE richieste di INTERRUPT ogni secondo: con la prima si spengono i quattro LED lampeggiati (quelli che separano le Ore dai Minuti e i Minuti dai Secondi) mentre con la seconda si aggiornano le variabili per il conteggio del tempo (e contemporaneamente si accendono i LED lampeggianti).

Utilizzando una Base dei Tempi esterna, ho potuto "recuperare" una porta I/O che ho utilizzato per la gestione BATTERIA/RETE ovvero per segnalare al micro quale delle due alimentazioni è in funzione cosicché è possibile una gestione "al risparmio" della corrente assorbita nel caso il circuito sia alimentato solo dalla Batteria in Tampone da 9 Volt.

Naturalmente, è sempre possibile utilizzare una diversa base dei tempi da collegare al pin 2 del connettore M5 e settare opportunamente i ponticelli da J1 a J12 per ottenere la frequenza di 2 Hz (inserite sempre e solo UN PONTICELLO per volta perché in caso contrario, il chip CD4020 andrebbe fuori uso !).

Nel mio prototipo ho utilizzato il chip CD74HC4060 della Texas (è la versione C/MOS Low Power High Speed) e il chip HEF4040BP della Philips (in questo progetto è possibile utilizzare sia il 4020 che il 4040 senza nessun problema).

Nelle figure successive sono visibili il disegno del PCB Layout (Disposizione dei componenti, con i ponticelli in rosso da inserire all'inizio) e quello del MASTER (per scaricare le immagini, cliccarci sopra per ingrandirle poi con il tasto destro del mouse scegliere 'Salva immagine con nome...').

Multipurpose Digital Timer   Multipurpose Digital Timer

CIRCUITO DISPLAY    [ TORNA ALL'INDICE ]

Come già accennato, per dare l'opportunità a tutti di utilizzare un diverso tipo di display (ma sempre ad Anodo Comune) ho preferito realizzare a parte la scheda Display il cui schema è visibile nella successiva immagine (cliccare sull'immagine per ingrandirla).

Schema elettrico sez. Display del Timer PICmicro

Il circuito, come detto in precedenza, utilizza display del tipo SA03-11 oppure MAN71A o anche LTS312, tutti nella versione in colore ROSSO. Se optate per un colore diverso, vanno bene anche i MAN3410A (verde), i MAN3610A (arancione) e i MAN3810A (giallo).

L'amico Giorgio di Pescara mi ha scritto dicendomi che è possibile utilizzare anche i seguenti display: NTE3052 oppure, se il colore non è un problema, anche gli NTE3053 (arancione), gli NTE3054 (verde) e gli NTE3055 (giallo).

Foto del PCB Display Timer PICmicro

Nella Scheda Display c'è anche la coppia di LED separatori. A tal proposito, se volete "ridurre" i punti luminosi di questi ultimi, createvi una mascherina nera con due piccoli fori (anche del nastro isolante va benissimo) e posizionatela sopra le coppie dei LED in modo tale che appaiano due puntini luminosi.

Il chip ULN2004 è stato inserito per poter spingere al massimo la luminosità dei Display (rimangono accesi solo per pochi millisecondi) e poter salvaguardare l'integrità del PICmicro, senza farlo... "sudare eccessivamente".

Nelle figure successive, il disegno del PCB Layout (DIsposizione dei componenti, con i ponticelli in rosso da inserire all'inizio) e quello del MASTER (per scaricare le immagini, cliccarci sopra per ingrandirle poi con il tasto destro del mouse scegliere 'Salva immagine con nome...').

Multipurpose Digital Timer     Multipurpose Digital Timer

ALIMENTAZIONE E COLLEGAMENTI    [ TORNA ALL'INDICE ]

L'intero circuito richiede un'alimentazione MINIMA di 7-8 Volt (da collegare al connettore M1), ma per ottimizzare il funzionamento sulla porta RA0 del micro, si richiede almeno un'alimentazione compresa tra 11 e 14 Volt (consiglio di non superiore i 15V poiché oltre, lo stabilizzatore scalderebbe eccessivamente). Comunque, per sicurezza, ho inserito anche il diodo D3 (1N4148) che cortocircuita verso il positivo qualsiasi tensione superiore ai 5 volt che dovesse presentarsi sul piedino 2 del microcontrollore (vedi RA0).

Per rendere il Timer "portatile" ho previsto anche il collegamento con una batteria in tampone da 9V al Ni-Cd: eviterei l'uso delle batterie al Ni-MH perché esse hanno bisogno di correnti di ricarica ben precise. I faston della batteria vanno collegati al connettore M2). Se utilizzate una normale pila alcalina da 9V non ricaricabile, è tassativo eliminate la resistenza R3 da 3300 ohm.

Quando si usa il Timer SOLO con la batteria, durante il conteggio le cifre sul display vengono mostrate per un secondo ogni cinque così da "allungare" l'autonomia della batteria stessa.

Collegamenti del Timer a microcontrollore

IL BUZZER    [ TORNA ALL'INDICE ]

Per il Buzzer, ho utilizzato il tipo autoscillante per non complicare troppo la scrittura del firmware: questo buzzer è comunque molto potente e per fare in modo che il suono emesso sia forte e chiaro, è possibile collegarlo direttamente vicino al pannello frontale (dopo aver praticato sullo stesso un piccolo foro da 2-3 millimetri). Tuttavia, anche lasciato sul circuito stampato, il suono emesso risulta udibile anche a qualche metro di distanza.

Timer PIC - Foto del PCB Controllo e Base dei Tempi

Il buzzer segnala numerose situazioni: la scansione audio delle cifre (il classico toc ad ogni secondo, peraltro escludibile), i tre beep finali di fine conteggio, il segnale all'accensione o del reset e i brevissimi beep alla pressione di ogni pulsante.

IL PIEDINO RC7 (Uso Futuro)    [ TORNA ALL'INDICE ]

Noterete, vedendo lo schema elettrico, che il pin 18 del microcontrollore (vedi RC7) risulta ancora non collegato: ma lo sarà presto visto che è allo studio un'ulteriore funzione per poterlo sfruttare in futuro (non vi rimane altro che tornare su questa pagina per verificare l'esistenza di eventuali aggiornamenti !). Se comunque volete sfruttare subito questo pin, sappiate che su di esso è presente un livello alto (+5 Volt) durante la fase di conteggio ed un livello basso (0 V) a riposo ovvero durante una pausa (dopo lo STOP).

COMANDI E USO    [ TORNA ALL'INDICE ]

In totale, i comandi manuali di questo temporizzatore digitale sono SEI per i quali ho utilizzato semplici connettori di connessione per dar modo a tutti di realizzare il Timer a proprio gusto e con propri pulsanti.
Tutti i comandi del temporizzatore sono riconducibili ai sei pulsanti siglati da S1 a S6.

Da notare che, rispetto ai precedenti due firmware, nella versione 3.0 il funzionamento è leggermente diverso, soprattutto per quanto riguarda il pulsante START.

Timer PICmicro - Foto del Pannello Frontale

 S1 - Programmazione ORE  Funziona solo a conteggio fermo (oppure in pausa): serve per programmare il numero delle ORE (da 0 a 99). Se premuto insieme al pulsante S4 (FUNCTION) la programmazione delle ORE avviene all'indietro. Quando la cifra delle decine di ORE è uguale a zero, essa si spegne automaticamente.

 S2 - Programmazione MINUTI  Funziona solo a conteggio fermo (oppure in pausa): serve per programmare il numero dei MINUTI (da 0 a 59). Se premuto insieme al pulsante S4 (FUNCTION) la programmazione dei MINUTI avviene all'indietro.

 S3 - Programmazione SECONDI  Funziona solo a conteggio fermo (oppure in pausa): serve per programmare il numero dei SECONDI (da 0 a 59). Se premuto insieme al pulsante S4 (FUNCTION) la programmazione dei SECONDI avviene all'indietro.

 S4 - Pulsante FUNCTION (SH)  Questo pulsante ha una doppia funzione: se premuto insieme a S1, S2 o S3, la programmazione delle cifre avviene a ritroso mentre se è premuto insieme al pulsante S5 (START) abilita/disabilita la scansione audio delle cifre (il classico "toc" che scandisce i secondi).

 S5 - Pulsante START  Anche questo pulsante ha una doppia funzione: se premuto quando il display segnala l'orario 0:00:00, si attiva il TEST dei display (visualizzazione in sequenza della cifra '8' sui display, per controllarne l'integrità dei segmenti) mentre se è premuto quando il display segna un qualsiasi orario diverso da 0:00:00, si AVVIA IL CONTEGGIO. Per mettere in pausa il conteggio (ed eventualmente, correggerne la programmazione) premere il pulsante STOP, apportare eventualmente le modifiche alla programmazione e premere nuovamente il pulsante START per far ripartire il conteggio. Durante il conteggio, i pulsanti S1, S2 e S3 non sono attivi sempre (che il dispositivo non venga messo in pausa con il pulsante STOP). Al termine del conteggio e dopo i 3 beep, sul display appare nuovamente il valore programmato, ovvero quello visualizzato sul display durante l'ultima pressione del pulsante START.

 S6 - Pulsante STOP  La pressione di questo pulsante mette in PAUSA il conteggio (durante la pausa è possibile "correggere" la programmazione e quindi premere il pulsante START per riavviare il conteggio). Se durante la PAUSA si preme nuovamente il punsante STOP, il conteggio viene definitivamente fermato e sul display appare il valore 0:00:00.

 SCANSIONE AUDIO DEI SECONDI  Per attivare la scansione audio dei secondi, premere e tenere premuto il pulsante FUNCTION e contemporaneamente premere il pulsante START. La continua pressione di questa combinazione di tasti, alterna l'attivazione/disattivazione della scansione audio dei secondi. La modalità selezionata rimane in memoria anche quando si preme il tasto STOP e, grazie alla memorizzazione su Eeprom, anche quando si spegne il timer.

 TEST DEI DISPLAY  Il TEST dei display permette di controllare se tutti i segmenti funzionano alla perfezione. Il TEST è possibile soltanto quando il display visualizza il valore 0:00:00: in questo caso, infatti, alla pressione del pulsante START, si attiva il TEST e i display vengono interamente accesi, uno ad uno in sequenza .
Il video seguente visualizza il Test del Display: da notare come nel mio prototipo, ho inserito volutamente il primo display a sinistra difettoso (3 segmenti sono bruciati) !

Il Test dei Display

LA SERIGRAFIA    [ TORNA ALL'INDICE ]

Per questo Timer è stata realizzata una serigrafia dedicata ed il circuito dei 6 pulsanti può essere realizzato su una basetta millefori (con passo 2,54 mm): le misure fanno riferimento alle distanze tra i centri dei vari pulsanti. Per scaricare il disegno della serigrafia, cliccarci sopra e con il tasto destro del mouse selezionare "Salva immagine con nome" (il file scaricato sarà già pronto per essere stampato).

La serigrafia per il Timer Digitale con PIC

AGGIORNAMENTI - ERRATA CORRIGE    [ TORNA ALL'INDICE ]

Per evitare di bruciare la porta RA0 del PIC16F886, consiglio di mettere un ulteriore diodo di protezione (1N4148) in serie al partitore, come visibile nel disegno seguente (la prudenza non è mai troppa !). Nella foto a fianco, la modifica realizzata sul mio prototipo (è sufficiente staccare un capo della resistenza R1 da 330k, saldarci il Catodo del diodo 1N4148 e, per finire, inserire l'Anodo del diodo nel foro lasciato libero dalla resistenza).

Modifica al PIC Timer  Foto modifica al PICmicro Timer

GALLERIA FOTOGRAFICA     [ TORNA ALL'INDICE ]

Di seguito una serie di foto relative al Timer Digitale Programmabile descritto in questa pagina (cliccare sulle foto per ingrandirle).

3D Main Board Scheda Display del Timer Digitale generata con Protel99se Timer Digitale - Main Board Programmable Digital Timer with PICmicro
Microchip PicKit2 programmer Il Timer Digitale a MCU Timer Digitale a Microcontrollore Timer Digitale a Microcontrollore

DOWNLOAD    [ TORNA ALL'INDICE ]

Schemi elettrici, disposizione dei componenti e circuiti stampati sono stati realizzati con il software Protel99se.
Per tutti gli altri disegni ho usato il programma di grafica vettoriale Corel Draw 12.

Qui di seguito troverete il link per scaricare il manuale completo del progetto (contenente schemi elettrici, Master, PCB Layouts, Schema Collegamenti, ecc.) e il Datasheet del PIC16F886.
Per tutte le altre richieste utilizzate la sezione COMMENTI.

Download

Scarica il manuale tecnico e le istruzioni del Timer (4.6 MB)

Vedi/Scarica il Datasheet del Microcontrollore PIC16F886 (4,8 MB)

The complete prototype of this Timer (in a plastic box) is for sale.
Il Timer, così come realizzato dall'autore (montato, collaudato e completo di contenitore) è in vendita.
Se interessati, inviare una mail all'autore.

COMMENTI    [ TORNA ALL'INDICE ]

[ Torna all'inizio della pagina ]

DISCLAIMER - Tutti i progetti elettronici presentati e descritti nel sito internet https://www.narcisivalter.it possono essere utilizzati solo ed esclusivamente ad uso privato e senza scopo di lucro, pertanto non commercializzati. Le documentazioni dei progetti (schemi elettrici, disegni, foto, video, firmware, ecc.) non sono di dominio pubblico per cui i diritti d'autore rimangono dell'ideatore. Per utilizzare a fini commerciali i progetti (o parte di essi) presenti in questo sito web, si dovrà contattare l'Autore per concordare un'eventuale autorizzazione scritta.
- All the projects in this webpage is provided with no explicit or implicit warranties of operation. I do not assume any responsibility for any problems or damage to persons. The project is released "as is" and no support of any kind is provided. If you build the project, you implicitly accept my terms of not taking responsibility. If you do not agree, please, do not build this project and do not download any informations from this website!
- Tutti i progetti elettronici presenti nel sito internet www.narcisivalter.it sono stati realizzati e sperimentati personalmente dall'Autore, tuttavia l'Autore stesso non garantisce, a chi li realizzerà, un sicuro e perfetto funzionamento. Tutti i progetti elettronici presentati sul sito www.narcisivalter.it sono pensati e realizzati per un'utenza addetta ai lavori, specializzata nel settore elettrico ed elettronico e quindi in grado di valutare la correttezza e la funzionalità dei progetti stessi. Pertanto l'utente accetta espressamente di utilizzare i contenuti del sito sotto la propria responsabilità. I PROGETTI ELETTRONICI PRESENTATI SU QUESTO SITO SONO STATI RILASCIATI A PURO TITOLO HOBBISTICO E/O DI STUDIO E L'AUTORE NON GARANTISCE LA MATEMATICA CERTEZZA CIRCA IL LORO FUNZIONAMENTO E NON SI ASSUME ALTRESI' NESSUNA RESPONSABILITÀ, ESPLICITA O IMPLICITA, RIGUARDANTE INCIDENTI O CONSEGUENTI POSSIBILI DANNI A PERSONE E/O COSE DERIVANTI DALL'USO DEI PROGETTI STESSI. CHI REALIZZA E UTILIZZA I PROGETTI ELETTRONICI DESCRITTI IN QUESTE PAGINE, LO FA COME SUA LIBERA SCELTA ASSUMENDOSI TUTTE LE RESPONSABILITÀ CHE, EVENTUALMENTE, NE POTREBBERO DERIVARE.
AVVERTENZE IMPORTANTI - Molti circuiti descritti nelle pagine di questo sito sono sottoposti a tensione di rete 220-240 Vac e pertanto potenzialmente pericolosi; si può rimanere folgorati se non realizzati ed utilizzati secondo le norme di sicurezza vigenti. Pertanto l'utente e' tenuto a verificare se quanto realizza e' conforme alla normativa ed alla legislazione vigente. Per i non "addetti ai lavori" (improvvisati auto-costruttori) va ricordato che in particolari situazioni (diminuzione resistenza del corpo) già una tensione di 25V alternata potrebbe essere pericolosa. L'elettronica e l'elettricita' in genere affascina molte persone ma va ricordato che non basta uno schema scaricato da Internet per poter arrivare a un prodotto funzionante e sicuro: infatti ci vogliono un minimo di conoscienze delle fondamentali leggi della fisica, dell'elettricita' e dell'elettronica oltre all'esperienza pratica nell'uso di attrezzi e strumenti indispensabili, come saldatore, tester, oscilloscopio, ecc...

Privacy Policy - Cookie Policy - Condizioni d'Uso