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

Scheda display slave: Dispone di 2 connettori











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