Table des matières:

Horloge d'heure d'été facile : 7 étapes
Horloge d'heure d'été facile : 7 étapes

Vidéo: Horloge d'heure d'été facile : 7 étapes

Vidéo: Horloge d'heure d'été facile : 7 étapes
Vidéo: Comment lire l'heure ? Apprentissage rapide ! 2024, Novembre
Anonim
Horloge d'heure d'été facile
Horloge d'heure d'été facile
Horloge d'heure d'été facile
Horloge d'heure d'été facile

Histoire

Ce projet a commencé comme un défi pour moi d'apprendre la programmation (codage) avec l'Arduino Uno et un seul écran LCD 1602A, je voulais d'abord pousser l'Arduino à ses limites en termes de précision. Il s'agit d'un projet pour construire une horloge sans l'utilisation d'un module RTC (module Real Time Clock) et de plus n'utiliser aucun délai (); commandes parce que delay(); La commande arrête le code pendant une durée déterminée. Alors que je travaillais sur le code de base de l'heure, j'ai pensé que cela pourrait être un peu banal, j'ai donc décidé d'ajouter une fonction d'heure d'été en tant que nouvel ajout pour pimenter les choses et éventuellement créer un peu plus d'intérêt pour ce projet. Au début, l'idée était purement nouvelle, mais plus je travaille avec et plus je regarde l'horloge physique que j'ai sur mon bureau, plus l'idée devient pratique. En ajoutant un module RTC et en ajustant le code, cette horloge serait précise pour les années à venir et à très faible coût pour les fabricants et le public qui achètent une telle horloge.

L'heure d'été ou (DST) existe depuis plus de 100 ans (Google, il a une histoire assez colorée). Je ne veux pas entrer dans la politique mais c'est un exercice grossier et douloureux qui ne facilite pas la vie des gens ordinaires (vous et moi). Pour la plupart, nous apprécions l'heure supplémentaire de lumière du jour, mais la manière dont elle est appliquée est brutale. Il est temps pour une mise à niveau majeure d'une très vieille idée.

Cet exemple est facile à vivre avec et avec l'ère numérique et les progrès technologiques facilement applicables à toutes les formes d'horloges numériques, mais pourrait contribuer à la disparition de l'horloge analogique. Plutôt qu'un saut d'une heure de l'heure standard à l'heure DST puis de l'heure DST à l'heure standard, cette horloge est basée sur la progression progressive du temps du solstice d'hiver au solstice d'été puis de retour à l'heure standard au prochain solstice d'hiver année après année. Cette transition a lieu pendant 180 jours sur chaque période de 6 mois, l'ajustement est de 20 secondes par jour pendant 360 jours avec les 5 ou 6 jours restants ajoutés à la durée des solstices. Mon exemple ici incrémente 1 minute une fois tous les trois jours dans le cycle de 180 jours. Le ou vers le 21 juin de chaque année, l'horloge a une heure d'avance complète et le ou vers le 21 décembre de chaque année, l'horloge est revenue à l'heure standard. L'année bissextile est facilement prise en compte, surtout si un RTC est utilisé. L'hémisphère sud est également facilement adapté à cette horloge, l'échelle coulissante est simplement déphasée de 6 mois par rapport à l'hémisphère nord.

Il y a trois endroits dans le monde où l'heure d'été serait à peu près à moins que ce soit la région équatoriale et les pôles. Je ne pense pas que la lumière du jour change beaucoup à l'équateur, je ne sais pas si l'une des zones tropicales utilise même l'heure d'été et les pôles sont encore une autre histoire, juste "QUELLE" heure est-il aux pôles de toute façon?

Étape 1: À propos de l'horloge

À propos de l'horloge
À propos de l'horloge
À propos de l'horloge
À propos de l'horloge

L'horloge que j'ai créée est basée sur l'heure standard qui ne diffère jamais de l'horloge mondiale acceptée internationalement, elle est affichée sur la première ligne de l'écran LCD 1602. La deuxième ligne est la même échelle de temps mais elle montre le décalage des minutes d'un solstice à l'autre. Du solstice d'hiver au solstice d'été, le décalage augmente d'une minute tous les trois jours jusqu'à un maximum de soixante minutes. Du solstice d'été au solstice d'hiver, le décalage diminue d'une minute tous les trois jours jusqu'à ce que l'heure standard et l'heure DST soient identiques.

