Comment et pourquoi ajouter une horloge en temps réel à arduino

En gardant le temps sur des projets Arduino est pas aussi facile qu`on pourrait le penser: une fois que la connexion à l`ordinateur est pas là, votre unpowered Arduino arrête simplement en cours d`exécution, y compris son ticker interne.

Video: TutoDuino 7 : Lire l'heure !

Pour garder votre Arduino en phase avec le monde qui l`entoure, vous allez avoir besoin de ce qu`on appelle un « module horloge temps réel ». Voici comment utiliser un.

Quel est le point d`une horloge temps réel (RTC)?

Votre ordinateur le plus probablement son temps se synchronise avec l`Internet, mais il a encore une horloge interne qui continue à aller même sans connexion Internet ou l`alimentation est coupée. Lorsque vous utilisez un Arduino branché sur un ordinateur, il a accès à un temps précis fourni par votre horloge système. C`est très utile, mais la plupart des projets Arduino sont conçus pour être utilisés loin d`un ordinateur - à quel point, à tout moment la puissance est débranché ou l`Arduino redémarré, il faudra absolument aucune idée de l`heure qu`il est. L`horloge interne sera remis à zéro et commencer à compter de zéro à nouveau la prochaine fois qu`il est mis sous tension.

Si votre projet n`a rien à voir avec le temps besoin - comme mon et nightlight réveille-matin au lever du soleil - cela va clairement être un problème. Dans ce projet, nous avons eu autour de la question en réglant manuellement l`heure chaque nuit d`une manière assez grossière - l`utilisateur doit appuyer sur le bouton de remise à zéro juste avant qu`ils sont allés au lit, offrant une synchronisation de temps manuel. Il est clair que ce n`est pas une solution à long temps idéal.Arduino Night Light et Sunrise Projet d`alarmeArduino Night Light et Sunrise Projet d`alarmeAujourd`hui, nous allons faire un réveil au lever du soleil, qui doucement et lentement vous réveiller sans avoir recours à une machine à faire du bruit offensif.Lire la suite

Un module RTC est un bit supplémentaire de circuit, ce qui nécessite une petite pile de pièces, qui continue de compter le temps, même lorsque votre Arduino est éteint. Après avoir été mis une fois - il gardera que le temps de la durée de vie de la batterie, généralement une bonne année ou plus.

Video: U=RI | Arduino Ep.6 - Comment utiliser un afficheur 7 segments?

TinyRTC

Le RTC le plus populaire pour Arduino est appelé TinyRTC et peut être acheté pour environ 5 $ 10 $ sur eBay. Vous aurez probablement besoin de fournir votre propre batterie (il est illégal d`expédier ces outre-mer à de nombreux endroits), et des en-têtes (les broches qui fente dans les trous, vous aurez besoin de souder en vous-même).

Ce module est je:

Video: Mécanisme d'horloge extra fort silencieux SEIKO

rtc-module

Il a même un capteur de température intégré, bien que la batterie durera plus longtemps si vous ne l`utilisez pas.

Le nombre de trous sur cette chose semble assez effrayant, mais vous avez seulement besoin de quatre GND eux-, CCV, SCL et SDA - vous pouvez utiliser les broches pertinentes de chaque côté du module RTC. Vous parlez à l`horloge en utilisant le protocole I2C, ce qui signifie que deux broches sont utilisés - un pour la « horloge » (une horloge de données de communication série, rien à voir avec le temps) et une pour les données. En fait, vous enchaînez même jusqu`à 121 dispositifs I2C sur les mêmes deux broches - consultez cette page Adafruit pour une sélection d`autres périphériques I2C vous pouvez ajouter, car il y a beaucoup!

Commencer

Branchez votre module TinyRTC selon le schéma ci-dessous - la ligne DS rose n`est pas nécessaire, car c`est pour le capteur de température.

câblage

Ensuite, téléchargez les bibliothèques temps et DS1307RTC et placez les dossiers résultants dans votre / bibliothèques dossier.

Quitter et relancer l`environnement Arduino pour charger dans les bibliothèques et des exemples.
ds1307rtc-exemple menu

Vous trouverez deux exemples dans le menu DS1307RTC: télécharger et exécuter le Régler le temps premier exemple - cela définira le RTC à l`heure. Le code actuel ne vaut pas entrer dans les détails, sachez simplement que vous devez exécuter une fois pour effectuer la synchronisation temporelle initiale.

Ensuite, regardez l`exemple d`utilisation avec ReadTest.

#comprendre #comprendre #comprendre void setup() {Serial.begin(9600)-tandis que (!En série) - // attendez pour serialdelay(200)-Serial.println("DS1307RTC Lire test")-Serial.println("-------------------")-}void loop() {tmElements_t tm-si (RTC.read(tm)) {Serial.print("Ok, Temps = ")-print2digits(tm.Hour)-Serial.write(`:`)-print2digits(tm.Minute)-Serial.write(`:`)-print2digits(tm.Second)-Serial.print(", Date (J / M / Y) = ")-Serial.print(tm.Day)-Serial.write(`/`)-Serial.print(tm.Month)-Serial.write(`/`)-Serial.print(tmYearToCalendar(tm.Year))-Serial.println()-} autre {si (RTC.chipPresent()) {Serial.println("Le DS1307 est arrêté. S`il vous plaît exécuter le SetTime")-Serial.println("par exemple pour initialiser le temps et commencer à courir.")-Serial.println()-} autre {Serial.println("DS1307 erreur de lecture! S`il vous plaît vérifier les circuits.")-Serial.println()-}retard(9000)-}retard(1000)-}print2digits vide(numéro int) {si (nombre gt; = 0 && nombre 

Notez que nous avons également inclus le noyau Wire.h bibliothèque - cela vient avec Arduino et est utilisé pour communiquer sur I2C. Téléchargez le code, ouvrez la console série à 9600 bauds et regarder et votre Arduino émet l`heure actuelle chaque seconde. Merveilleux!

Le code le plus important dans l`exemple crée une tmElements_t tm - ce un structure que nous remplissons avec le courant de temps et RTC.read (tm) fonction, qui obtient l`heure actuelle à partir du module RTC, met dans notre tm la structure, et retourne vrai si tout allait bien. Ajoutez votre debug ou un code logique à l`intérieur que "si" déclaration, telles que l`impression du temps ou d`y réagir.

Maintenant que vous savez comment obtenir le bon moment avec Arduino, vous pouvez essayer de réécrire le projet d`alarme lever du soleil ou de créer une horloge de mot LED - les possibilités sont infinies! Qu`allez-vous faire?

Articles connexes