Come si programma una modalità di sospensione per Arduino? Soprattutto per i progetti alimentati a batteria, quali sono le buone tecniche per sospendere la CPU ma svegliarsi solo quando necessario?
Come si programma una modalità di sospensione per Arduino? Soprattutto per i progetti alimentati a batteria, quali sono le buone tecniche per sospendere la CPU ma svegliarsi solo quando necessario?
Risposte:
avr / sleep.h potrebbe avere ciò di cui hai bisogno: la documentazione è disponibile all'indirizzo http://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html
Ci sono alcuni avvertimenti su come mettere in pausa la CPU :)
Spero che sia di aiuto.
tieni presente che a seconda della modalità di sospensione sul tuo arduino ci sono un paio di sorgenti di interrupt. timer0 genera un interrupt di overflow che riattiverà il tuo arduino all'incirca ogni millisecondo e l'Uart genererà un interrupt ogni volta che c'è un personaggio in arrivo. ... e, naturalmente, ci sono degli interrupt esterni sui pin 2 e 3 che potresti aver abilitato o meno usando la funzione attachInterrupt.
quando si verifica un'interruzione, il tuo schizzo verrà risvegliato dalla modalità sospensione e dopo che l'interruzione è stata eseguita continuerà a funzionare dal punto in cui è andata a dormire. la soluzione a questo è di impostare il tuo schizzo per rimetterlo a dormire ogni volta attraverso il loop a meno che non sia davvero il momento di svegliarsi.
qui, la mia libreria di sonno arduino