Pour cet exemple, j'ai utilisé l'heure militaire (horloge de 24 heures) et l'heure standard (horloge de 12 heures) AM et PM pour aider les personnes qui ne sont pas familiarisées avec l'échelle de temps de 24 heures. réglé à partir de. Le code peut être modifié pour afficher l'horloge de 12 heures. J'ai ajouté trois boutons poussoirs connectés aux broches numériques 2, 3 et 4 pour régler l'heure. Ces boutons n'augmenteront que les secondes, les minutes ou les heures. Les boutons sont facultatifs, l'horloge fonctionnera toujours correctement si vous ne câblez pas les boutons et si vous n'avez pas besoin de modifier le code. Je recommanderais au moins d'utiliser un bouton pour régler les secondes et si une précision complète ne peut pas être atteinte, gardez l'horloge lente, le bouton avance le temps d'une seconde par seconde.

Si vous démarrez l'horloge à partir de l'IDE Arduino, il faudra environ 5,5 à 6 secondes pour que le croquis se charge et démarre. 3 secondes pour démarrer et exécuter.

Une configuration manuelle est nécessaire lorsque l'horloge est enfin prête à fonctionner.

Cette horloge n'utilise pas de module RTC et n'utilise pas non plus "delay();" commandes.

Si vous aimez utiliser le RTC avec l'Arduino, ce concept peut toujours être utilisé. Le RTC vous donnera toutes les informations dont vous avez besoin pour ajouter l'heure EDSC. Le code peut être assez différent avec un module RTC, je ne me suis pas penché dessus. Vous êtes à peu près tout seul si vous le faites, mais c'est un excellent moyen d'exercer votre cerveau.

Étape 2: ce dont vous aurez besoin

Ce dont vous aurez besoin
Ce dont vous aurez besoin
Ce dont vous aurez besoin
Ce dont vous aurez besoin
Ce dont vous aurez besoin
Ce dont vous aurez besoin

LISTE DE COURSES

1 Arduino Uno ou Mega2569 (les broches I2C sont A4 et A5 sur UNO et 20 et 21 sur 2560 Mega)

À peu près n'importe quel autre Arduino devrait fonctionner, les broches utilisées peuvent être différentes. D'ailleurs, n'importe quelle carte contrôleur fonctionnera. Vous devrez réécrire le code pour cette carte ou ce fabricant.

1 écran LCD 1602 (couleur au choix)

J'utilise un sac à dos I2C avec l'écran LCD, je le trouve plus facile et plus rapide à mettre en place.

Fils de cavalier

FOURNITURES OPTIONNELLES

1 planche à pain de taille moyenne

1-3 boutons poussoirs à contact momentané

1-3 résistances de 10 K ohms

Cette instructable est longue, donc je ne vais pas dans le montage ou l'armoire que j'ai utilisé pour afficher l'horloge. Si vous aimez ce projet et que vous souhaitez en faire une version permanente, concevez-le à votre goût. Ce design est parfait pour moi car j'avais tout ce dont j'avais besoin dans ma boîte à ordures et j'aime son apparence.

REMARQUES:

Pour éviter les chutes de pannes de courant, mon horloge finale est alimentée par un panneau solaire que j'ai à l'extérieur. Le panneau solaire maintient une batterie de 12 volts chargée avec un régulateur pour éviter la surcharge. Cette batterie est connectée à l'Arduino via la prise d'alimentation à côté du port USB. Je garde le port USB connecté au réseau pour réduire la consommation de la batterie. Les deux sources d'alimentation peuvent être utilisées en même temps sans endommager l'Arduino. Une batterie de 12 volts peut être chargée à 14,5 volts max, ce qui est trop élevé pour l'Arduino, j'utilise donc un convertisseur buck pour réduire la tension d'alimentation de la batterie dans une plage de 9 à 12 volts. La batterie de 12 volts que je garde chargée durera 3 ou 4 jours si les jours sont couverts. Le régulateur que j'utilise coupera l'alimentation de l'Arduino si la tension de la batterie tombe à 11 volts. La batterie que j'ai provient d'un système d'éclairage de secours pour les bâtiments commerciaux, c'est environ un quart de la taille d'une petite batterie de voiture. Si vous avez l'intention d'utiliser une batterie de voiture, assurez-vous de la conserver dans un endroit bien ventilé (à l'extérieur), les batteries de voiture dégagent de l'hydrogène et de l'oxygène lorsqu'elles se chargent et se déchargent, c'est une combinaison explosive.

ATTENTION

GARDER LA BATTERIE DANS UN PUITS

ESPACE VENTILÉ, À L'EXTÉRIEUR

Étape 3: Câblage

Câblage
Câblage

J'ai fourni un schéma de toutes les connexions de ce projet, si vous utilisez une maquette, vous aurez besoin d'une carte de taille moyenne, les commutateurs auront besoin d'espace pour être répartis afin que le circuit ne soit pas déroutant.

