Orologio ed altro
Link Articolo Originale: http://www.grix.it/viewer.php?page=10889
Orologio analogico e digitale, termometro, datario, giorno settimana, santo del giorno e segni zodiacali
Sono un vecchio programmatore (73 anni ed ai miei tempi si programmava essenzialmente in assembler ed PC di oggi non esistevano, solo grossi eleboratori) dopo alcuni anni che consulto GRIX ho deciso di presentare il mio primo articolo.
Premetto che non è tutto farina del mio sacco, per esempio l’orologio analogico l’ho derivato da un articolo di Giovanni Di Maria (Fare Elettronica), ma anche la rete mi ha aiutato molto.
Breve sintesi del funzionamento
Il progetto si basa sul PIC18F452 (32 Kbyte ) , molta capacità dato che ho inserito nel programma 366 nomi di santi più 12 disegni dei segni zodiacali.
La gestione della data completa giorno, mese, anno, giorno della settimana, intesi come numeri da 1 a 7, è affidata al DS1307.
Per la rilevazione della temperatura uso LM35. Questo IC però dà solo valori positivi. Per ovviare a questo il suo pin di massa è collegato ad un diodo per avere una massa fittizia al fine di avere anche una lettura per temperature inferiori allo zero. Ciò lo si ottiene facendo la differenza delle letture rispettivamente sul Vo (pin centrale) dell’ IC LM35 e la sua massa che rispetto alla massa del PicF452 è sempre a circa 0,6V.
Quanto scritto a mano non è mio, ma l’ho trovato su questo sito vedipdistef71 “Esperimento con la sonda termica LM35” . Vi invito a leggerlo perché chiarisce molto bene il funzionamento (meglio di me).
Nel programma sono inserite due interessanti, mi pare, routines – Calcolo della Pasqua - Trova giorno settimana considerata una data - ovviamente trovate in rete.
Alla prima accensione viene interrogata la posizione zero della EEprom interna del Pic, al fine di determinare se il datario DS1307 è stato o meno caricato con data e ora correnti. Se la posizione contiene 1 allora l’aggiormamento manuale è già avvenuto, in caso contrario il DS1307 viene con dati provvisori del programma. Ad ogni variazione effettuata con i tasti il datario viene aggiornato.
Lo schermo del display grafico è diviso in due parti:
a sinistra la rappresentazione dell’orologio digitale
a destra a partire dalla prima riga Giorno della settimana
data corrente ( Giorno mese anno)
santo del giorno /(si aggiorna automaticamente
al cambio di data)
ora corrente (ora minuti secondi)
temperatura attuale
una barra avanti indietro per movimentare il tutto
(non serve a nulla)
Dopo circa un minuto, le informazioni della parte destra vengono sostituite per circa due secondi dalla rappresentazione del segno zodiacale con il periodo di validità. Comunque questa parte può essere anche richiamata con la sola pressione del tasto n. 6 e sempre dopo due secondi ritorna la prima rappresentazione relativa alle date.
Funzionamento dei tasti chiamati P1 ÷ P6 a partire da sinistra:
P1 + P6 = Incremento anno
P1 + P5 = “ mese
P1 + P4 = “ giorno
P1 + P3 = “ l’ora
P1 + P2 = “ minuti
P2 + P6 = decrementa anno
Solo P6 mostra immediatamente il segno zodiacale.
Ripeto ogni volta che viene variato un valore, tutti i dati vengono riscritti nel datario DS1307; quet’ultimo è dotato di batteria tampone, per cui se manca tensione alla riaccensione i dati effettivi vengono ripristinati.
Per sincronizzare l’orologio seguire la seguente procedura:
- Tenere premuto il tasto P1 ed impostare l’ora corrente e senza rilasciare il tasto P1 impostare i minuti con l’avvertenza di inserire un minuto successivo all’ora indicata dall’orologio di riferimento (io uso l’orologio del PC) ed allo scoccare del cambiamento del minuto di quest’ultimo rilasciare il tasto P1, in questo modo i secondi ripartono da zero ,
N.B. Il trimmer multigiri deve essere regolato fino a leggere sul pin centrale 2,5V, ciò perche questa è la tensione di riferimento per l’ADC del pic
Il programma è abbastanza lungo ed è scritto in MIKROBASIC 6 , ma per chi volesse realizzarlo allego tutti i file necessari.
Il PCB è stato realizzato con il programma gratuito ExpressPCB
Lista componenti (vedi schema)
n. 3 resistori da 10K
n. 1 “ da 15K
n. 1 “ da 470K
n. 1 “ da 18 ohm
n. 1 trimmer da 10K
n. 1 trimmer multigiri da 20K
n. 2 condensatori da 18pF
n. 2 “ da 1u
n. 1 quarzo da 10 MHz
n. 1 quarzo da 32.768 KHz
n. 1 diodo in4r148
n. 1 DS1307
n. 1 LM35
n. 1 Pic18F452
n. 1 display grafico (processore KS0108) nel mio caso il Winstar WG 12864A
minuteria
Schema elettrico
Schermata principale
Schermata oroscopo – Segno zodiacale e periodo di valenza
Strumento aperto. A destra si nota l’involucro di polistirolo entro cui è inserito il chip LM35
Lato rame del circuito ottenuto con la stampa di EXPRESS PCB (che trovo molto precisa) su acetato con stampante laser, passaggio con bromografo auto costruito ed infine bagno con il classico percloruro ferrico
Stampa da PCB
Le dimensioni del PCB monofaccia sono:
circuito principale cm 9,4 x 7,9 - pulsantiera cm 9,4 x 1,4
Nel file zip allegato è inserita anche l’immagine dell’acetato vedi file pdfprogram MioRealClock18452_LM35_V2
UserFiles/capadura/File/ListatoBasicProgramma.txt
UserFiles/capadura/File/Clock+Temp+Zod%20-%202.zip
Infine voglio ringraziare tutti quelli che mi hanno scritto per la prima versione editata e come si può vedere ho messo in pratica tutti o quasi tutti i consigli che mi sono stati dati capadura