Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7...
Transcript of Orologio Digitale HH:MM:SS con Microcontrollore PIC16F628A · 1 2 3 4 5 6 78 a b c d 1 2 3 4 5 6 7...
OROLOGIO DIGITALE a MICROCONTROLLORE
https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html
OROLOGIO DIGITALE con MICROCONTROLLORE PIC16F628A
Realizzazione di un preciso orologio digitale (formato HH:MM:SS) utilizzando un microcontrollore della Microchip, il PIC 16F628A
MANUALE TECNICO e ISTRUZIONI (for firmware 4.0 or higher)
1 2 3 4 5 6 7 8
A
B
C
D
87654321
D
C
B
A
RB4 10
RB5 11
RB6 12
RB713
GND
5+V
14
RA5/MCLR4 RB2 8
RA1 18
RA2 1
RB3 9
RB0/INT6
RA615
RA43
RB1 7
RA0 17
RA3 2
RA7 16
U2‐PIC16F628A
A
D
8
a
B2
14PH
bcde
10
1213
9
11
7
fg
5
C
3
415
1
LD
BL GND
+V
6
16
U3‐CD4543
Q1BC327
Q2BC327
Q3BC327
Q4BC327
Q5BC327
Q6BC327
a b c d e f g
7 6 4 2 1 9 10
AC3 5
AC8
dp
DS1
a b c d e f g
7 6 4 2 1 9 10
AC3 5
AC8
dp
DS2
a b c d e f g
7 6 4 2 1 9 10
AC3 5
AC8
dp
DS3
a b c d e f g
7 6 4 2 1 9 10
AC3 5
AC8
dp
DS4
a b c d e f g
7 6 4 2 1 9 10
AC3 5
AC8
dp
DS5
a b c d e f g
7 6 4 2 1 9 10
AC3 5
AC8
dp
DS6
R1
10k
R2
10k
R3
10k
R4
10k
R5
10k
R6
10k
R13 100R14 100R15 100R16 100R17 100R18 100R19 100
COM
GND8
9
I1I2I3I4I5I6I7
O1O2O3O4O5O6O7
1234567
16151413121110
U4‐ULN
2004
DL1
DL2 DL4
DL3
R24330
Q9FXT690B
R236k8
Q8BC237
BUZ15V ‐ Autoscillante
VCC
R1210k
R1010k
R910k
R810k
S2
Hours
S3
Min.
Rs11
Q4
Q6
Q12
9
12
CextQ5
RextQ7
3
15
54
13
2
7
614
Q10
Reset
Q8
Q13Q14
10
1
Q9
8
16
VCC
GND
U5‐CD4060
R263M3
XT14.194304 MHz
C6
20p
C5
6.5‐30p
VCCC40.1
C3
0.1
VCC
+M2
12V Alim.
+ C2100u
D11N4001
D21N4001
R113K3
+M1
9V Batt.
COM
IN OUT
U17805
VCC
+ C147u
123456
M3
ICSP
Q7BC237
R2047k
R21470k
VCC
R224k7
S4SHOW
R252k7
Reset11
Q4
Q6
Q12
Q5Clock
Q8
3
15
54
14
2
7
1312
Q11
Q9
Q13Q14
10
1
Q10
8
16VCC
GND
Q1 9
Q7 6
U6‐CD4020
R710k
S1
SHIFT
Only forprogramming
R11 - Only withrechargeable battery
R2710k
Author:
Project:
Size: DWG no. Rev.: Scale: Sheet:
Year:
Note:
Valter Narcisi - San Benedetto del Tronto (AP)
Orologio Digitale HH:MM:SS con PIC16F628A 2012-17
A3 1 2 1:1 1 of 1
https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html
DS1 ‐ DS6TDSR515
VCC VCC
SECONDSHOURS
OROLOGIO DIGITALE a MICROCONTROLLORE
https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html
ELENCO COMPONENTI / COMPONENT LIST
Designator Component
R1 … R10 10k
R11 3k3
R12 10k
R13 … R19 100 ohm
R20 47k
R21 470k
R22 4k7
R23 6k8
R24 330 ohm
R25 2k7
R26 3M3
R27 10k
C1 47u - 16V
C2 100u - 25V
C3 – C4 0.1 u
C5 6.5-30 pF variable (verde, Murata)
C6 20 pF
Q1 … Q6 BC327 (PNP - 500mA)
Q7 - Q8 BC237 (NPN - 100mA)
Q9 FXT690B (NPN – 2A)
U1 LM7805 (Positive 5V – 1A)
U2 PIC 16F628A microcontroller
U3 CD4543
U4 ULN2004
U5 4060 (M74HC4060B1 oppure CD74HC4060)
U6 CD4020
D1 – D2 1N4001
DL1 … DL4 LED (RED rectangular)
DS1 … DS4 Display Vishay TDSO5150 (Common Anode)
XT1 Xtal ITT 4.194304 MHz (4194304 Hz)
BUZ1 Buzzer sound active (auto-oscillante)
M1 – M2 Strip 2 way – 2.54
M3 Strip 6 way – 2.54 (ICSP)
S1 Switch
OROLOGIO DIGITALE a Microcontrollore:PCB Layout (Disposizione Componenti)
OROLOGIO DIGITALE a MICROCONTROLLORE
https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html
https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html
OROLOGIO DIGITALE a MICROCONTROLLORE
https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html
OROLOGIO DIGITALE a MICROCONTROLLORE
OROLOGIO DIGITALE a MICROCONTROLLORE
https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html
INTRODUZIONE L'orologio è un oggetto che deve funzionare 24 ore al giorno, 365 giorni l'anno: per questo i componenti elettronici dovrebbero essere scelti senza tendere troppo al risparmio. Questo è anche il motivo per cui ho inserito l'integrato ULN2004 che consente al chip CD4543 di lavorare in condizioni ottimali.
Per i display ho utilizzato i Vishay TDSR5150 a segmenti rosso/arancio: questo tipo è in grado di sopportare fino a 25 mA (continui) di corrente per segmento (e oltre 100 mA di picco !) e visto che vengono pilotati da multiplexer rimanendo accesi solo per qualche millisecondo, è garantita loro una lunga vita.
LA BASE DEI TEMPI La base dei tempi da 1 Hz è stata ottenuta con un quarzo ITT da 4.194304 MHz (4194304 Hz) e da due chip C/MOS, i divisori/contatori CD4060 e CD4020 (quest'ultimo sostituibile, nello schema, con il modello CD4040).
Evitando di collegare il quarzo direttamente sugli appositi piedini del PC Micro, ho potuto "risparmiare" una porta I/O sfruttandola per la funzione SHIFT (e, di conseguenza, facilitandomi il compito in fase di progettazione software evitando i conteggi dei cicli macchina e le impostazioni del prescaler).
L'uscita da 1 Hz prelevata dal piedino 13 del CD4020 va al piedino RB0/INT del microcontrollore (nel firmware, il piedino RB0/INT è stato programmato per ricevere gli impulsi da tale porta e generare un INTERRUPT per ognuno di essi: questo significa che ad ogni INTERRUPT, cioè ogni secondo, l'orario sarà aggiornato). Lo stesso impulso che esce dal piedino 13 del CD4020 pilota anche, tramite il transistor Q9, i 4 LED separatori.
OROLOGIO DIGITALE a MICROCONTROLLORE
https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html
ATTENZIONE - Il CD4060 in questo progetto lavora "al limite" della frequenza sopportabile per cui è consigliabile utilizzare il modello C/MOS High Speed siglato M74HC4060B1 (della ST) Oppure CD74HC4060 (della Texas).
A proposito dei 4 LED, il PCB ne prevede l'utilizzo del tipo rettangolare (per tenere vicini i display il più possibile): poi, volendo, se ne può coprire una parte con del nastro nero per ridurre la "grandezza del segmento" e farlo diventare una sorta di piccolo punto quadrato.
Il compensatore C5 è utile per "correggere" eventuali piccole tolleranze del quarzo: per la taratura, collegate il puntale di un frequenzimetro sul pin 9 di U5 (CD4060) e regolate il compensatore fino a leggere una frequenza di 4194304 Hz.
AGGIUNTA DEL PULSANTE DI TEST Il progetto ha subito una sola modifica hardware dopo la sua realizzazione: l'inserimento di un pulsante di TEST tra il piedino 4 del micro e la massa, premendo il quale si avvia una procedura che visualizza in sequenza i sei display per verificare il corretto funzionamento di ogni segmento (durante il test, un TOC segnala il cambio di cifra ma solo se la scansione audio dei secondi non è stata abilitata). Una volta terminato il TEST, l'orologio ritorna al suo funzionamento originale (durante il test, il conteggio dell'orologio non si ferma, ma continua anche se le cifre non vengono visualizzate).
I dettagli della modifica sono visibili nelle immagini successive (nel mio prototipo ho inserito un piccolo microswitch tra il microcontrollore e il connettore ICSP).
OROLOGIO DIGITALE a MICROCONTROLLORE
https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html
IL BUZZER Il Buzzer BUZ1 (del tipo auto-oscillante) è stato inserito principalmente per un motivo: l'emissione di un breve beep al raggiungimento della nuova ora (così come avviene su alcuni orologi digitali da polso o alcune radiosveglie). Inoltre esso emette un brevissimo beep ad ogni pressione dei tasti MINUTI e ORE ed un beep lungo all'accensione oppure dopo il Reset dell'orologio.
LA BATTERIA IN TAMPONE DA 9V L'orologio è predisposto per il collegamento di una batteria ricaricabile da 9V al Ni-Cd che entra in funzione solo durante un eventuale Black-Out: al contrario, durante il funzionamento normale dell'orologio, la batteria si ricarica attraverso la resistenza R11 e mantiene la sua carica fino al prossimo eventuale black out. Potete utilizzare anche una normale batteria alcalina da 9V, non ricaricabile, ma in questo caso è tassativo eliminare la resistenza R11 da 3300 ohm.
In presenza di Black-Out, le cifre del display si spengono (per risparmiare corrente ed evitare che la batteria si scarichi precocemente): i quattro puntini luminosi continueranno a svolgere la loro funzione indicando che l'orologio è comunque in funzione (e la batteria non è ancora scarica !). Per visualizzare l'ora, in caso di black out, è necessario agire sul pulsante S4 (ON). Il beep che scandisce le ore funziona anche durante un black out.
OROLOGIO DIGITALE a MICROCONTROLLORE
https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html
ISTRUZIONI L'orologio digitale prevede 4 pulsanti: MINUTES, HOURS, SHIFT e SHOW.
MINUTES - Ad ogni pressione di questo pulsante, le cifre dei minuti aumentano di un'unità: arrivati a "59", la successiva pressione visualizzerà "00" e così via. Ad ogni pressione del pulsante MINUTI, i secondi sono sempre azzerati.
HOURS - Ad ogni pressione di questo pulsante, le cifre delle ore aumentano di un'unità: arrivati a "23", la successiva pressione visualizzerà "0" e così via. La prima cifra a sinistra (decine di ORE) se uguale a zero, è automaticamente spenta.
SHIFT - Quando il pulsante dei MINUTI o delle ORE sono premuti insieme al pulsante SHIFT, le cifre vengono decrementate (conteggio all'indietro).
SHOW - In caso di black out, la pressione di questo pulsante permette di visualizzare l'orario (ma solo se è stata inserita la batteria in tampone da 9V).
MODALITA’ 12/24H - Il sistema orario delle 12 ore presuppone sia riportata la stringa AM o PM (non gestita in questo progetto): al contrario, nel sistema delle 24 ore (notazione Standard Internazionale ISO-8601) non sono necessarie altre informazioni perché il sistema stesso "copre" l'intero orario della giornata. Il sistema 12H è utilizzato principalmente negli Stati Uniti, in Canada ed in Australia. In Italia, come in molti altri Stati, si utilizzano entrambi i sistemi ma si preferisce sempre di più quello delle 24H (soprattutto in campo medico), il quale non dà origine a letture ambigue.
Per programmare il sistema orario dell'orologio, premere e mantenere premuto il pulsante dei MINUTI (MINUTES) per 2 secondi o comunque fino a quando il display non visualizza la cifra "12" (sistema a 12 ore) oppure "24" (sistema a 24 ore), quindi rilasciare il pulsante.
Il valore programmato si alterna ogni volta che si avvia la procedura (funzionamento toggle). Quando si passa dalla visualizzazione "24H" a quella "12H", l'orario è aggiornato automaticamente: ad esempio, se l'orologio visualizza le 19:30:00, passando alla visualizzazione 12H, il nuovo valore sul display sarà 7:30:00. L'impostazione del sistema orario è memorizzata sulla Eeprom del PICmicro e quindi rimane in memoria anche quando viene tolta l'alimentazione (Durante la programmazione, il conteggio dell'orologio non si ferma, ma continua anche se le cifre non vengono visualizzate).
OROLOGIO DIGITALE a MICROCONTROLLORE
https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html
SCANSIONE AUDIO DEI SECONDI - E' possibile in qualsiasi momento impostare la scansione audio dei secondi cioè l'emissione di un breve segnale acustico ad ogni secondo (simulazione dell’orologio meccanico). Per la programmazione, premere e mantenere premuto il pulsante delle ORE (HOURS) per 2 secondi o comunque fino a quando sul display a destra non appare la cifra "0" (scansione audio dei secondi DISABILITATA) oppure la cifra "1" (scansione audio dei secondi ABILITATA), quindi rilasciare il pulsante.
Il valore programmato si alterna ogni volta che si avvia la procedura (funzionamento toggle).
Questa impostazione è memorizzata sulla Eeprom del PICmicro e rimane in memoria anche quando viene tolta l'alimentazione (Durante la programmazione, il conteggio dell'orologio non si ferma, ma continua anche se le cifre non vengono visualizzate).
SCANSIONE AUDIO DELLE ORE - Anche per le ORE è possibile impostare la scansione audio ovvero l'emissione di un breve segnale acustico al passaggio della nuova ora. Per la programmazione, premere e mantenere premuto il pulsante SHIFT per almeno 3 secondi o comunque fino a quando sul display di sinistra non appare la cifra "0" (scansione audio delle ore DISABILITATA) oppure la cifra "1" (scansione audio delle ore ABILITATA), quindi rilasciare il pulsante.
Il valore programmato si alterna ogni volta che si avvia la procedura (funzionamento toggle).
Anche questa impostazione, come la precedente, è memorizzata sulla Eeprom del PICmicro.
TEST DISPLAY - All'accensione, l'orologio avvia automaticamente il TEST dei display (i sei display sono accesi uno alla volta in modo sequenziale per verificare il corretto funzionamento di tutti i segmenti). Per avviare manualmente il TEST, è possibile inserire sul circuito un piccolo microinterruttore come spiegato nel paragrafo “AGGIUNTA DEL PULSANTE DI TEST”.
OROLOGIO DIGITALE a MICROCONTROLLORE
https://www.narcisivalter.it/progetti/orologio-digitale-con-PICmicro.html
IN CONCLUSIONE In poco spazio sono stati inseriti 6 display, 5 circuiti integrati e altri componenti per cui i ponti da inserire sono 50 (quelli segnati in rosso), molti dei quali sono "nascosti" sotto i sei display: è il prezzo che si paga quando non si vuole utilizzare il circuito stampato a doppia faccia, sempre molto difficile da realizzare a livello hobbistico. Se lo stabilizzatore 7805 dovesse scaldare eccessivamente, si consiglia di posizionarlo sopra un'aletta di raffreddamento e saldarne i piedini sul circuito stampato attraverso tre spezzoni di filo.
s
s
05/2018