L'écran LCD 1602 dispose d'un sac à dos I2C pour plus de simplicité, si vous utilisez des connexions SPI, vous devrez rechercher comment l'utiliser et modifier le code vers le début du croquis. Je n'ai jamais utilisé les connexions SPI, donc les broches 2, 3 et 4 peuvent ne pas être disponibles pour les trois boutons-poussoirs.

Les trois boutons poussoirs permettent de régler l'heure de l'horloge. Ils ne font qu'avancer le temps (AHEAD). Dans les derniers réglages, gardez l'horloge dans le code au ralenti (environ 1 à 2 secondes par jour ou plusieurs jours) de cette façon, vous pouvez avancer l'heure si nécessaire. Chaque bouton fait avancer le temps d'un incrément par seconde, le bouton du bas 2 secondes par seconde, le bouton du milieu 1 minute par seconde et le bouton du haut 1 heure par seconde. Un degré de précision assez élevé devrait être possible afin que vous n'ayez pas besoin de l'ajuster très souvent.

Si vous réglez les secondes, les minutes ou les heures (par exemple si les minutes sont avancées de 58, 59, 00), l'heure passera à l'heure suivante.

Ces trois boutons sont un ajout de dernière minute à l'horloge, ils fonctionnent bien mais il peut y avoir un meilleur moyen. N'oubliez pas que si vous jouez avec cette partie du code, le "delay();" la commande ne peut pas être utilisée. J'ai utilisé cette méthode parce que je n'ai pas à m'inquiéter du rebond des commutateurs et des sauts étranges dans le temps.

Étape 4: ce que l'écran affiche

Ce que l'affichage montre
Ce que l'affichage montre

J'ai mis beaucoup d'informations sur l'écran LCD 1602 qui nécessitent quelques explications:

Ligne 1 Ou ligne zéro '0' lorsque vous parlez en code, indique l'heure standard. Sur la gauche se trouve 'STD', cela signifie l'heure 'STANdarD'.

Suivant sur la première ligne au milieu est votre heure locale standard. Ne commencez pas par l'heure d'été, l'horloge l'affichera sur la deuxième ligne.

Cette échelle de temps est une horloge de 12 heures, donc sur le côté droit se trouve « AM ou « PM » pour indiquer le matin ou l'après-midi.

Ligne 2 Ou ligne un '1' lorsque vous parlez en code, indique l'heure d'été qui varie selon le jour de l'année. Le « DST » sur la gauche signifie « Heure d'été »

Au milieu de la deuxième ligne se trouve votre heure militaire locale qui est une horloge de 24 heures. Vous l'entendrez par exemple comme « oh six cents heures ».

Sur le côté droit se trouve le jour de l'année tel que référencé au solstice d'hiver, dans l'hémisphère nord le 21 décembre (environ) est le jour zéro « 0 » et dans l'hémisphère sud le 21 juin (environ) est le jour zéro « 0 ».

J'ai fourni deux fichiers.pdf pour référence lors de la première configuration de l'horloge. Choisissez le fichier qui fait référence à l'hémisphère dans lequel vous vivez.

Les trois boutons sur la droite incrémentent les secondes, les minutes et les heures de bas en haut.

Étape 5: Configuration de l'esquisse

Configuration de l'esquisse
Configuration de l'esquisse

Plusieurs lignes de code doivent être configurées pour le démarrage initial. Certaines de ces lignes doivent être modifiées chaque fois que vous déconnectez l'horloge et modifiez les valeurs des variables dans le croquis. Si vous démarrez l'horloge de l'IDE, il faudra environ 6 secondes pour se charger et démarrer. Si vous chargez l'esquisse à partir de l'IDE, déconnectez l'horloge et redémarrez-la à partir d'une verrue murale ou d'une alimentation électrique, l'esquisse démarrera en 2,5 secondes environ.

Ligne 11 LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7);

Cette ligne adresse l'écran LCD et définit l'adresse correcte du sac à dos I2C. 0x27 est l'adresse de l'un des sacs à dos que j'ai achetés. Si vous allumez l'horloge mais qu'aucune donnée n'est affichée mais qu'elle s'allume, l'adresse est probablement différente sur votre écran LCD. Je mettrai un lien ci-dessous pour une description de la façon de changer l'adresse de votre sac à dos LCD ou de trouver l'adresse.

Lignes 24 int minuteSt = 35;

Réglez la minute de début de l'horloge standard, généralement 5 minutes avant de démarrer l'horloge pour permettre l'heure de configuration.

Lignes 25 int hourSt = 18;

