"DOPPIO
TIMER CICLICO 24 ORE"
Salve,
il circuito che vi propongo si basa sul microcontrollore "PIC-16F84"
prodotto dalla Microchip, grazie al quale con pochi altri elementi di contorno
ho realizzato un preciso timer ciclico 24 ore, controllato al quarzo. In verità
si tratta di un doppio timer con due uscite indipendenti "out-A" ed
"out-B"; in ognuno dei quali è possibile memorizzare fino a quattro
programmazioni giornaliere. All'occorrenza i contatti del "relè 1 - out-A"
e del "relè 2 - out-B", si possono collegare in parallelo ottenendo
in questo modo un solo timer con otto possibili programmazioni giornaliere. I
dati in questione sono memorizzati nella EEPROM interna del PIC, perciò anche
se spegnerete il dispositivo per riaccenderlo in seguito, i dati non andranno
persi e si ripresenteranno come l'ultima volta che avrete spento; tranne
ovviamente l'orologio interno che dovrete aggiornare tutte le volte che
accenderete il dispositivo.
Facendo riferimento alla "tabella A" di programmazione, comprendiamo subito che dei nove posti programma disponibili, i primi quattro sono assegnati al "timer A" ed i successivi quattro al "timer B". La parte sinistra del nono posto programma è assegnata all'orologio interno, mentre la parte destra ci servirà per correggere l'errore in secondi che inevitabilmente il timer accumulerà nell'arco delle 24 ore, a causa della tolleranza del quarzo.
"
TABELLA A"
|
Come si vede ogni posto programma è praticamente doppio, la parte
sinistra contiene l'ora di accensione e la parte destra l'ora di spegnimento. Il
posto programma lo selezioneremo impostando il numero corrispondente sul
contravers "P", sugli altri quattro contravers imposteremo l'ora da
inserire. Il posto programma "zero" è di parcheggio, in questa
posizione i pulsanti "ACC" e "SPEGN" non sono operativi;
prevenendo programmazioni involontarie.
|
Per
le programmazioni procederemo nel modo seguente:
1) Disegnare a parte la "tabella A" di programmazione senza gli orari riportati che sono solo d'esempio.
2)
Scrivere nei vari riquadri le ore di accensione a sinistra e le ore di
spegnimento a destra, nei riquadri
che non useremo scrivere un nove al posto della prima cifra delle ore, in questo
modo il software ignorerà tali riquadri.
3)
Impostare sul contravers "P" il n° 1.
4)
Impostare sugli altri quattro contravers l'ora di accensione relativa al
posto programma n° 1
e quindi premere il pulsante "ACC".
5)
Impostare successivamente l'ora di spegnimento sempre relativa al posto
programma n° 1
e quindi premere il pulsante "SPEGN".
6)
Ripetere i punti dal 3) al 5)
per tutti i posti programma dal n°1
al n°8 e conservare la
"tabella A" per eventuali future consultazioni o modifiche.
7)
Impostare il n°9 sul contravers "P", impostare l'ora attuale
sugli altri quattro contravers e quindi premere il pulsante "ACC"., da
questo momento sarà aggiornato l'orologio interno del timer che inizierà a
funzionare.
8)
Impostare successivamente "0000" corrispondente alla correzione
dell'ora come vedremo in seguito e quindi premere il pulsante "SPEGN".
A questo punto avrete notato che ad ogni pressione dei pulsanti "ACC". e "SPEGN". Il "leed 1" si accenderà brevemente, indicando così l'avvenuta programmazione; e che lo stesso lampeggia ad intervalli regolari scandendo l'inizio di ogni minuto. Adesso controllando sul quadrante di un preciso orologio, dobbiamo appuntarci su un foglio di carta, in prossimità di quale secondo si accende il "leed 1" del timer, lo stesso controllo lo rifaremo dopo 24 ore, verificando di quanti secondi in ritardo si accende il "leed 1" rispetto alla posizione di 24 ore prima. Se il "leed 1" si accende con un ritardo supponiamo di 12 secondi, allora dovremo impostare sul contravers "P" il n° 9 e sugli altri quattro "0012" e premere il pulsante "SPEGN".
In
questo modo il software provvederà automaticamente a correggere l'errore
accumulato nell'arco delle 24 ore, rendendo
il timer ancora più preciso. Fare attenzione nel compilare la "tabella
A", in quanto non è consentito che tra le quattro programmazioni del
"timer A" vi siano degli accavallamenti o sovrapposizioni di orari,
nel qual caso il timer funzionerebbe male; ovviamente lo stesso discorso vale
per il "timer B". Però è permesso che vi siano accavallamenti o
sovrapposizioni di orari tra i due timer, in quanto essi funzionano in modo
indipendente l'uno dall'altro, come vedremo nell'esempio riportato nella
"tabella A".
In qualsiasi momento è possibile modificare il contenuto delle memorie dei posti programma oppure aggiornare l'orologio interno. Per concludere facciamo ora un esempio. Considerando i dati inseriti nella "tabella A" di programmazione, possiamo intuire subito che il "relè A" si attiverà alle ore 18:30 per poi spegnersi alle ore 20:45, durante questo intervallo di tempo il "relè B" si chiuderà alle ore 19:00 per poi riaprirsi alle ore 20:00.
Questo che abbiamo appena visto è un esempio di sovrapposizioni di
orari. Successivamente alle 21:00 si chiuderà il "relè A"
e alle 22:00 anche il "relè B", in fine alle 23:00 si aprirà
il "relè A" e alle 00:00 il "relè B". Quest'ultimo invece
è un esempio di accavallamento di orari. I campi d'impiego di questo timer sono
svariati, io ad esempio lo uso nel mio acquario per accendere la luce ad
intervalli e durata prestabiliti col "relè A" e per rilasciare dentro
la vasca il mangime per i pescetti col "relè B".
Per
quando riguarda il montaggio, tenere conto che i cinque contravers dovranno
essere collegati tutti in parallelo; dopo però che avremo collegato quattro
diodi 1N4148 alle quattro uscite di ognuno di loro, come nell'esempio. La
Batteria in tampone da 3V. consentirà all'orologio interno di continuare a
scandire il tempo qualora dovesse mancare per brevi periodi la 220 VAC di rete.
Con
questo credo di aver detto tutto, aggiungo soltanto che se non vi va di digitare
il file sorgente che troverete di seguito, fatemene richiesta all'indirizzo
e-mail e con
piacere ve lo invierò. Vi auguro quindi buon divertimento e per qualsiasi
chiarimento o suggerimento vi prego di contattarmi.
IT9DPX - #135 (Francesco M.)