Pominu-li potřebnou úpravu HW, vypitval jsem z kódu následující část, která řeší režim spánku s periodickým probouzením:
Kód: Vybrat vše
#include <LowPower.h>
#define PERIODE 1 // cas spanku [min]
unsigned int timer = 0x00;
unsigned int periodeCounter = 0x00;
int LED = 13; // info LED
void setup()
{
Serial.begin(9600);
pinMode(13,OUTPUT);
timer = (PERIODE * 60)/8;
periodeCounter = timer + 1;
}
void loop()
{
blink();
while(periodeCounter < timer);
{
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
periodeCounter++;
}
periodeCounter = 0x00;
}
void blink ()
{
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(10);
}
Pomocí knihovny mohu vypnout následující části Arduina:
ADC, Timer 0, Timer 1, Timer 2, SPI, USART0, TWI
Co vše si mohu dovolit vypnout, aniž bych se nedostal do problémů?
Mám možnost buď přes cyklus prodlužovat čas spánku s periodou 8 sec. nebo uspat "navždy" přes SLEEP_FOREVER a probudit přerušením přes RTC. Máte někdo zkušenost, co je výhodnější? Jestli cyklovat, nebo živit I2C a čip RTC?
Poznámka pod čarou, všimněte si v uvedeném kódu příkazu
Kód: Vybrat vše
#define PERIODE 1