Réglez l'heure sur l'heure STD (horloge de 24 heures) qui commence. 18 heures serait l'heure 18.

Ligne 26 int DSTdays = 339;

Téléchargez et reportez-vous au fichier pdf "Easy DST Clock Time Scale" (hémisphère nord ou sud) dans lequel vous vivez, recherchez la date et insérez le numéro du jour dans cette ligne. (Colonne de gauche). Exemple (le 24 novembre est le jour 339 dans l'hémisphère nord et le jour 156 dans l'hémisphère sud)

Ligne 27 int DSTyear = 2019;

Entrez l'année en cours.

Ligne 92 if ((masterTime - previousMasterTimeSt >=1000) && (microTime - previousMicroTimeSt >= 500)){

Le "previousMasterTimeSt" doit être comparé au nombre de millisecondes, donc ce "1000" devra peut-être passer à 999 en fonction de l'horloge interne de la carte Arduino, puis ajuster le previousMicroTime pour affiner l'horloge. L'horloge interne bien que 16MH a des variations d'une carte à l'autre.

Le "previousMicroTimeSt" ajuste finement l'horloge interne pour aider à compter une seconde précise. Si l'horloge est trop rapide augmentez les microsecondes et si l'horloge est trop lente diminuez les microsecondes et si besoin baissez les millisecondes à 999 puis démarrez les microsecondes à environ 999, 990 ou augmentez la vitesse de l'horloge.

Chaque carte Arduino a une vitesse légèrement différente, donc ces chiffres changeront avec chaque carte que vous utilisez. Une partie du code n'a pas encore été testée, il s'agit de la ligne 248 pour tenir compte de chaque année bissextile. Dans les prochaines semaines, je vais le tester et poster les modifications si nécessaire.

Étape 6: Notes finales

Notes finales
Notes finales

Ce projet est facile à construire mais le concept et les ajustements nécessaires dans le code peuvent être une tâche, prenez votre temps et réfléchissez, l'horloge n'expire qu'à la fin de 2037. Je vais garder un œil sur mon email pour des questions car je suis sûr qu'il y en aura, je ne suis pas un génie littéraire donc certaines de mes descriptions peuvent être un peu boueuses.

Il y a deux fichiers.pdf inclus, téléchargez le fichier pour l'hémisphère dans lequel vous vivez, ce fichier vous donnera les informations nécessaires pour démarrer l'horloge avec précision.

Avec les informations manipulées dans le croquis, il serait facile d'afficher non seulement l'heure standard et l'heure d'été, mais aussi le jour et la date sur un écran LCD 2004A. Si vous aimez les défis que ce projet propose, essayez de connecter un écran LCD 2004A, puis ajoutez du code pour afficher les informations supplémentaires ou si suffisamment d'intérêt est manifesté, je ferai une autre variante de ce projet, y compris ces informations supplémentaires.

J'ai essayé d'être global dans ce projet mais j'ai trouvé trois domaines dans le monde en question. Le pôle Nord, le pôle Sud et l'équateur.

L'heure d'été est-elle nécessaire ou même possible aux pôles Nord ou Sud ?

Quelle heure est-il au pôle Nord ou au pôle Sud ?

Quelle direction prendriez-vous pour quitter le pôle Nord ou le pôle Sud ?

Depuis le pôle Sud, quelle direction prendriez-vous pour atteindre l'Australie, l'Amérique du Nord, l'Europe ou l'Asie ?

Dans quel fuseau horaire habite le Père Noël ?

A-t-il besoin de l'heure d'été ?

Quelle heure est-il de toute façon au pôle Nord ?

Quelle direction prend le Père Noël pour livrer tous ses cadeaux ?

À quelle latitude l'heure d'été est-elle efficace ?

Maintenant pour l'équateur;

Cette horloge est-elle utilisable à l'équateur ?

Utiliseraient-ils l'échelle de l'hémisphère nord ou sud ?

Quelles sont les dates du solstice d'hiver et du solstice d'été ?

À quelle latitude l'heure d'été est-elle efficace ?

Les pingouins ont-ils besoin de l'heure d'été ?

Pensez-vous que je suis bizarre de penser à ces questions?

Bonne construction à tous !

philmnut

Étape 7: Autres liens

Ceci est un lien pour déterminer ou modifier l'adresse sur le sac à dos I2C:

www.instructables.com/id/1602-2004-LCD-Adapter-Addressing/

PiotrS a écrit un excellent instructable pour les adresses matérielles I2C

playground.arduino.cc/Main/I2cScanner

Ce lien scannera votre appareil I2C et renverra l'adresse

Conseillé: