De meest populaire RTC voor de Arduino is de DS1307, verkocht door Adafruit, Sparkfun en anderen. Het heeft echter enkele nadelen, de meest opvallende daarvan is dat de bedrijfsspanning 5v, waardoor dat ik niet kon gebruiken met mijn Arduino Pro Mini @ 3, 3V.
Dat leidde me op een jacht voor een geschikte vervanger voor de DS1307. Hier waren mijn ontwerpparameters:
1) Tolerant van een breed scala van spanningen, met inbegrip van 3.3 en 5 v
2) batterij back-up, zodat ik niet hoeft te maken over het opnieuw instellen van de datum en tijd telkens ik macht fietste het.
3) de aanwezigheid van een alarm, zodat ik kon krijgen van getimede interrupts (en eventueel die gebruiken voor het beheer van de energiebesparing voor de Arduino Pro Mini uitgevoerd off van de batterij.
4) duik pakket bij voorkeur, dus het zou maken voor gemakkelijker solderen (helaas, dit was niet te zijn!)
De DS1307 is gemaakt door Maxim Integrated, en ze hebben een duizelingwekkende reeks van RTC chips. Na het doorlopen van een hele reeks van gegevensbladen, begon ik te krijgen een hoofdpijn! Tot slot vestigde ik op de DS1339, die voldaan aan al mijn eisen, namelijk:
1) Tolerant van een breed scala van spanningen, van 1,8 V te 5.5V. In het bijzonder, ik kies de DS1339-33, die een spanningsbereik van 2.97V heeft-5.5V met de typische spanning als 3,3 v
2) had een batterij back-up
3) het was niet één, maar twee alarmen!
4) als een bonus had het ook een oplader trickle
Ik heb uiteengezet te ontwerpen van een breakout board voor de DS1339, die ik heb gedeeld op
https://www.oshpark.com/shared_projects/A21xcMiD
Nadat ik heb de planken van Oshpark, had mij voor verrichten sommige smd solderen. Er zijn tal van sites die u hoe hand vertellen-soldeer smd componenten, dus ik zal niet ingaan op dat detail hier. Ik heb een soldeer jumper toegevoegd aan de breakout board dat kan worden gebruikt om het pullup resistors in-of uitschakelen.
Na dat nodig ik eigenlijk een bibliotheek om te praten met de DS1339 van Arduino. Het register formaat is anders dan die van de DS1307 (waarvan verschillende bibliotheken zijn beschikbaar). Gelukkig vond ik een bibliotheek voor de DS1337 die is gemaakt speciaal voor de Mosquino, een platform Arduino compatibel voor een extreem laag energieverbruik. Gelukkig, de DS1337 en DS1339 registreren formaten werden bijna identiek met de uitzondering dat de DS1339 had ook één meer register voor de oplader trickle.
Ik vertakt de Mosquino DS1337-bibliotheek, en maakte het meer generic (u kunt opgeven welke pinnen die u voor de externe interrupts gebruikt), gemaakt van DS1337 en DS1339 subklassen (ik kon trickle lader ondersteuning toevoegen voor de DS1339, bijvoorbeeld), en ook bijgewerkt in het voorbeeld te kunnen instellen en de tijd, waardoor het makkelijker om de tijd op de RTC-module voor de eerste keer lezen.
Ik heb het vrijgegeven op github-
https://github.com/sridharrajagopal/DSRTCLib
Het is vergelijkbaar met een willekeurige andere Arduino-bibliotheek. Kopieer het naar de omslag van de bibliotheken van Arduino en Arduino opnieuw op. De DSRTCLib moet verschijnen onder voorbeelden.
Nu u hebben een relatief lage kosten RTC-module die is tjokvol-ful van functies, en kan worden gebruikt met een verscheidenheid van Arduino boards Arduino boards.
Geniet van!
Sridhar