Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Tutoriel sur l'horloge en temps réel Arduino et DS3231

Dans ce didacticiel Arduino, nous apprendrons à utiliser le module d'horloge en temps réel DS3231. Vous pouvez regarder la vidéo suivante ou lire le didacticiel écrit ci-dessous.

Aperçu

La première question qui vient ici est de savoir pourquoi nous avons réellement besoin d'un RTC séparé pour notre projet Arduino alors que l'Arduino lui-même a un chronomètre intégré. Eh bien, le fait est que le module RTC fonctionne sur batterie et peut garder une trace de l'heure même si nous reprogrammons le microcontrôleur ou déconnectons l'alimentation principale.

Horloge en temps réel DS3231

Le DS3231 est une horloge en temps réel peu coûteuse et très précise qui peut conserver les heures, les minutes et les secondes, ainsi que les informations sur le jour, le mois et l'année. De plus, il dispose d'une compensation automatique pour les années bissextiles et pour les mois de moins de 31 jours.

Le module peut fonctionner sur 3,3 ou 5 V, ce qui le rend adapté à de nombreuses plates-formes de développement ou microcontrôleurs. L'entrée de la batterie est de 3 V et une batterie CR2032 3 V typique peut alimenter le module et conserver les informations pendant plus d'un an.

Le module utilise le protocole de communication I2C qui rend la connexion à la carte Arduino très simple.

Voici les schémas du circuit :

Donc, tout ce dont nous avons besoin est de 4 fils, les broches VCC et GND pour alimenter le module, et les deux broches de communication I2C, SDA et SCL.

Vous pouvez obtenir les composants nécessaires pour ce didacticiel Arduino à partir des liens ci-dessous :

  • Horloge en temps réel DS3231……………..
  • Carte Arduino ……………………………
  • Breadboard et Jump Wires ……… 

Programmation

Une fois que nous avons connecté le module, nous devons programmer la carte Arduino pour qu'elle fonctionne avec l'horloge en temps réel. Cependant, lorsqu'il s'agit de programmer une communication entre Arduino et un module I2C, le code n'est pas si petit et facile. Heureusement, il existe déjà plusieurs bibliothèques pour le DS3231 RTC qui peuvent être trouvées sur Internet.

Pour ce tutoriel, j'ai choisi d'utiliser la bibliothèque créée par Henning Karlsen qui peut être trouvée et téléchargée sur son site Web, www.rinkydinkelectronics.com.

Ainsi, une fois que nous avons téléchargé et installé la bibliothèque, nous pouvons utiliser son premier exemple de démonstration pour activer initialement l'horloge du module RTC. Dans la section de configuration de l'exemple de code de démonstration, nous pouvons remarquer qu'il y a trois lignes que nous devons décommenter afin de définir initialement le jour de la semaine, l'heure et les données.

// Code from the Demo Example of the DS3231 Library

void setup()
{
  // Setup Serial connection
  Serial.begin(115200);
  // Uncomment the next line if you are using an Arduino Leonardo
  //while (!Serial) {}
  
  // Initialize the rtc object
  rtc.begin();
  
  // The following lines can be uncommented to set the date and time
  //rtc.setDOW(WEDNESDAY);     // Set Day-of-Week to SUNDAY
  //rtc.setTime(12, 0, 0);     // Set the time to 12:00:00 (24hr format)
  //rtc.setDate(1, 1, 2014);   // Set the date to January 1st, 2014
}Code language: Arduino (arduino)

La première ligne sert à régler le jour de la semaine, la deuxième ligne sert à régler l'heure en heures, minutes et secondes, et la troisième ligne sert à régler la date en jours, mois et années.

Une fois que nous avons téléchargé ce code, nous devons commenter les trois lignes et télécharger à nouveau le code.

// Code from the Demo Example of the DS3231 Library

void loop()
{
  // Send Day-of-Week
  Serial.print(rtc.getDOWStr());
  Serial.print(" ");
  
  // Send date
  Serial.print(rtc.getDateStr());
  Serial.print(" -- ");

  // Send time
  Serial.println(rtc.getTimeStr());
  
  // Wait one second before repeating
  delay (1000);
}Code language: Arduino (arduino)

Si nous jetons un coup d'œil à la section de boucle du code, nous pouvons voir qu'en utilisant maintenant les trois fonctions personnalisées, nous obtenons les informations du RTC et les imprimons dans le moniteur série. Voici comment ils apparaissent dans le moniteur série.

Maintenant, même si nous déconnectons l'alimentation Arduino, puis la reconnectons et exécutons à nouveau le moniteur série, nous pouvons remarquer que le temps continue sans être réinitialisé.

Nous avons donc maintenant notre horloge en temps réel opérationnelle et nous pouvons l'utiliser dans n'importe quel projet Arduino. Comme deuxième exemple, j'ai connecté un écran LCD à l'Arduino et imprimé l'heure et la date dessus.

Voici le code source de cet exemple :

/*
* Arduino DS3231 Real Time Clock Module Tutorial
*
* Crated by Dejan Nedelkovski,
* www.HowToMechatronics.com
*
* DS3231 Library made by Henning Karlsen which can be found and downloaded from his website, www.rinkydinkelectronics.com.
*
*/
#include <DS3231.h>
#include <LiquidCrystal.h> // includes the LiquidCrystal Library 

DS3231  rtc(SDA, SCL);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7) 

void setup() { 
 rtc.begin(); // Initialize the rtc object
 lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display } 
}

void loop() { 
 lcd.setCursor(0,0);
 lcd.print("Time:  ");
 lcd.print(rtc.getTimeStr());
 
 lcd.setCursor(0,1);
 lcd.print("Date: ");
 lcd.print(rtc.getDateStr());
 
 delay(1000); 
}Code language: Arduino (arduino)

C'est tout pour ce tutoriel Arduino, n'hésitez pas à poser n'importe quelle question dans la section des commentaires ci-dessous.


Processus de fabrication

  1. horloge de vision Arduino pov
  2. Tutoriel sur le verrouillage RFID Arduino
  3. horloge maîtresse
  4. Arduino Temp. Moniteur et horloge en temps réel avec affichage 3.2
  5. Horloge de Berlin
  6. Horloge numérique TM1637 avec configuration de l'heure et fonctionnalité d'alarme
  7. eDOT - Horloge de précision et station météo basée sur Arduino
  8. Affichage de la température Arduino OLED avec horloge en temps réel
  9. Le robot détecte et partage les modifications en 3D en temps réel