Orologio
con LCD e PIC 18F4620 v. 2.02
Riepilogo caratteristiche
Orologio datario 24h con lcd 4 righe per 20
caratteri.
Riga 1: giorno, mese, e
anno
Ottima precisione garantita dall’oscillatore
compensato in temperatura DS32KHz.
Lingue supportate: Italiano, Inglese e Tedesco
modificabili tramite pulsante
3 sveglie autonome impostabili: Una sola volta,
Sempre, Week Lun-Ven, Week Lun-Sab con uscite digitali indipendenti per
ogni singola sveglia, o uscita digitale unica comune a tutte le sveglie,
oppure buzzer.
Modalità snooze di 10 minuti ripetibile
all’infinito.
Passaggio ora legale estiva/invernale e viceversa
automatico
Memorizzazione e visualizzazione fino a 255 feste
e/o compleanni fino a 3 eventi al giorno.
Luminosità della retroilluminazione regolabile a
piacere in 10 steps.
Batteria 3V al litio per il backup
dell’orologio/calendario DS1306
Batteria 9V di backup per il funzionamento
dell’orologio in assenza di rete, senza retroilluminazione lcd e
lampeggio del led 1Hz a cadenza di 5 secondi.
Schema elettrico versione 2.02 (21/07/2012)
Questa versione implementa l'anti black-out ed ilcambio automatico ora legale estiva/invernale. Alcuni cenni sul circuito anti black-out.
Lo scopo è quello di alimentare correttamente
l’orologio, informare il micro che è in corso un black-out ed avere una
batteria di backup che consenta all’orologio di far funzionare le sveglie in
caso di black-out.
Siamo giunti a questa conclusione:
E’ richiesto un alimentatore 12Vcc e, siccome non
tutti gli alimentatori hanno un buon filtro, abbiamo inserito C1 da 1000uF
con il suo condensatore anti-transitori da 0,1uF meglio se a disco
(ceramico) oppure poliestere.
Il 7809 regolatore positivo, stabilizza la tensione
a 9V, ma per via del diodo D1 questa tensione sale a 9,5~9,7V per due
motivi, il primo serve a far funzionare l’”or” tra D2 e D3, poiché in
presenza della tensione di rete, la tensione proveniente da D2 è superiore a
quella proveniente da D3; secondo perché ci consente di ricaricare la
batteria da 9V.
Per cui i diodi D2 e D3 fungono da interruttori per
stabilire quale fonte di alimentazione alimenterà il 7805. In uscita dal
7805 è stato aggiunto un elettrolitico da 470uF 16V con il suo condensatore
contro i transitori, con il fine di avere un’ottima tensione (+5V) ben
stabilizzata.
I Diodi SB140 prodotti da Vishay sono della
tipologia Schottky, a recupero veloce e con perdita di inserzione di circa
0,45V contro i 0,6~0,7V dei diodi al silicio tipo gli 1N4004.
La batteria consigliata è prodotta da Ansmann ed è
da 250 o 300mA/h, siccome la batteria è collegata al circuito in modo
permanente, abbiamo fissato la corrente di carica a circa 10mA.
Per cui il valore di Rx è 82 Ohm 1/2W
(Tensione sul negativo di D4 – Tensione di caduta
diodo – Tensione batteria)/Rx
(9,7V-0,45V-8,4V)/82 = 0,85/82 = 10mA
In ultimo, il segnale che parte dal positivo di DZ1 da 5,1V serve per
informare il micro che siamo passati dall’alimentazione di rete
(inesauribile) alla batteria di backup a causa di un black-out. Per fare
questo è stato collegato l’ingresso RE1 del micro ad un diodo zener da 5,1V
(e relativa resistenza di caduta da 220 OHm) al negativo del diodo che
protegge l’alimentazione di rete. Lo zener diventa necessario poiché
l’ingresso digitale non supporta una tensione d’ingresso superiore a 5V.
Durante il
black-out tutti i pulsanti vengono bloccati tranne PL1 e PL5 per la gestione
delle sveglie e snooze.
Allo scoccare di ogni secondo, mentre il micro
esegue altre funzioni, viene anche testata la presenza della tensione di
alimentazione, se questa non è presente, siamo in fase di black-out
e funzionando a batteria occorre limitare al massimo i consumi; per
cui un flag da zero passa a uno, viene disattivato il PWM che pilota la
retroilluminazione dell’lcd ed il led di syncro 1Hz invece di lampeggiare
ogni secondo, lampeggia ogni 5 secondi ad indicare che siamo in fase di
black-out. Molti lcd anche in assenza della retroilluminazione riflettono i
caratteri per cui se si è di giorno o in ambiente illuminato è possibile
leggere l’ora.
Il flag sopra citato, se <>0 vuol dire che siamo in
fase di backup, viene incrementato ogni secondo e quando vale 5 viene acceso
il led 1Hz e viene reimpostato ad 1 per un nuovo ciclo.
Prototipo
dell'alimentatore anti black-out esterno poichè l'orologio è montato sul pcb
della versione 2.0
Particolare dell'alimentatore e batteria 9V ni/mh
Prototipo del PCB
Render del prototipo (Non guardare le sigle dei componenti)
Analisi
funzione cambio ora legale
L’ora legale
inizia l’ultima domenica di marzo alle ore 2.00 di notte per cui quando
scoccano le ore 2.00 si salta alle ore 3.00 cioè si aggiunge 1 ora passando
da GMT+1 a GMT+2. (Si dorme un’ora in meno)
L’ora legale
termina l’ultima domenica di ottobre alle ore 3.00 di notte per cui quando
scoccano le ore 3.00 si ritorna alle ore 2.00 cioè si ripete l’ora passando
da GMT+2 a GMT+1. (Si dorme un’ora in più)
Questa funzione è abbastanza delicata in quanto
coinvolge più problematiche ad esempio:
Se una sveglia, l’ultima domenica di Marzo è
impostata come orario di suonata nella fascia tra le ore 2.00 e le 2.59
durante il cambio dell’ora non suonerà mai.
Tutti i paesi europei hanno lo stesso fuso orario?
(Inghilterra GMT=0 Italia GMT+1)
Ma… l’ultima domenica di ottobre alle ore 3.00, si
torna indietro di un’ora per cui l’orologio viene reimpostato alle 2.00 cioè
dopo 60 minuti ripresenterà nuovamente le 3.00 della notte… tornerà di nuovo
indietro di un’ora?
Questi ed altri problemi hanno portato a delle
decisioni che sono le seguenti e determinano il funzionamento del passaggio
automatico dell’ora legale estiva e quella invernale e viceversa.
Funzionamento:
L’orologio cambia automaticamente l’ora impostata a
prescindere dal fuso orario perché l’ora legale non ha relazione diretta con
il fuso orario.
Una funzione verifica se il mese corrente è Marzo
oppure Ottobre, se sì, verifica se il giorno è l’ultima domenica del mese
con il criterio che il giorno deve essere >= di 25, se il giorno è corretto,
viene verificato che sia di Domenica, se è corretto verifica se è Marzo, le
ore siano le 2.00, se sì, l’ora viene incrementata di 1 e si passa alle
3.00. Lo stesso accade per il mese di Ottobre facendo attenzione che siano
le ore 3.00, la prima volta che l’orologio riporta le ore 3.00 alle 2.00
imposta un flag che indica alla stessa funzione che l’ora è già stata
cambiata, per cui la seconda volta che si ripresenteranno le 3.00 non vi
sarà alcun cambiamento.
Problemi noti:
NON impostare le sveglie a cavallo del cambio dell’ora, se questo fosse necessario controllare l’orologio e reimpostarlo se necessario.
Chi ha già realizzato le versioni precedenti può scaricare gratuitamente il firmware e fare le modifiche sopra indicate:
File .HEX italiano per PIC 18F4620 versione 2.02 del 21/07/2012 Clock18F v2.02.rar (15k)
Datasheet batteria Ansmann 9V ni/mh Ansmann Batteria 9V.pdf (83k)
Datasheet diodo SB140 SB140 Vishay.pdf (78k)
Datasheet buzzer Sonitron Buzzer SMA.pdf (1,7Mb)
Datasheet pulsanti da pcb Pulsanti.pdf (300k)
Datasheet DS32KHz Dallas DS32kHz.pdf (400k)
Datasheet DS1306 Dallas DS1306.pdf (320k)
Datasheet 25LC640A Microchip 25LC640A.pdf (511k)
Datasheet display LCD bianco su fondo nero LCD 204A Series.pdf (519k)
© Copyright tony@microt.it