Sveglia con pic e rtc[in progress]
Dopo un po di tempo che l'idea di una sveglia mi frullava nella testa, ho deciso che per imparare ad usare la nuova serie di pic (16f88x) che rimpiazzera i device 16f87x. Nella fattispecie per realizzare questo progetto ho utilizzato un pic16f886.
Per avere sempre l'orario aggiornato e quindi aver anche il minor errore possibile ho utilizzato un RTC (DS1307). Questo integrato una volta impostata al suo interno l'ora la mantiene aggiornata automaticamente, e quindi basterà andare a leggere trammite i2c i registri associati per avere l'ora attuale.
Inoltre il ds1307 offre la possibilità di mantenere anche data(mese/giorno/anno), che nel mio progetto non ho utilizzato
Note
Nella realizzazione del circuito stampato di questa sveglia ho "rivettato" i fori passanti. Si possono vedere i rivetti appena "schiacciati" con l'apposito punzonatore sulla parte sinistra della foto.
La rivettatura in breve consente di collegare i due layer (top e bottom) senza effettuare ponti e quindi saldature. Ho utilizzato i rivetti per poter utilizzare display smd sulle schede "Display" che visualizzeranno l'orario
Come driver dei display, ho utilizzato l'integrato DM9368 per tutti e 8 i display. Infatti vengono utilizzati in modalità multiplexata, overo viene acceso un solo display alla volta e viene posto agli ingresis del driver display il numero da visualizzare. Successivamente vengono eseguite queste operazioni per tutti gli altri display. Essendo la commutazione molto veloce il nostro occhio non riesce a vedere quando un display viene spento e acceso, quindi avremo l'impressione di vedere tutti i display accesi contemporaneamente.
Per realizzare l'accensione dei display in modo "sequenziale" ho utilizzato dei transistor BC547 in modalita ON/OFF. Infatti su apposto segnale sulla base del transistor(da parte del pic) il catodo comune del display viene posto a massa, in caso contrario non è collegato verso gnd e quindi il display sarà spento
Schede Display
Le schede display sono due schede collegate tra loro e hanno il compito di visualizzare l'orario attuale( dispaly verdi) e l'orario di sveglia( display rossi). Una di queste schede (quella con i display verdi) è la scheda pilota, ovvero quella che ha a bordo il driver per i display.
Scheda display pilota: Dispone di 3 connettori
- Connettore per l'alimentazione della scheda (+5,gnd) e i 4 bit di dati(necessari per la visualizzazione del numero desiderato sul display.
- Connettore per il multiplexing dei display (quindi il connettore per l'attivazione dei transistor)
- Connettore per il passaggio degli output del driver display(quindi i pin che vanno collegati ai 7 segmenti dei display)
Scheda display slave: Dispone di 2 connettori
- Connettore per il multiplexing dei display(quindi per l'attivazione dei transistor)
- Connettore per l'attivazione dei segmenti(che quindi va collegato all'alla scheda pilota al connettore per il passaggio degli output
Scheda Pic + RTC
Finalmente dopo un po di tempo che non aggiornavo questa pagina ho finito e testato quello che mancava alla sveglia. Per prima cosa spiego a grandi linee come funziona la scheda pic+rtc , poi saranno gli schemi a parlare da soli.
Il cuore della sveglia è equipaggiato con un PIC16F886 e un RTC DS1307. La comunicazione tra i due device avviene mediante bus I2c. L'rtc ha il compito di mantenere aggiornato l'orario, anche in caso di blackout tramite la batteria a bottone che provvedera a tenere alimentato l'rtc.
il pic quindi ha il compito di leggere l'orario dal DS1307 (attenzione che utilizza una codifica BCD, le relative funzioni di conversione sono nel sorgente del pic) e poi visualizzare l'orario sui display.
Quando l'orario letto dal DS1307 sarà uguale a quello impostato come orario di sveglia(Wake-up) il pic provvederà ad abilitare un uscita alla quale andrà collegata una suoneria, campana, cicalino, dipende da quanto avete il sonno pesante:-).
Dopo aver visto che tutto funziona, ho deciso di mandare in produzione 10 pezzi di questa sveglia e i risultati dei pcb ottenuti (lievemente diversi come disegno da quelli utilizzati nei prototipi) sono qui sopra
File
Scheda display
[ Schemi+Pcb per montaggio ]
Scarica
[ Schemi+Pcb per incisione ]
Scarica
Scheda pic+rtc
[ Schemi+pcb montaggio ]
Scarica
[ Schemi+pcb incisione ]
Scarica
[ Sorgente c pic16f886 ]
Scarica
[ HEX Pic16f886 ]
Scarica