Stap 1: Ontwerp RTC
Ik hield mijn eerste ontwerp niet zoals de batterijen zou alleen laatste ongeveer tien dagen, dus ik wilde een ontwerp dat langer zou duren.
Technobabbel: De batterijen niet lang reden is dat ik had te handhaven op de AtMega328 (Arduino) voortdurend te houden van de software real-time klok lopen. Dus moet ik zitten kundig voor zet de AtMega328 om te slapen of zwenking op vandoor.
Mijn vriend stuurde me enkele van deze 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
Deze is voorzien van een RTC met batterij back-up en een EEPROM die ook nuttig is.
Probleem: Dus ik heb een bezorgdheid over deze modules. Merk op dat de batterij is een LIR2032 die een oplaadbare batterij is. Ik vermoed dat er een opladen circuit. Nou, ik vond een schema en besloot tot het opstellen van mijn eigen (zie afbeelding). Het heeft een opladen circuit en het zou een extra belasting op de 18650 batterij zetten.
Oplossing: Dus voor deze module zal D1, R4, R5 en R6 te halen en zetten een jumper over R6 en vervang de batterij door een CR2032, dit elimineren het opladen van de batterij. Dus dat is wat ik (zie afbeelding).
In deze aanvraag, is de CR2032 verondersteld laatste ongeveer tien jaar dus ik heb geen probleem met die.
Waarschuwing: Ik was met behulp van een oude bibliotheek van AdaFruit voor hun datalogger genaamd RTCLib. Er was een schets genaamd DS1307.pde dat zou het instellen van de tijd. Nu dit werkte boete het eerst dat werd uitgevoerd, maar vervolgens niet zou het instellen van de tijd. Er is een bijgewerkte versie met een voorbeeld dat beter werkt:
https://github.com/JCW/rtclib
Download het zip, unzip het, de naam van rtclib-meester rtclib en kopieer het naar je Arduino Bibliotheken map.
TechnoSpeak I2C: Technisch moet het I(squared) C of IIC, wat voor Inter-Integrated Circuit staat. Kortom is het een 'standaard' seriële interface waarbij twee signalen SCL en SDA grond. SDA is het signaal van de gegevens overschakelen van 0V naar 5V met de gegevens gaan over in volgorde (serieel). Aangezien er slechts twee niveaus en de snelheid is niet bepaald, is er geen manier om te bepalen waar een beetje van gegevens eindigt en de volgende begint. Dat is waar het SCL (klok) signaal komt. Dit vertelt het ontvangende apparaat waar een beetje eindigt en de volgende begint.
Een voordeel voor I2C is dat verschillende apparaten aan dezelfde twee signalen kunnen worden gekoppeld. In dit geval zijn de DS1307 (RTC) en de 24C 32 (EEPROM) beide aangesloten op de SCL en SDA lijnen. Om te vertellen welk apparaat je voor elk apparaattype praat heeft een uniek adres.
Het DS1307 adres is 0x68. Het 24C 32 adres is 0x50.
I2C ondersteunt Arduino met de bibliotheek 'draad'.
By the way, wat dit betekent is dat u niet meerdere exemplaren van hetzelfde apparaattype op dezelfde twee lijnen. Bijvoorbeeld, u kunt geen twee 24C32s.