Hi,
I need to put a Arduino Zero to sleep for minimal power consumption (battery) and wake up once a day and on external pin interrupt. Can I use the internal rtc or would it be more power efficient to use an external rtc like ds3231 for wake up?
Hi,
I need to put a Arduino Zero to sleep for minimal power consumption (battery) and wake up once a day and on external pin interrupt. Can I use the internal rtc or would it be more power efficient to use an external rtc like ds3231 for wake up?
Hi
You can use the internal RTC by setting an alarm that repeats once a day. The RTC is only as accurate as the crystal that runs the chip, so can drift a few seconds a day or more. So it's fine if you just need a once a day reading and not worried that it may drift in time, i.e. isn't exactly every 24 hours and 0 seconds. If you need a more accurate reading time that doesn't drift then a DS3231 would be accurate to a few seconds a year.
In terms of power saving it depends on what you are doing once a day and how long you want the power to last and what the power source capacity is as to whether a DS3231 as an extra chip would cause a significant difference or not for you.
Hope that helps.
Thanks a lot for that great answer. yes it wouldn be a problem if it's a few seconds more or less per day. For external interript with the inbuilt RTC do I need some external wiring? eg with an Atmega328 I need to connect an external cable to a pin to reach a periodical wake up
Hi
No need to connect any pins if using the internal RTC. A good library is here GitHub - arduino-libraries/RTCZero: RTC Library for SAMD21 based boards, this lets you set the RTC time then set a daily alarm, and it also has a sleep method to put the Zero to sleep. It then wakes up from that point on the alarm.
Good luck.
Lee
Thanks! i will try it