Table des matières:
Vidéo: Horloge de précision : 3 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
Nous avons tous besoin d'horloges, alors pourquoi ne pas créer la vôtre dans cette instructable, je vais vous montrer comment faire une horloge de précision une fois que vous avez défini, gardera automatiquement une trace de l'heure actuelle en arrière-plan de tout. Tout en ne nécessitant que très peu de fournitures et aucune soudure.
Fournitures
Tout d'abord, vous aurez besoin d'un Arduino mais n'importe quel Arduino fonctionnera
Ensuite, vous aurez besoin d'un assortiment de cavaliers génériques.
2 interrupteurs à bouton-poussoir Sparkfun de 12 mm
Une planche à pain traditionnelle
et un écran LCD 1602 16 broches
Étape 1: Câblage
Pour que cette horloge fonctionne, vous devez la câbler d'une manière très spécifique, sinon vous obtiendrez un tas de nombres aléatoires à l'écran plutôt que l'heure.
Étape 2: le code
Comme nous n'utilisons pas de RTC, le code va être un peu long, mais heureusement, j'ai fait tout le travail pour vous et je l'ai fourni ici.
Copiez et collez simplement ceci dans l'IDE Arduino ou dans l'éditeur Web.
#include "LiquidCrystal.h"
// Ceci définit le câblage LCD vers les broches DIGITAL const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// Réglage du contraste LCD numérique int cs=9; // broche 9 pour le contraste PWM const int contrast = 100; // contraste par défaut
// l'affichage initial de l'heure est 12:59:45 PM int h=12; entier m=59; int s=45; indicateur int=1; //PM
// Boutons de réglage de l'heure int button1; int bouton2;
// Définition des broches pour les boutons de réglage de l'heure int hs=0; // broche 0 pour le réglage des heures int ms=1; // broche 1 pour le réglage des minutes
// Délai d'expiration du rétroéclairage const int Time_light=150; int bl_TO=Time_light;// Délai d'expiration du rétroéclairage int bl=10; // Broche de rétroéclairage const int backlight=120; // pas plus de 7mA !!!
// Pour une lecture précise de l'heure, utilisez l'horloge temps réel Arduino et pas seulement delay() static uint32_t last_time, now = 0; // RTC
void setup() { lcd.begin (16, 2); pinMode (hs, INPUT_PULLUP); // éviter les résistances Pullup externes pour le bouton 1 pinMode (ms, INPUT_PULLUP); // et bouton 2 analogWrite (cs, contraste); // Ajuster le contraste VO analogWrite (bl, backlight); // Tourner on Backlight now=millis(); // lit la valeur initiale RTC }
void loop() { lcd.begin (16, 2); // chaque seconde // Mettre à jour l'affichage LCD // Imprimer l'HEURE en heures, minutes, secondes + AM/PM lcd.setCursor (0, 0); lcd.print("Heure "); if(h<10)lcd.print("0");// toujours 2 chiffres lcd.print(h); lcd.print(":"); if(m<10)lcd.print("0"); lcd.print(m); lcd.print(":"); if(s<10)lcd.print("0"); lcd.impression(s);
if(drapeau==0) lcd.print(" AM"); if(drapeau==1) lcd.print(" PM"); lcd.setCursor(0, 1);// pour la ligne 2 lcd.print("Horloge de précision");
// amélioration du remplacement du délai (1000) // bien meilleure précision, ne dépend plus du temps d'exécution de la boucle
for (int i=0;i<5;i++)// faire une boucle de 5 fois 200ms, pour une réponse plus rapide du bouton {
while ((now-last_time)<200) //delay200ms { now=millis(); } // boucle interne de 200 ms last_time=now; // préparer la prochaine boucle
// lire les boutons de réglage button1=digitalRead(hs); // lire les boutons button2=digitalRead(ms);
//Temps d'expiration du rétroéclairage bl_TO--; if(bl_TO==0) { analogWrite(bl, 0);// Rétroéclairage OFF bl_TO++; } // Appuyez sur n'importe quel pour activer le rétroéclairage if(((button1==0)|(button2==0)) & (bl_TO==1)) { bl_TO=Time_light; analogWrite(bl, rétroéclairage); // attendre que le bouton soit relâché while ((button1==0)|(button2==0)) { button1=digitalRead(hs);// Lire les boutons button2=digitalRead(ms); } } else // Traiter le bouton 1 ou le bouton 2 lorsqu'il est touché alors que le rétroéclairage est activé { if(button1==0){ h=h+1; bl_TO=Heure_lumière; analogWrite(bl, rétroéclairage); }
if(bouton2==0){ s=0; m=m+1; bl_TO=Heure_lumière; analogWrite(bl, rétroéclairage); }
/* ---- gérer les secondes, minutes, heures débordement am/pm ----*/ if(s==60){ s=0; m=m+1; } si(m==60) { m=0; h=h+1; } si(h==13) {h=1; indicateur=indicateur+1; si(drapeau==2)drapeau=0; }
if((button1==0)|(button2==0))// Mettre à jour l'affichage si le bouton de réglage de l'heure est enfoncé { // Mettre à jour l'affichage LCD // Imprimer l'HEURE en Heure, Min, Sec + AM/PM lcd.setCursor(0, 0); lcd.print("Heure "); if(h<10)lcd.print("0");// toujours 2 chiffres lcd.print(h); lcd.print(":"); if(m<10)lcd.print("0"); lcd.print(m); lcd.print(":"); if(s<10)lcd.print("0"); lcd.impression(s);
if(drapeau==0) lcd.print(" AM"); if(drapeau==1) lcd.print(" PM"); lcd.setCursor(0, 1);// pour la ligne 2 lcd.print("Horloge de précision"); }
} // fin si sinon }// fin pour
// boucle externe de 1000 ms
s=s+1; //incrémenter la sec. comptage // ---- gérer les secondes, minutes, heures débordement am/pm ---- if(s==60){ s=0; m=m+1; } si(m==60) { m=0; h=h+1; } si(h==13) {h=1; indicateur=indicateur+1; si(drapeau==2)drapeau=0; }
// Fin de boucle }
Étape 3: Schéma (ce n'est pas vraiment une étape)
Si quelqu'un qui lit ceci est un nerd de la technologie, voici également un schéma que vous pouvez regarder devenir fou.
Profitez et amusez-vous et surtout restez frais.
Conseillé:
Comment faire une horloge analogique et une horloge numérique avec une bande LED à l'aide d'Arduino: 3 étapes
Comment faire une horloge analogique et une horloge numérique avec une bande LED à l'aide d'Arduino Horloge numérique avec Led Strip et module MAX7219 Dot avec Arduino. Elle corrigera l'heure avec le fuseau horaire local. L'horloge analogique peut utiliser une bande LED plus longue, elle peut donc être accrochée au mur pour devenir une œuvre d'art
Horloge de retraite / Compte à rebours / Horloge Dn : 4 étapes (avec photos)
Retirement Clock / Count Up / Dn Clock: J'avais quelques-uns de ces écrans à matrice de points LED 8x8 dans le tiroir et je réfléchissais à ce que je devais en faire. Inspiré par d'autres instructables, j'ai eu l'idée de construire un affichage de compte à rebours/up pour compter jusqu'à une date/heure future et si l'heure cible p
ESP8266 Horloge réseau sans RTC - Nodemcu NTP Horloge Pas de RTC - PROJET HORLOGE INTERNET : 4 étapes
ESP8266 Horloge réseau sans RTC | Nodemcu NTP Horloge Pas de RTC | PROJET D'HORLOGE INTERNET: Dans le projet, un projet d'horloge sans RTC prendra du temps sur Internet en utilisant le wifi et l'affichera sur l'écran st7735
Horloge basée sur Arduino utilisant le module d'horloge en temps réel (RTC) DS1307 et 0.96 : 5 étapes
Horloge basée sur Arduino utilisant le module d'horloge en temps réel (RTC) DS1307 et 0.96 : Salut les gars, dans ce tutoriel, nous verrons comment créer une horloge de travail à l'aide d'un module d'horloge en temps réel DS1307 & Afficheurs OLED. Nous allons donc lire l'heure du module d'horloge DS1307. Et imprimez-le sur l'écran OLED
Faire une horloge avec M5stick C en utilisant Arduino IDE - Horloge temps réel RTC avec M5stack M5stick-C : 4 étapes
Faire une horloge avec M5stick C en utilisant Arduino IDE | Horloge en temps réel RTC avec M5stack M5stick-C : Salut les gars dans ce instructables, nous allons apprendre à faire une horloge avec la carte de développement m5stick-C de m5stack à l'aide d'Arduino IDE. semaine du mois sur l'écran