Étape 1: conception
Après de nombreuses années des horloges avec une logique de construction puces que j’ai décidé d’utiliser le microcontrôleur en raison de la puce réduite comptent et donc la facilité de construction. Mon horloge maître précédent utilisé 31 logique ICs et 4 cartes et avait beaucoup moins de fonctions voir photo.
J’ai décidé d’utiliser Arduino pour contrôler mon nouveau maître en raison de sa facilité de programmation. La plupart des travaux compliqué est fait par les personnes qui conçoivent et ensuite partagent les bibliothèques. Arduino est très bien prise en charge matériel sage et nombreuses pièces complètes peuvent être achetés prêt construit comme bloc de construction pour les projets.
Sur cette horloge un MAX7219 entraîne l’affichage principal et un 4 x 20 que LCD I2C est utilisé pour le secondaire, ces aide à garder le câblage et la goupille de Arduino 328 utilisent au minimum. J’ai gardé le même type de cas de chêne utilisée dans mon ancien maître horloge qu’équipé de 6 x 1" 7 affichage à segments parfaitement et m’a donné un espace pour s’adapter à tous les autres modules. J’ai utilisé un module PIR pour affichage arrêt/réveil avec son propre minuterie et de réglage de la sensibilité car elle utilise seulement 1 broches de l’Arduino 328. Un module EZ Link Bluetooth carte série me permet de programmer l’horloge et de lire les données de lui à distance de mon PC de bureau et mobile Android.
Les considérations de conception lors de la construction de cette horloge devait réduire la consommation d’énergie que l’horloge est sur 24/7. Consultez le tableau ci-dessous la plupart du temps que l’horloge Mk2 dessinera autour de 50mA par rapport à 200mA de la Mk1.
Consommation d’énergie
Masterclock Mk1 200mA
Masterclock MK2 démarrage 35mA
Affichage éteint pendant la journée sans mouvement détecté 40mA
Affichez sur 0 luminosité 43mA
Affichez sur 2 luminosité 50mA
Affichez sur 5 luminosité 62mA
Affichez sur 10 brightness78mA
Affichez sur 15 brightness90mA (max)
Arduino bibliothèques utilisées
DCF77.h cette bibliothèque est le cœur de l’horloge et il décode même un signal DCF77 bruyant et auto tunes le cristal de quartz.
LedControl.h pour piloter l’affichage à LED et le rétroéclairage LDC via un IC MAX7219.
LiquidCrystal_I2C.h pour piloter l’affichage LCD
Wire.h pour communiquer avec les périphériques I2C
Temps de maintien de la
Mon ancien maître horloge était un gardien de très bon moment et aussi longtemps que j’ai eu un bon signal DCF77 pour préserver la synchronisation il faisait beau. Chaque maintenant et puis quand le signal DCF77 a été perdu pendant un certain temps, qu'il obtiendrait un second et lors de la correction il il ferait alors le second 1 esclaves perdent une seconde. Cela ne s’est produit une ou deux fois par an, mais re-synchroniser toutes mes 1 seconde esclaves était une douleur.
J’ai décidé de continuer à utiliser le signal DCF77 de l’horloge atomique en Allemagne. J’aurais pu utiliser le signal MSF au Royaume-Uni mais la réception n’est pas bonne dans le Surrey, car l’émetteur a aller de l’avant du Nord. Le signal DCF77 est aussi mieux pris en charge tel qu’il est utilisé dans toute l’Europe non seulement au Royaume-Uni.
Je vais utiliser la bibliothèque de décodeur Arduino DCF77 rédigés par Udo Klein. Udo a développé ce code au cours de ces dernières années pour le faire synchroniser et verrouiller sur un signal, même quand il y a une énorme quantité de bruit et les interférences sur le signal. Tout en prototypage ma nouvelle horloge que constamment, j’ai réussi à synchroniser et à maintenir un verrou, même si le récepteur de signal DCF77 qui a conduit devrait montrer une constante 1 seconde impulsion d’Allemagne clignote plusieurs fois par seconde. Code de bibliothèque de Udo DCF77 est très très complexe, mais en termes très basiques, qu'il se bloque sur la fréquence DCF77 en utilisant une boucle à verrouillage par étapes et une fois verrouillé il prédira réellement ce que le code DCF77 devrait contenir et ensuite chercher des extraits de ce code dans un signal très bruyant. Que des choses comme la date ne changent pas souvent que son code peut rechercher ces données dans le signal pour l’aider à rester verrouillé sur ! Une fois en synchronisation avec le signal DCF77 il utilise pour « auto tune » le cristal de quartz sauvegarde s’assurer que si le signal DCF77 est perdu l’horloge reste toujours synchronisé. Vous pouvez lire tous les détails du développement de cette bibliothèque et site/blog de beaucoup plus sur Udo ici Blinkenlight.
Le seul petit inconvénient à cette bibliothèque, c’est qu’il faut un temps précis base sur l’Arduino pour verrouiller la fréquence DCF77. Conseils d’Arduino modernes n’utilisent pas un cristal de quartz (celui que vous voyez sur la carte est pour le port série) mais un résonateur céramique inférieur de 16MHz. Udo a écrit un programme de test pour vérifier si votre Arduino planches résonateur/crystal sont à la hauteur de l’exécution de sa bibliothèque et peuvent être trouvés ici Portée DCF77 . Si votre carte n’est pas à la hauteur, il est très facile à enlever du résonateur et remplacez-le par un cristal de quartz et un couple de condensateurs. J’ai modifié mon Arduino UNO et il fonctionne parfaitement avec la bibliothèque.
Voir les photos et schémas de l’ONU avant et après modification.
Affichage de l’horloge principale
J’ai utilisé 1"(26mm) 7 segment affichage d’affichage de l’heure comme ceux-ci ont travaillé parfaitement bien sur mon ancien maître horloge et sont lisible à une distance de bonne nuit et aussi en plein jour. Ceux-ci sont conduits par un affichage MAX7219 pilote comme il peut communiquer directement avec l’Arduino à l’aide de deux fils et il a multiplexé affichage simplifie câblage.
Affichage de l’horloge secondaire
L’affichage secondaire ainsi que de montrer la date et l’heure donnera les informations sur le fonctionnement de l’horloge en particulier la performance de décodage DCF77. J’ai utilisé un écran de LCD I2C 4 x 20 pour cela. Encore une fois ces affichages de parler directement à l’Arduino sur une interface 3 fils et sont très bons à afficher beaucoup d’informations se bouchent. Voir afficher l’animation dans cette section.
Cardiofréquencemètre
Surveillance du pouls utilise des LED simple puisqu’elles fournissent une indication visuelle rapide de quelles impulsions sont transmises par l’horloge.