Etape 2: Construire l’horloge électronique
Microcontrôleur
Le cerveau de ce projet est un microcontrôleur PIC 16F628A. Il active le moteur pas à pas lorsque nécessaire et garder trace du temps.
Boutons
L’interface est très simple, il se compose de deux boutons. Lorsque vous appuyez sur le bouton gauche de l’horloge avance l’heure en utilisant le moteur. Si le bouton droit est enfoncé l’heure décrémente en utilisant le moteur. Le seul problème est lorsque vous devez corriger le temps de plusieurs heures, que vous devez maintenir le bouton enfoncé pendant une longue période. Le moteur pas à pas aussi toujours sous tension pour que les engrenages ne glisse pas. Pour régler ce problème, lorsque les deux boutons sont pressés le stepper motor est deenergized et le train d’infimes peut être filé librement.
Moteur
Le moteur est un moteur pas à pas unipolaire qui ont été récoltées à partir d’un vieux lecteur de disquettes 5 1/4 de pouce. C’est le moteur utilisé pour déplacer la lecture/écriture têtes en arrière, pour en obtenir un de cette taille et de puissance, vous aurez besoin de trouver une belle et ancienne. Les lecteurs de disquettes modernes n’ont pas steppers avec ce niveau de couple.
Ce moteur déplace 1,8 degrés par impulsion, ce qui signifie que, avec 200 impulsions il va faire une rotation complète. Étant donné que c’est un moteur bipolaire c’est simple pour le PIC à le conduire avec seulement 4 transistors.
Code
Le code est essentiellement divisé en deux sections, il y a une boucle itérative qui surveille les boutons pour un changement d’État et vérifie si l’horloge interne a franchi la barre 9 deuxième. Si une de ces conditions s’est produite le moteur pas à pas est conduite correctement.
L’autre partie du code est interruption conduite et il assure le suivi des temps. Une interruption est déclenchée chaque 0,1 seconde et ajuste l’horloge interne au besoin. Il y a une véritable horloge à l’intérieur en cours d’exécution, si vous vous connectez la broche PIC horloge 6 à un port série ordinateur fonctionne à 9600 bps, vous verrez les valeurs d’horloge interne mise à jour une fois par seconde. Dans ce cas la valeur de l’horloge est arbitraire puisqu’il n’apparaît jamais et ne sera pas le même que celui qu’affichent les engrenages, mais ce même code sera utilisé à l’avenir des projets qui utilisera ce temps d’affichage de code.