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

Maîtriser l'horloge temps réel DS3231 avec Arduino – Tutoriel pas à pas

Dans ce tutoriel Arduino, nous allons apprendre à utiliser le module horloge temps réel DS3231. Vous pouvez visionner la vidéo suivante ou lire le tutoriel écrit ci-dessous.

Présentation

La première question qui vient à l'esprit est : pourquoi avons-nous besoin d'une horloge temps réel (RTC) séparée pour notre projet Arduino alors que l'Arduino possède lui-même un chronométrage intégré ? Le point est que le module RTC fonctionne sur une pile et peut garder l'heure même si on reprogramme le microcontrôleur ou qu'on coupe l'alimentation principale.

Horloge temps réel DS3231

Le DS3231 est une horloge temps réel peu coûteuse et très précise, capable de maintenir les heures, minutes et secondes, ainsi que le jour, le mois et l'année. Il possède aussi une compensation automatique pour les années bissextiles et les mois de moins de 31 jours.

Le module peut fonctionner soit en 3,3 V soit en 5 V, ce qui le rend compatible avec de nombreuses plateformes de développement ou microcontrôleurs. L'entrée pile est en 3 V et une pile CR2032 3 V typique peut alimenter le module et maintenir l'information pendant plus d'un an.

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

Voici le schéma de câblage :

Il faut 4 fils : VCC et GND pour l'alimentation, et les deux broches de communication I2C, SDA et SCL.

Programmation

Une fois le module connecté, il faut programmer l'Arduino pour travailler avec l'horloge temps réel. Cependant, programmer une communication entre Arduino et un module I2C n'est pas si simple et court. Heureusement, il existe déjà plusieurs bibliothèques pour le DS3231 RTC qu'on trouve sur internet.

Pour ce tutoriel, j'ai choisi la bibliothèque de Henning Karlsen, disponible sur son site www.rinkydinkelectronics.com.

Une fois la bibliothèque téléchargée et installée, on peut utiliser son premier exemple de démo pour activer initialement l'horloge du module RTC. Dans le setup de l'exemple de démo, on remarque trois lignes à décommenter pour régler initialement le jour de la semaine, l'heure et la date.

// Code de l'exemple de démo de la bibliothèque DS3231
void setup() {
  Serial.begin(115200);
  // Décommenter la ligne suivante si vous utilisez un Arduino Leonardo
  // while (!Serial) {}
  rtc.begin();
  // Les lignes suivantes peuvent être décommentées pour régler la date et l'heure
  // rtc.setDOW(WEDNESDAY); // Régler jour de semaine sur MERCREDI
  // rtc.setTime(12, 0, 0); // Régler l'heure sur 12:00:00 (format 24h)
  // rtc.setDate(1, 1, 2014); // Régler la date au 1er janvier 2014
}

La première ligne règle le jour de la semaine, la seconde l'heure (heures, minutes, secondes), la troisième la date (jours, mois, années).

Une fois ce code téléversé, il faut recommenter les trois lignes et re-téléverser le code.

void loop() {
  Serial.print(rtc.getDOWStr()); Serial.print(" ");
  Serial.print(rtc.getDateStr()); Serial.print(" -- ");
  Serial.println(rtc.getTimeStr());
  delay(1000);
}

Dans la boucle, on utilise trois fonctions personnalisées pour récupérer l'information du RTC et l'afficher dans le Moniteur Série. Voici comment cela apparaît.

Maintenant, même si on débranche l'alimentation de l'Arduino et qu'on la rebranche, puis qu'on relance le Moniteur Série, on constate que l'heure continue de tourner sans être réinitialisée.

Notre horloge temps réel est maintenant opérationnelle et peut être utilisée dans n'importe quel projet Arduino. Comme second exemple, j'ai connecté un LCD à l'Arduino et affiché l'heure et la date dessus.

Voici le code source de cet exemple :

/* Arduino DS3231 Real Time Clock Module Tutorial
 * Créé par Dejan Nedelkovski, www.HowToMechatronics.com
 * Bibliothèque DS3231 de Henning Karlsen, www.rinkydinkelectronics.com */
#include <DS3231.h>
#include <LiquidCrystal.h>
DS3231 rtc(SDA, SCL);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // (rs, enable, d4, d5, d6, d7)
void setup() {
  rtc.begin();
  lcd.begin(16, 2);
}
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);
}

C'est tout pour ce tutoriel Arduino. N'hésitez pas à poser vos questions dans la section commentaires ci-dessous.

Processus de fabrication

  1. Horloge POV Arduino : Construire un affichage LED à persistance rétinienne
  2. Créer un verrou RFID sécurisé avec Arduino – Guide étape par étape
  3. Construire une horloge maître LED personnalisée avec alarme – Visible à 12 mètres
  4. Moniteur de Température et Horloge Temps Réel Arduino avec Écran TFT 3.2"
  5. Construire une Horloge de Berlin avec Arduino UNO – Horloge à Matrice LED DIY
  6. Horloge numérique TM1637 avec réglage heure/alarme – Prototype Arduino Nano
  7. eDOT : Horloge Arduino précise et station météo avec télécommande IR intégrée
  8. Horloge Météo Arduino Temps Réel : Affichage OLED pour Heure, Date et Température
  9. Détection 3D temps réel par robot améliore la sécurité des soldats via réalité augmentée