logo

 

Horloge numérique 8 chiffres basée sur un ATMega8.
Elle affiche les heures, minutes, secondes et centièmes. 4 boutons servent à régler l'heure.
Possibilité d'extension par l'usage de seulement 3 boutons.

Matériel:
1 plaque bakélite en bandes 200x100mm
8 résistances 220 ohms
8 transistors BC337 ou BC327 (voir source)
1 régulateur 5v positif 7805
4 boutons poussoir miniatures
1 condensateur plastique 100nF
2 condensateurs céramique 22pF
1 condensateur chimique 47µF 16V
1 microcontroleur ATMega8 version DIP
1 quartz 3.276800Mhz
8 afficheurs 7 segments à cathode commune
Beaucoup de fil de cablage multibrins.

Les deux vis sont optionelles. Le tout nécessite une alimentation d'au moins 6.5V (même si à 3V elle fonctionne toujours à peu près correctement).
Puisque les plaques bakélite ne font pas plus de 38 bandes de large, il faut couper deux bandes pour le haut de 2 x 4 afficheurs, une bande pour le bas de 4, et une plus grosse aire pour le bas des 4 derniers et les composants.

L'affichage se fait par multiplexage, d'où le nombre important de connections à faire sur les afficheurs. Les 8 transistors permettent de choisir quel afficheur activer sur PORTB et PORTC (qui sert aussi à lire l'état des boutons). PORTD permet d'allumer les segments voulus.

La dérive totale de l'horloge ne devrait pas excéder 2s par jour (peut être réduite encore en écrivant un meilleur firmware, j'ai l'impression que l'interruption de Timer0 empêche parfois celle de Timer1 et fait alors sauter des "ticks". Si son prescaler est monté à 64, ça aiderait peut être mais le rafrachaissiment tomberait à 25Hz... Utiliser Timer0 pour les ticks et Timer1 avec un compare match a 0x80 ?).

Timer0 donne la fréquence de rafraichissement: 3276800Hz / 8 prescaler / 256 valeur max du compteur / 8 afficheurs = 200Hz.
Timer1 donne le "tick" pour le centième de seconde: 3276800Hz / 1024 prescaler / 32 valeur du compare match A = 100Hz.

Schéma (clic):

Routage:

Noms des boutons, connections segments et connections selection, masses, +5v, contrôle:

Assemblage:

Firmware 1.0, binaire et source C AVRStudio4.
Bouton A: arrêter.
Bouton B: démarrer.
Bouton C: incrémenter les heures.
Bouton D: incrémenter les minutes.

footer
symbol symbol symbol symbol symbol