Temporizzatore Digitale 0-90 secondi

www.narcisivalter.it
Progetti Elettronici

 

Translate Page


TEMPORIZZATORE 0-90 SECONDI con PIC16F84A

(0-90 seconds Digital Timer with PIC16F84A Microcontroller)


Temporizzatore 0-90 secondi

LO SCHEMA ELETTRICO    [ TORNA ALL'INDICE ]

In questa pagina descrivo come relizzare un semplice Timer programmabile per tempi corti (da 0 a 90 secondi).

I pulsanti sono 3:  PROG.    START  e  RESET  e l'uso risulta alquanto semplice.

La figura successiva riporta lo schema elettrico completo del TIMER 0-90 Sec. (cliccare sulla figura per ingrandirla).

Schematic diagram of 0-90 Digital Timer

Il circuito è abbastanza semplice perché tutto il lavoro è svolto da un microcontrollore della Microchip, il famosissimo (ma ormai obsoleto) PIC16F84A.

Il principio di funzionamento si basa sull'uso del Timer 0: il Timer 0, infatti, è un contatore a 8 bit (da 0 a 255) e si incrementa automaticamente ad ogni ciclo di clock (ovvero ogni Fosc/4). Quando il Timer 0 supera il suo limite (ovvero 255 o FF in esadecimale) va in overflow ed il microcontrollore genera un interrupt che è possibile intercettare leggendo il bit 2 del registro INTCON (o INTCON.T0IF). Usando un quarzo da 4 MHz, il microcontrollore genera un interrupt ogni 256 us. Dopo l'overflow, il Timer 0 inizia un nuovo ciclo di conteggio e così via. Naturalmente, per intercettare i successivi overflow, è necessario che il registro INTCON.T0IF sia resettato via software almeno prima che avvenga il successivo overflow. Il diagramma seguente illustra quanto appena detto.

Timer 0 Interrupt / Overflow

Ma dal momento che i tempi in gioco sono troppo brevi per poter gestire alcune operazioni si ricorre al Prescaler, un divisore di frequenza con il quale è possibile ridurre ulteriormente la frequenza di 2, 4, 8, 16, 32, 64, 128 o 256 volte (impostabile con i bit PS2, PS1 e PS0 del registro OPTION). Nel software di questo progetto è stato utilizzato un prescaler da 1:32 (PS2=1, PS1=0, PS0=0) per cui si avrà un interrupt da overflow ogni 8 ms circa (per la precisione 8.192 ms corrispondente al prodotto 0.256 ms x 32).

Nei casi in cui il valore finale (come in questo caso) non coincida con un numero intero, si ricorre al Preload, una tecnica che consente di precaricare il Timer 0 ad un determinato valore così da "aggiustare" i tempi su valori interi ben definiti. Infatti, in questo progetto, il Timer 0 conta da 6 a 255 perché ad ogni overflow il Preload del Timer è settato a 6: questo significa che si avrà un Interrupt esattamente ogni (256-6) x 32 = 8000 µs. A questo punto si imposta una variabile byte incrementandola ad ogni interrupt (ovvero ogni 8 ms) e quando essa raggiungerà un valore pari a 125 sapremo che sarà trascorso esattamente 1 secondo (8 ms x 125 = 1000 ms) .

Quando si usa il Timer0 in maniera autonoma (ovvero gestito solo dai cicli macchina del PIC) e si ha necessità di usare il Preload, vanno considerati sempre 2 cicli istruzione in più: questi cicli, infatti, vengono "persi" durante l'assegnazione del TMR0 per cui devono essere sommati al Preload per "recuperarli" altrimenti i tempi (specie quelli lunghi) non saranno assolutamente affidabili: quindi, nella rutine di interrupt, il valore da precaricare nel TMR0 sarà 8 e non 6.

Il relè è del tipo a 2 vie (con bobina a 5 V), per cui possono essere attivati contemporaneamente due carichi indipendenti.

La gestione dei segmenti del Display è affidata al Port B mentre il Multiplexer è gestito dalle Porte A1 e A2.  

I display a 7 segmenti sono del tipo HDN1131-O (Orange, Super-Red, del tipo a basso consumo, necessari per non sovraccaricare eccessivamente le uscite del microcontrollore). In ogni segmento, quando acceso, scorre una corrente di circa 8-9 mA.

Per le altre informazioni sul display, fare riferimento al seguente datasheet:

Il Display HDN1131-O

REALIZZAZIONE PRATICA    [ TORNA ALL'INDICE ]

Lo schema elettrico è stato diviso in due parti ben distinte: MAIN e DISPLAY, ognuna delle quali fa capo ad un PCB.

Nelle figure successive sono riportati i Master, i PCB Layouts e le dimensioni delle schede (per scaricare le immagini, cliccare su quella desiderata e, una volta ingrandita, con il tasto destro del mouse scegliere 'Salva immagine con nome...').

Sezione MAIN

Master (Copper Side) of MAIN Section   MAIN PCB Layout   Dimensions of MAIN PCB

Sezione DISPLAY

Master (Copper Side) of DISPLAY Section   DISPLAY PCB Layout   Dimensions of DISPLAY PCB


Per quanto riguarda la scheda MAIN, consiglio di utilizzare uno zoccolo DIP18 per il microcontrollore. La presenza del LED DL2 (nel mio prototipo ho utilizzato il timo da 3 mm, ad alta luminosità) non è tassativa: la sua accensione indica soltanto che il circuito è correttamente alimentato.

La precisione del Timer è garantita da un quarzo da 4 MHz ma è essenziale utilizzarne uno di buona qualità e montare per C4 e C5, dei condensatori ceramici a disco di tipo NPO/COG.

Per il quarzo, utilizzare il modello HC49US.

Nella foto seguente è visibile il prototipo della scheda MAIN.

Rotative-LED-Clock-MainBoard

COLLEGAMENTI    [ TORNA ALL'INDICE ]

ATTENZIONE ELETTRICITA

ATTENZIONE - Quando si realizzano dispositivi collegati alla tensione di rete a 220Vac fare molta attenzione, onde evitare "pericolosissime esperienze": si consiglia pertanto di aprire o maneggiare i circuiti SOLO DOPO AVER STACCATO LA SPINA DALLA RETE ELETTRICA, osservando sempre le Norme di Sicurezza Elettrica e usando tassativamente contenitori di plastica o legno.


Nell'immagine seguente è riportato uno schema di collegamento tipico del Timer.

1/10 second StopWatch - Wiring diagram

Tutto il circuito deve essere alimentato con una tensione stabilizzata di 6 V circa per cui può andare benissimo uno Step-Down 220V-6V. L'assorbimento medio del circuito si aggira intorno ai 50 mA ma con il relè attivato si arriva fino a circa 120 mA.

Il fusibile (da 200-300 mA) è collegato SOLO sul circuito dell'alimentatore e NON sul carico da attivare.

I 3 pulsanti di comando ed il LED rosso vanno collegati con degli spezzoni di filo conduttore. Il collegamento tra la scheda DISPLY e la scheda MAIN va fatto utilizzando una piattina a 10 poli.

Il relè è del tipo a 2 vie per cui, se lo si desidera, i suoi contatti possono essere collegati in maniera tale da realizzare un doppio interruttore sulla linea di carico.

COMANDI E USO    [ TORNA ALL'INDICE ]

Il Timer è molto semplice da utilizzare.

All'accensione il display visualizza l'ultimo valore programmato.

  • Premere il pulsante  PROG.   per programmare il Timer: ad ogni pressione, sul display apparirà un valore multiplo di 5 (saranno visualizzati solo valori che vanno da 5 a 90 secondi): oltre 90 il ciclo di visualizzazione riparte da 5.
  • Per avviare il Timer, premere il pulsante  START  : il LED sul pannello si accende ed il relè attiva il carico.
  • Per mettere in pausa il conteggio (e disattivare temporaneamente il relè) premere ancora il pulsante  START .
  • Anche per riavviare il Timer (dopo la pausa) premere il pulsante  START .
  • Per azzerare il Display, o comunque per interrompere la procedura di conteggio e disattivare il relè, premere il pulsante  RESET  (questo pulsante può essere considerato come una sorta di "ARRESTO di emergenza"). Il pulsante  RESET  può essere utile anche nel caso, peraltro remoto, che il microcontrollore non riesca a resettarsi all'accensione.

IMPORTANTE - Durante la fase di conteggio, con relè attivato, EVITARE DI SPEGNERE IL TIMER !

LE FOTO DEL PROTOTIPO    [ TORNA ALL'INDICE ]

Come già accennato, per il collegamento alla rete elettrica è necessario un piccolo alimentatore stabilizzato da 6 V in grado di erogare almeno 300 mA.

Di seguito, alcune foto del prototipo finale racchiuso in un elegante contenitore plastico della TEKO mod. Pult 362.8 (in questo prototipo è stato già installato internamente un piccolo alimentatore switching da 5 Vcc).

Pannello frontale Pannello frontale Vista interna Vista interna Particolare della scheda Display installata sul pannello frontale
Prototipo del Timer 5-90 secondi Prototipo del Timer 5-90 secondi Prototipo del Timer 5-90 secondi - Vista posteriore Prototipo del Timer 5-90 secondi Prototipo del Timer 5-90 secondi

DOWNLOAD    [ TORNA ALL'INDICE ]

Nel manuale PDF (che potete scaricare cliccando sul link riportato qui sotto) troverete gli schemi, i disegni per realizzare il PCB, lo schema dei collegamenti, l'elenco dei componenti, la serigrafia per il pannello frontale e altro.
Per tutte le altre richieste (firmware HEX, domande, suggerimenti, ecc.) utilizzare la sezione COMMENTI.

Download

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

Scarica il Datasheet del Microcontrollore PIC16F84A (1.5 MB)

COMMENTI    [ TORNA ALL'INDICE ]

[ Torna all'inizio della pagina ]

DISCLAIMER (Dichiarazione di esclusione di responsabilità) - 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 110-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