Horloge en temps réel de l’Arduino (DS1307) (4 / 7 étapes)

Étape 4: Vérification et configuration du Module

Une fois que vous avez terminé assemblage du module. Connecter le module à l’Arduino, afin que les broches sont insèrent correctement dans l’Arduino. Le programme pour tester le module est donné ci-dessous. Le code met à jour constamment l’heure via le port série.

Dans l’ordre d’exécuter le module, il faut deux bibliothèques, nous avons besoin de deux bibliothèques dans le logiciel Arduino. Les étapes suivantes configurer le logiciel Arduino avec les bibliothèques nécessaires et le code.

Importation des bibliothèques :

  • Télécharger la bibliothèque "RealTimeClockDS1307" et enregistrez-le sur le bureau.
  • Ouvrez l’Arduino et allez au Sketch = > Bibliothèque d’importation = > Ajouter une bibliothèque.
  • Sélectionnez la bibliothèque enregistrée dans le bureau, puis cliquez sur Ajouter.
  • Maintenant, collez l’exemple de code ci-dessous, puis cliquez sur compiler. Si on compile avec succès puis ignorez les étapes restantes.
  • Si elle n’est pas importer la bibliothèque de deuxième "fil" et répétez la même procédure et compiler le code et il va fonctionner.

Code de travail :

Le code est écrit par « David H. Brown » j’ai simplement l’utiliser pour vous donner une introduction à la DS1307. De toute façon l’Arduino communique avec le Module RTC et met à jour l’heure pour chaque seconde à travers le Serial Monitor. Le créateur nous a donné une option pour régler l’heure quand nous envoyons la commande «?». Le menu suivant apparaît.

Copiez le code suivant vous aidera à régler l’heure mais aussi de vérifier si la batterie de secours du module d’alimentation fonctionne correctement. Dans le prochain tutoriel, je vais vous montrer comment installer un écran LCD et d’afficher le temps écoulé entre le module RTC. Voici le code pour tester le module et un fichier joint de la même chose.

