¿Se puede hacer?. ¿O tendré que hacerlo mediante código antes de llamar a la funci,ón "SLEEP"?
Estoy utilizando la librería "LowPower.h" y por mas pruebas que hago los puertos que están en "HIGH" siguen en alto mientras el micro duerme.
Gracias.
El estado de los puertos no cambia cuando pones el micro a "dormir".
Si lo piensas tiene su lógica, no tendría sentido que el micro dormido se comportase como si estuviese apagado y todo a su alrededor "muriese".
Ell código debe encargarse de "apagar" las cosas que no sean necesarias.
Ten en cuenta que una salida en HIGH consume menos que cuando está en LOW (claro que si esa salida en HIGH enciende un LED será éste el que consuma, no el micro).
Saludos
Buenas:
¿Te refieres dejar Arduino en bajo consumo?
Eso está bien siempre y cuando no haya cambios de valores en el micro. Desde que se active el microcontrolador, ya se pone modo normal.
Supongamos que dejas pasar 2 minutos sin molestar a ARduino pulsando botones. Tienee un temporizador parra ello, que detecta que si no ha ocurrido un cambio o pulsado algún botón de Arduino en 2 minutos establecido, se pone en modo reposo internamente. Solo consigues bajo consumo.
Cuando no entre ninguna información por el puerto serie, o simplemente no hayas pulsado un botón de Arduino para encender un Led.
Arduino detecta un evento externo como pulsar un botón y se activa todo, con aumento ya de energía.
Eso no se como se hace en ARduino, si en los PIC que lo usaba antes y en asm. Solo está bien estas cosas si usas pilas o baterías para ahorrar consumo y tengas más tiempo.
Saludos.
@Metaconta, creo que no has entendido la pregunta de @gonpenzzi y no te preocupes por que me a mi pasa de tanto en tanto.
Yo entiendo que el quiere restringir al máximo el comportamiento de los puertos del Arduino pero la respuesta de @gatul es muy elocuente. No se puede hacer nada con los puertos porque esta dormido.
Cuando el micro se ponde a DORMIR deja de tener control y es una obviedad.
Su único control es cúando se despierta y entonces recupera su estado previo a dormir, y lo hace ya sea por tiempo o evento externo. (Interrupción).
A eso es lo que me refería. activación por evento externo.
Pues eso es lo que quiero gatul apagarlo todo. En fin ya lo tengo claro tendre que guardar el estado de los registros del micro, apagar los puertos, ponerlo a dormir y restaurarlo todo cuando el modulo PIR me dispare la interrupción.
Saludos y muchas gracias a todos.
@gopenzzi, mides cuan apagado esta en función de la corriente que consume.
Juega con las diferentes opciones y mide la corriente.
Asi que para que te preocupas por como quedan los puertos si no puedes hacer mas que lo que los modos SLEEP proponen.
Lee el manual del ATmega328. Estas atados de pies y manos al respecto.
Si quieres despertarlo por via externa Interrupción entonces debes seguir determinado modo. Y eso implica x uA o mA porque un UNO/Nano consume algunas decenas de mA.
Guardar todo.
¿Te refieres el estados de los pines?
Para ello la EEPROM interna.
Esto ya es si apagas Arduino. Al encenderlo, recupera las hartas de Led que tenías epagados y encendidos en ese momento.
La verdad no soy partidiario guardar nada en la EEPROM interna de los microcontroladores porque se corta su vida últil, para ello que se rompa uno externo que se puede reemplazar y de pazo, el uC sigue y seguirá vivo durante 40 años.
EEPROM externa.
[Más memoria para Arduino con la EEPROM externa AT24C256](Más memoria para Arduino con la EEPROM externa AT24C256 conectar esta EEPROM externa a procesadores como,para un total de 1 Mbit (128 KBytes))
¿Qué te quedas corto?
Usar tarjertas Micro-SD que guardas de todo a parte de tener hasta GB de almacenamiento.
Eso de dejar el estado como dormido se hacía mucho con los PIC y en ensamblador o C/C++. Pero retenía los datos en la RAM y se quedaba ahí, lo que no procesaba el micro, solo cuando ocurriese 4 eventos, dos internos o dos externos como en este caso, interrupción por un pin digital en una entrada como un interruptor o algún sensor.
Saludos.
De nuevo gracias a todos y no os devanéis mas los sesos que ya tengo muy claro lo que hacer.
Saludos a todos.
Entonces, por favor, edita tu primer post y agrega "[SOLUCIONADO]" al título.
Saludos
This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.