Étape 1: Conception RTC
Je n’aimais pas mon premier dessin que les batteries seraient seulement environ dix jours, alors j’ai voulu une conception qui durerait plus longtemps.
Technobabble : La raison piles n’a pas duré longtemps, c’est que je devais garder le pouvoir sur l’AtMega328 (Arduino) en permanence pour maintenir l’horloge temps réel de logiciels en cours d’exécution. J’ai donc besoin de pouvoir mettre l’AtMega328 pour dormir ou mettez-le hors tension.
Mon ami m’a envoyé certains de ces modules RTC (Real Time Clock) :
http://www.eBay.co.uk/ITM/Arduino-I2C-Tiny-RTC-DS1307-Real-Time-Clock-module-AT24C32-Board-avr-MCU-PIC-/221176522620?PT=UK_BOI_Electrical_Components_Supplies_ET&Hash=item337f25e77c
http://www.eBay.com/ITM/I2C-Tiny-RTC-DS1307-Real-Time-Clock-module-AT24C32-Board-for-avr-MCU-PIC-DIY-/231037403500?PT=LH_DefaultDomain_0&Hash=item35cae7016c
Ceux-ci viennent avec un CCF avec batterie de secours et une EEPROM qui est également utile.
Problème : Donc, j’ai une inquiétude au sujet de ces modules. Notez que la batterie est un LIR2032 qui est une batterie rechargeable. Je soupçonne qu’il a un circuit de charge. Eh bien, j’ai trouvé une représentation schématique et décide d’appeler mon propre (voir photo). Il possède un circuit de charge et il mettrait une charge additionnelle sur la batterie 18650.
Solution : Donc pour ce module, si vous supprimez D1, R4, R5 et R6 et mettez un cavalier à travers R6 et remplacez la pile par une CR2032, cela permettra d’éliminer la charge de la batterie. Voilà donc ce que j’ai (voir photo).
Dans la présente demande, la CR2032 est censé dernier une dizaine d’années donc je n’ai aucun problème avec cela.
Avertissement : J’utilisais une ancienne bibliothèque de AdaFruit pour leur enregistreur de données appelée RTCLib. Il y avait un sketch intitulé DS1307.pde qui fixerait le temps. Maintenant cela a bien fonctionné la première fois, qu'il a été exécuté, mais alors il ne serait pas régler l’heure. Il y a une version mise à jour avec un exemple qui fonctionne le mieux :
https://github.com/JCW/rtclib
Télécharger le fichier zip, décompressez-le, renommez-le rtclib-maître rtclib et copiez-le dans votre répertoire de bibliothèques Arduino.
TechnoSpeak I2C : Techniquement, il devrait être C I(squared) ou SII qui est synonyme de Inter-Integrated Circuit. Fondamentalement, c’est une interface série « standard », nécessitant deux signaux SCL, SDA et au sol. SDA est le signal de données commutation de 0V à 5V avec les données traversant en séquence (en série). Puisqu’il n’y a que deux niveaux et la vitesse n’est pas déterminée, il n’y a aucun moyen de déterminer où un bit de données se termine et la suivante commence. C’est là qu’intervient le signal SCL (horloge). Cela indique à l’appareil récepteur où se termine un peu et la suivante commence.
Un avantage pour I2C est que plusieurs dispositifs peuvent être fixés aux deux signaux de mêmes. Dans ce cas le DS1307 (CCF) et le 24C32 (EEPROM) sont jointes aux lignes SCL et SDA. Pour dire à quel périphérique vous parlez à chaque type de périphérique a une adresse unique.
L’adresse du DS1307 est 0x68. L’adresse 32 24C est 0 x 50.
Arduino supporte I2C avec la bibliothèque « fils ».
Par ailleurs, ce qui veut dire que vous ne pouvez avoir plus d’un du même type de dispositif sur les deux mêmes lignes. Par exemple, vous ne pouvez pas avoir deux 24C32s.