#include < Wire.h > #include < RealTimeClockDS1307.h > //RealTimeClock CCF ; //=new RealTimeClock() ; #define Display_Clock_Every_N_Seconds 10 / / n.secs pour montrer la date/heure #define Display_ShortHelp_Every_N_Seconds 60 / / n.secs pour afficher l’indice de l’aide //#define TEST_Squarewave //#define TEST_StopStart //#define TEST_1224Switch int count = 0 ; char au format [] = "00-00-00 00:00:00 x" ; void setup() {/ / Wire.begin() ; Serial.Begin(9600) ; pinMode (A3, sortie) ; broche 16 (broche analogique 2) comme sortie *** digitalWrite (A3, élevé) ; broche 16 (broche analogique 2) défini sur faible *** pinMode (A2, sortie) ; pin 17 (broche analogique 3) comme sortie *** digitalWrite (A2, faible) ; pin 17 (broche analogique 3) trop élevé *** / / *** paramètres analogiques broches au module d’alimentation RTC ***} void loop() {if(Serial.available()) {processCommand();} RTC.readClock() ; Count ++ ; Si (Nbre % Display_Clock_Every_N_Seconds == 0) {Serial.print(count) ; Serial.Print(":") ; RTC.getFormatted(formatted) ; Serial.Print(formatted) ; Serial.println() ; } Si (Nbre % Display_ShortHelp_Every_N_Seconds == 0) {Serial.println ("Envoyer ? pour obtenir une liste de commandes.");} #ifdef TEST_Squarewave si (Nbre % 10 == 0) {switch (comte/10 % 6) {case 0: Serial.print ("carrés désactivé (basse impédance):") ; RTC.sqwDisable(0) ; Serial.println((int) RTC.readData(7)) ; rupture ; cas 1: Serial.print ("carrés désactivé (haute impédance):") ; RTC.sqwDisable(1) ; Serial.println((int) RTC.readData(7)) ; rupture ; cas 2: Serial.println ("carrés activée à 1 Hz") ; RTC.sqwEnable(RTC.SQW_1Hz) ; rupture ; case 3: Serial.println ("carrés a permis à 4,096 kHz") ; RTC.sqwEnable(RTC.SQW_4kHz) ; rupture ; case 4: Serial.println ("carrés a permis à 8.192 kHz") ; RTC.sqwEnable(RTC.SQW_8kHz) ; rupture ; cas 5: Serial.println ("carrés a permis à 32,768 kHz") ; RTC.sqwEnable(RTC.SQW_32kHz) ; rupture ; par défaut : Serial.println ("carrés test ne pas défini") ; {//switch} #endif #ifdef TEST_StopStart si (Nbre % 10 == 0) {if (! RTC.isStopped()) {if(RTC.getSeconds() < 45) {Serial.println (« horloge d’arrêt pendant 10 secondes") ; RTC.stop() ; //if} nous avons assez de temps} else {RTC.setSeconds(RTC.getSeconds()+11) ; RTC.start() ; Serial.println (« Ajouter 11 secondes et redémarrer l’horloge ») ; //if}} sur un multiple de 10 compte #endif #ifdef TEST_1224Switch si (Nbre % 10 == 0) {si (Nbre % 20 == 0) {Serial.println ("commutation vers 12 heures") ; RTC.switchTo12h() ; RTC.setClock() ; } else {Serial.println ("commutation vers 24 heures") ; RTC.switchTo24h() ; RTC.setClock() ; {}} #endif} void processCommand() {si ()
! Serial.available()) {return;} char commande = Serial.read() ; int dans, in2 ; Switch(Command) {« H » de cas : cas « h »: in=SerialReadPosInt() ; RTC.setHours(in) ; RTC.setClock() ; Serial.Print ("réglage des heures") ; Serial.println(in) ; rupture ; « I » affaire : cas « i »: in=SerialReadPosInt() ; RTC.setMinutes(in) ; RTC.setClock() ; Serial.Print ("affectant minutes") ; Serial.println(in) ; rupture ; de cas ': de l’affaire ': in=SerialReadPosInt() ; RTC.setSeconds(in) ; RTC.setClock() ; Serial.Print ("affectant secondes") ; Serial.println(in) ; rupture ; « Y » de cas : cas « y »: in=SerialReadPosInt() ; RTC.setYear(in) ; RTC.setClock() ; Serial.Print (« année de réglage à") ; Serial.println(in) ; rupture ; cas suis ': cas suis ': in=SerialReadPosInt() ; RTC.setMonth(in) ; RTC.setClock() ; Serial.Print ("mois de réglage à") ; Serial.println(in) ; rupture ; affaire aurait ": cas serait ': in=SerialReadPosInt() ; RTC.setDate(in) ; RTC.setClock() ; Serial.Print ("réglage date à") ; Serial.println(in) ; rupture ; case « W »: Serial.print ("jour de la semaine est") ; Serial.println((int) RTC.getDayOfWeek()) ; rupture ; case « w »: in=SerialReadPosInt() ; RTC.setDayOfWeek(in) ; RTC.setClock() ; Serial.Print (« jour de réglage de la semaine pour") ; Serial.println(in) ; rupture ; affaire ' t ': affaire ' t ': if(RTC.is12hour()) {RTC.switchTo24h() ; Serial.println ("activation de l’horloge de 24 heures.") ; } else {RTC.switchTo12h() ; Serial.println ("activation de l’horloge de 12 heures.") ; } RTC.setClock() ; rupture ; « A » de cas : cas « a »: if(RTC.is12hour()) {RTC.setAM() ; RTC.setClock() ; Serial.println ("Set AM.") ; } else {Serial.println ("(Set heures seulement en mode 24 heures.)");} break ; affaire « P »: affaire « p »: if(RTC.is12hour()) {RTC.setPM() ; RTC.setClock() ; Serial.println ("Set PM.") ; } else {Serial.println ("(Set heures seulement en mode 24 heures.)");} break ; cas « q »: RTC.sqwEnable(RTC.SQW_1Hz) ; Serial.println ("onde carrée sortie 1Hz la valeur") ; rupture ; affaire « Q »: RTC.sqwDisable(0) ; Serial.println ("Square sortie onde désactivée (faible)") ; rupture ; case « z »: RTC.start() ; Serial.println ("Clock oscillator commencé.") ; rupture ; case « Z »: RTC.stop() ; Serial.println ("Clock oscillator arrêtée.") ; rupture ; cas ' >': in=SerialReadPosInt() ; IN2=SerialReadPosInt() ; RTC.writeData (en, in2) ; Serial.Print ("Write pour enregistrer") ; Serial.Print(in) ; Serial.Print ("la valeur") ; Serial.println(IN2) ; rupture ; cas ' <': in=SerialReadPosInt() ; IN2=RTC.ReadData(in) ; Serial.Print ("lire du Registre") ; Serial.Print(in) ; Serial.Print ("la valeur") ; Serial.println(IN2) ; rupture ; par défaut : Serial.println ("commande inconnue. Essayez ces: ") ; Serial.println ("h ## - set heures [1.. 12 gamme ou 0..24]") ; Serial.println ("i ## - régler les mInutes [rang 0..59]") ; Serial.println ("s ## - set secondes [rang 0..59]") ; Serial.println ("d ## - Date fixée [gamme 1..31]") ; Serial.println ("m ## - set mois [gamme 1.. 12]") ; Serial.println ("y ## - set année [gamme 0..99]") ; Serial.println (« w ## - valeur arbitraire jour de semaine [1.. 7 gamme] ") ; Serial.println (« t - basculer en mode 24 heures ») ; Serial.println ("un - set p AM - PM set") ; Serial.println() ; Serial.println (« horloge de z - horloge Z - stop ») ; Serial.println ("q - SQW/OUT = 1Hz Q - arrêter SQW/OUT") ; Serial.println() ; Serial.println ("> ##, ###-Ecrire dans le registre ## la valeur ###") ; Serial.println ("< ##-lire la valeur de Registre ##") ; //switch {sur commande} //read en caractères numériques jusqu'à ce que quelque chose d’autre //or aucune donnée supplémentaire n’est disponible sur série. int SerialReadPosInt() {int j’ai = 0; boolean fait = false ; while(Serial.available() & &! fait) {char c = Serial.read() ; if (c > = '0' & & c < = '9') {j’ai = j’ai * 10 + (c-'0');} else {= true;}} return i;}

Articles Liés

Horloge en temps réel de DS3231 Arduino avec couleur TFT

Horloge en temps réel de DS3231 Arduino avec couleur TFT

Construction d'une horloge temps réel avec une couleur écran TFT est extrêmement facile à utiliser Arduino. L'afficheur indique l'heure, la date, la température de migrer le long de la température MAX et MIN qu'il a mesuré. Nous allons construire !Et
Berlin horloge, Arduino Nano, DS1307 horloge en temps réel. Registre à décalage 8 bits 74HC595N.

Berlin horloge, Arduino Nano, DS1307 horloge en temps réel. Registre à décalage 8 bits 74HC595N.

Depuis un certain temps, j'ai voulu construire une horloge de Berlin. Je ne sais vraiment pas pourquoi ? J'aime juste la démarche « différente » pour dire l'heure.Alors, comment ça marche??Commençant par le bas il y a 4 jaune s'allume chaque lumière
Horloge en temps réel Arduino MAX7219

Horloge en temps réel Arduino MAX7219

Arduino-MAX7219-7-Segment-Led-ClockCette horloge en temps réel est basée sur la puce RTC DS32317 segments conduit construction (type de cathode commune)Panneau d'affichage est une coutume faite 7 segments led (vous pouvez utiliser n'importe quel LED
3D imprimé retour vers le futur Circuit horloge de temps

3D imprimé retour vers le futur Circuit horloge de temps

L'horloge du circuit affiche ce qui suit par l'intermédiaire de l'affichage LED.Temps de destination – (Top-rouge)Le temps de destination est un domaine qui indique une date fixe et une heure. Utilisez cette zone pour afficher une date importante dan
Horloge linéaire à l’aide d’Arduino + DS1307 + Neopixel : ré-utilisation de certains matériels.

Horloge linéaire à l’aide d’Arduino + DS1307 + Neopixel : ré-utilisation de certains matériels.

Des projets précédents, j'ai eu un Arduino UNO et laissé une bande LED de Neopixel et voulait faire quelque chose de différent. Parce que la bande de Neopixel a 60 voyants, pensés à l'utiliser comme une grande horloge.Utilisé pour indiquer les heures
Horloge en temps réel - DS1302

Horloge en temps réel - DS1302

il s'agit d'un très simple tutoriel sur la façon d'utiliser l'horloge DS1302 en temps réel avec un Arduino, ou Versilino, un Conseil.  Je vais vous guider le câblage, le code et exemple.  Qui peut être trouvé à www.Virtuabotix.com. c'est mon essai if
Conduire une page Web en temps réel en utilisant Arduino, SensorMonkey et Processing.js

Conduire une page Web en temps réel en utilisant Arduino, SensorMonkey et Processing.js

visualisation à distance des données de capteur en temps réel.Ce tutoriel décrit en détail comment utiliser le service gratuit de SensorMonkey à pousser capteur en temps réel des données d'un Arduino vers une page Web pour la visualisation à l'aide d
Prototype et configurer votre propre module d’horloge en temps réel pour le Raspberry Pi (Open Source Configuration matérielle et logicielle))

Prototype et configurer votre propre module d’horloge en temps réel pour le Raspberry Pi (Open Source Configuration matérielle et logicielle))

