Le CCF plus populaire pour l’Arduino est le DS1307, vendu par Adafruit, Sparkfun et autres. Toutefois, elle a quelques inconvénients, dont le plus notable est que sa tension de fonctionnement est de 5v, ce qui signifiait que je ne pouvais pas l’utiliser avec mon Arduino Pro Mini @ 3.3V.
Cela m’a conduit à une recherche d’un remplaçant approprié pour le DS1307. Ici sont mes paramètres de conception :
1) tolérant d’une large plage de tensions, dont 3,3 et 5 v
2) batterie de secours, donc je n’ai à se soucier de réinitialiser la date et heure chaque fois que je le pouvoir roulé il.
3) la présence d’une alarme, donc je pourrais obtenir interruptions chronométrées (et éventuellement l’utiliser pour gérer les économies d’énergie pour l’Arduino Pro Mini en cours d’exécution hors de batterie.
4) DIP paquet de préférence, donc il serait plus facile de souder (hélas, c’était pas!)
Le DS1307 faite par Maxim Integrated, et ils ont une gamme étourdissante de copeaux de CCF. Après avoir traversé toute une série de fiches techniques, je commençais à avoir mal à la tête ! J’ai finalement opté pour le DS1339, qui satisfait toutes mes exigences, à savoir :
1) tolérant d’une large plage de tensions, de 1,8 V à 5,5 v. En particulier, j’ai choisi le DS1339-33, qui a une plage de tension de 2.97V-5.5V avec la tension typique que 3.3V
2) il y avait une batterie de secours
3) il y avait non pas un, mais deux alarmes !
4) comme un bonus, il y avait également un chargeur de maintien
J’ai entrepris de concevoir une carte de dérivation pour la DS1339, à qui j’ai partagé sur
https://www.oshpark.com/shared_projects/A21xcMiD
Après que j’ai reçu les conseils de Oshpark, j’ai dû faire quelques soudage smd. Il y a beaucoup de sites qui vous indiquent comment main-souder les composants CMS, donc je n’entrerai pas dans ce détail ici. J’ai ajouté un cavalier de soudure à la carte de dérivation qui peut être utilisée pour activer/désactiver les résistances pullup.
Après cela, il me fallait en fait une bibliothèque pour parler à la DS1339 de l’Arduino. Le format du Registre est différent de celui de la DS1307 (dont plusieurs bibliothèques sont disponibles). Heureusement, j’ai trouvé une bibliothèque pour le DS1337 qui a été conçu spécialement pour le Mosquino, une plate-forme compatible Arduino pour consommation électrique extrêmement faible. Heureusement, les formats de Registre DS1337 et DS1339 sont presque identiques, à l’exception que le DS1339 avait également un registre plus pour le chargeur de maintien.
J’ai bifurqué la bibliothèque Mosquino DS1337, et rend plus générique (vous pouvez spécifier quels axes vous utilisez pour les interruptions externes), fait des sous-classes DS1337 et DS1339 (je pourrais ajouter le support de chargeur filet pour le DS1339, par exemple) et également mis à jour l’exemple afin de pouvoir définir et lire l’heure, ce qui facilite régler l’heure sur le module RTC pour la première fois.
J’ai publié sur github-
https://github.com/sridharrajagopal/DSRTCLib
Il est similaire à n’importe quelle autre bibliothèque Arduino. Copiez-le sur le dossier de bibliothèques Arduino et redémarrez Arduino. Le DSRTCLib devrait apparaître sous les exemples.
Maintenant, vous avez un coût relativement faible module RTC c’est cale-ful de caractéristiques et pouvez être utilisé avec une variété de cartes Arduino.
Profitez !
Sridhar