¿Cómo programa un modo de suspensión para su Arduino? Especialmente para los diseños que funcionan con baterías, ¿cuáles son las buenas técnicas para dormir la CPU pero despertarse solo cuando es necesario?
¿Cómo programa un modo de suspensión para su Arduino? Especialmente para los diseños que funcionan con baterías, ¿cuáles son las buenas técnicas para dormir la CPU pero despertarse solo cuando es necesario?
tenga en cuenta que, dependiendo de su modo de suspensión, hay un par de fuentes de interrupción que se ejecutan en su arduino. timer0 genera una interrupción de desbordamiento que activará su arduino aproximadamente cada milisegundos y la uart generará una interrupción cada vez que haya un carácter entrante. ... y, por supuesto, hay interrupciones externas en los pines 2 y 3 que puede o no haber habilitado usando la función attachInterrupt.
cuando se produce una interrupción, su boceto se activará después de la suspensión y, una vez que se haya revisado la interrupción, continuará ejecutándose desde el punto en que se puso en suspensión. La solución a esto es configurar el boceto para que se duerma nuevamente cada vez que sea posible, a menos que sea el momento de despertar.
aquí, mi arduino sleep library
Lea otras preguntas en las etiquetas arduino programming sleep