Pour maintenir le prix de la framboise pi vers le bas à gauche, les développeurs quelques-uns des éléments essentiels de ces est l'horloge temps réel. À l'heure actuelle le raspberry pi est-il temps via Ethernet de mettre à jour l'heure automatiqueme
Horloge en temps réel à l’aide de AT89s52

Horloge en temps réel à l’aide de AT89s52

WELCOME BACK, il s'agit shubham Trivedi et aujourd'hui je vais design horloge en temps réel à l'aide de microcontrôleur At89s52. Le microcontrôleur AT89S52 est le cœur de ce projet. DS1307 IC sert de CCF. Cette IC DS1307 requise interface I2C, mais 8
Horloge en temps réel à l’aide de PIC18F452

Horloge en temps réel à l’aide de PIC18F452

Bienvenue chez vous. Ici, j'ai conçu une horloge en temps réel à l'aide de microcontrôleur PIC18F452. Je vais vous expliquer comment concevoir l'horloge en temps réel à l'aide de microcontrôleur PIC. CCF en utilisant PIC18F452PIC est la série de micr
Horloge en temps réel avec alarme et capteurs environnementaux Arduino

Horloge en temps réel avec alarme et capteurs environnementaux Arduino

Horloge de l'Arduino, avec, batterie de secours (horloge temps réel), heure, Date, alarme, température, humidité, pression, LCD sortie, entrée de clavier, veille, blanc éclairage (4 X) LCD LED avec gradateurÉtape 1: Liste des piecesHorloge temps réel
Modules d’horloge en temps réel Compatible Arduino #5 (DS1307 & DS3231)

Modules d’horloge en temps réel Compatible Arduino #5 (DS1307 & DS3231)

Un module de Real Time Clock (RTC) est qu'un CCF est un CCF. Droit ? Faux!Alors que ces deux CCF très communs, compatible Arduino paraissent très semblables et sont connectés via l'I2C (prononcé oeil carré voir, ou Eye Eye See) bus de communication i
Horloge en temps réel de Arduino à l’aide de Ds1302

Horloge en temps réel de Arduino à l’aide de Ds1302

Cette semaine, j'ai décidé que je veux construire une horloge. Je veux une horloge quiavoir toujours le bon moment donc j'ai besoin d'un composant qui peut faire cela que j'ai quelques recherches et j'ai trouvé le ds1302.Étape 1: Voir la vidéoJ'ai fa
Bot d’horloge et météo monde DIY (Arduino + ESP8266)

Bot d’horloge et météo monde DIY (Arduino + ESP8266)

Salutdans cette instuctable, vous apprendrez comment faire monde horloge météo bot à l'aide de Arduino Mega et ESP8266 (à la mode).Caractéristiques :• personnalisé bot avec écran à cristaux liquides comme la bouche, le potentiomètre dans le nez et le