Tabla de contenido:
- Paso 1: Reducir el voltaje de suministro mediante el uso de una batería LiPo
- Paso 2: Reducir el reloj de la CPU
- Paso 3: Retire el LED de alimentación y el regulador de potencia integrados
- Paso 4: Desconecte la resistencia de pullup USB D (marcada 152) de 5 voltios (VCC) y conéctela a USB V +
- Paso 5: use la suspensión en lugar de la demora ()
- Paso 6: Modifique los fusibles
- Paso 7: más información
Video: Reducción del consumo de energía de la batería para Digispark ATtiny85: 7 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
o: Ejecutar un Arduino con una celda de botón 2032 durante 2 años.
Usando su placa Digispark Arduino lista para usar con un programa Arduino, consume 20 mA a 5 voltios.
Con un banco de energía de 5 voltios de 2000 mAh, solo funcionará durante 4 días.
Paso 1: Reducir el voltaje de suministro mediante el uso de una batería LiPo
Usando una batería LiPo con 3.7 voltios como suministro, su placa Digispark consume solo 13 mA.
Con una batería de 2000 mAh funcionará durante 6 días.
Paso 2: Reducir el reloj de la CPU
Si no utiliza una conexión USB, matemáticas intensas o sondeo rápido en su programa, reduzca la velocidad del reloj. P.ej. la biblioteca de recepción de infrarrojos de sondeo pesado IRMP funciona bien a 8 MHz.
A 1 MHz, su Digispark consume 6 mA. Con una batería de 2000 mAh funcionará durante 14 días.
Paso 3: Retire el LED de alimentación y el regulador de potencia integrados
Desactive el LED de alimentación rompiendo el cable de cobre que conecta el LED de alimentación al diodo con un cuchillo o retire / desactive la resistencia 102.
Dado que ahora está utilizando una batería LiPo, también puede quitar el IC regulador de potencia integrado. Primero levante las clavijas exteriores con la ayuda de un soldador y una clavija. Luego suelde el conector grande y retire el regulador. Para reguladores pequeños, use mucha soldadura y caliente los 3 pines juntos, luego retírelos.
A 1 MHz y 3,8 voltios, su Digispark ahora consume 4,3 mA. Con una batería de 2000 mAh funcionará durante 19 días.
Paso 4: Desconecte la resistencia de pullup USB D (marcada 152) de 5 voltios (VCC) y conéctela a USB V +
Esta modificación es compatible con todas las versiones1.x del gestor de arranque de micronúcleos. Si ya tiene un nuevo gestor de arranque 2.x en su placa, debe actualizar a una de las versiones 2.5 con "activePullup" en su nombre. La forma más sencilla de hacer esto es instalar el nuevo paquete de la placa digispark y grabar el gestor de arranque con la versión recomendada (¡¡¡no la predeterminada ni la agresiva !!!).
Romper el hilo de cobre del lado de la resistencia que apunta al ATtiny, esto deshabilita la interfaz USB y a su vez la posibilidad de programar la placa Digispark vía USB. Para habilitarlo nuevamente, pero aún así ahorrar energía, conecte la resistencia (marcada 152) directamente al USB V + que está fácilmente disponible en el lado exterior del diodo shottky. El diodo y sus lados correctos se pueden encontrar usando un probador de continuidad. Un lado de este diodo está conectado al pin 8 del ATtiny (VCC) y Digispark 5V. El otro lado está conectado al USB V +. Ahora, la resistencia pullup USB solo se activa si la placa Digispark está conectada a USB, p. Ej. durante la programación.
Los 2 últimos pasos también se documentan aquí.
A 1 MHz y 3,8 voltios, su Digispark ahora consume 3 mA. Con una batería de 2000 mAh funcionará durante 28 días.
Paso 5: use la suspensión en lugar de la demora ()
En lugar de retrasos prolongados, puede utilizar la suspensión de la CPU para ahorrar energía. Los durmientes pueden durar de 15 milisegundos a 8 segundos en pasos de 15, 30, 60, 120, 250, 500 milisegundos y 1, 2, 4, 8 segundos.
Dado que el tiempo de inicio desde la suspensión es de 65 milisegundos con la configuración de fábrica del fusible Digispark, solo las demoras superiores a 80 ms pueden reemplazarse por suspensión.
Durante el sueño, su Digispark consume 27 µA. Con una pila de botón de 200 mAh 2032 dormirá durante 10 meses.
Para ser correcto, el Digispark debe despertarse al menos cada 8 segundos, funcionando durante al menos 65 milisegundos y consumiendo alrededor de 2 mA de corriente. Esto conduce a una corriente promedio de 42 µA y 6 meses. En este escenario, casi no hay diferencia si su programa se ejecuta durante 10 milisegundos (cada 8 segundos).
El código para usar el sueño es:
#include #include volátil uint16_t sNumberOfSleeps = 0; extern volatile unsigned long millis_timer_millis; configuración vacía () {sleep_enable (); set_sleep_mode (SLEEP_MODE_PWR_DOWN); // modo de suspensión más profunda…} void loop () {… sleepWithWatchdog (WDTO_250MS, true); // dormir durante 250 ms… sleepWithWatchdog (WDTO_2S, verdadero); // dormir durante 2 s…} / * * aWatchdogPrescaler puede ser de 0 (15 ms) a 3 (120 ms), 4 (250 ms) a 9 (8000 ms) * / uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000; for (uint8_t i = 0; i save 200 uA // use wdt_enable () ya que maneja que el bit WDP3 está en el bit 5 del registro WDTCR wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // Habilitar interrupción de vigilancia + restablecer bandera de interrupción -> necesita ISR (WDT_vect) sei (); // Habilitar interrupciones sleep_cpu (); // La interrupción de vigilancia nos despertará del sueño wdt_disable (); // Porque la próxima interrupción lo hará de otra manera conducir a un reinicio, ya que wdt_enable () establece WDE / Watchdog System Reset Enable ADCSRA | = ADEN; / * * Dado que el reloj del temporizador puede estar desactivado, ajuste milis solo si no está dormido en modo IDLE (SM2… 0 bits son 000) * / si (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))! = 0) {millis_timer_millis + = computeSleepMillis (aWatchdogPrescaler);}} / * * Esta interrupción despierta la CPU desde el modo de suspensión * / ISR (WDT_vect) {sNumberOfSleeps ++;}
Paso 6: Modifique los fusibles
22 mA de los 27 mA son extraídos por el BOD (BrownOutDetection / detección de subtensión). El BOD solo se puede desactivar reprogramando los fusibles, lo que solo se puede hacer con un programador ISP. Con este script puede reducir la corriente a 5,5 µA y también reducir el tiempo de inicio desde la suspensión a 4 milisegundos.
5 de los 5,5 µA restantes son extraídos por el contador de vigilancia activo. Si puede usar reinicios externos para despertar, el consumo de corriente puede bajar a 0.3 µA como se indica en la hoja de datos.
Si no puede alcanzar este valor, la razón puede ser que la corriente inversa del diodo Schottky entre VCC y el pullup sea demasiado alta. Tenga en cuenta que una resistencia de 12 MOhm también consume 0.3 µA a 3.7 voltios.
Esto da como resultado un consumo de corriente medio de 9 µA (2,5 años con una pila de botón 2032 de 200 mAh) si, p. Ej. procesar datos cada 8 segundos durante 3 milisegundos como aquí.
Paso 7: más información
Dibujo actual de un tablero Digispark.
Proyecte usando estas instrucciones.
Recomendado:
Ahorro de batería, interruptor de corte del protector de descarga con ATtiny85 para automóvil de plomo ácido o batería de lipo: 6 pasos
Ahorro de batería, interruptor de corte del protector de descarga con ATtiny85 para automóvil de plomo ácido o batería de lipo: Como necesito varios protectores de batería para mis automóviles y sistemas solares, encontré los comerciales a $ 49 demasiado caros. También consumen demasiada energía con 6 mA. No pude encontrar ninguna instrucción sobre el tema. Así que hice el mío propio que dibuja 2 mA. ¿Cómo
Reducción del consumo de energía del relé: retención frente a corriente de arranque: 3 pasos
Reducción del consumo de energía del relé: corriente de retención frente a arranque: la mayoría de los relés requieren más corriente para activarse inicialmente que la necesaria para mantener el relé encendido una vez que los contactos se han cerrado. La corriente requerida para mantener el relé encendido (corriente de retención) puede ser sustancialmente menor que la corriente inicial requerida para accionar
¿Cómo medir correctamente el consumo de energía de los módulos de comunicación inalámbrica en la era de bajo consumo de energía ?: 6 pasos
¿Cómo medir correctamente el consumo de energía de los módulos de comunicación inalámbrica en la era del bajo consumo de energía ?: El bajo consumo de energía es un concepto extremadamente importante en la Internet de las cosas. La mayoría de los nodos de IoT deben funcionar con baterías. Solo midiendo correctamente el consumo de energía del módulo inalámbrico podemos estimar con precisión cuánta batería i
Auriculares EarBud con reducción de ruido: 7 pasos
Auriculares con reducción de ruido: Auriculares con reducción de ruido para hombres deficientes. Muchas ventajas sobre ($ 200- $ 300) Bose: más barato (centavos por dólar) y más pequeño, permite la movilidad, no se requieren baterías. Si utiliza audífonos con cancelación de ruido (JVC) existentes, utilice Flents (u otros fabricantes) spongy
Reducción del ruido del ventilador de un dispositivo NAS: 6 pasos
Reducción del ruido del ventilador de un dispositivo NAS: Vaya, mi primer instructivo, así que sea amable. Mi red doméstica contiene, entre otras cosas, un dispositivo NAS. Este es un dispositivo que funcionaría 24x7 para disponibilidad general, ¿verdad? Sin embargo, prefiero mantener este dispositivo en la sala de estar, porque eso