Índice:
- Etapa 1: Reduzindo a tensão de alimentação usando uma bateria LiPo
- Etapa 2: Reduza o Clock da CPU
- Etapa 3: Remova o LED de energia da placa e o regulador de energia
- Etapa 4: desconectar o resistor USB D- pullup (marcado como 152) de 5 volts (VCC) e conectá-lo ao USB V +
- Etapa 5: use o sono em vez de atraso ()
- Etapa 6: modificar os fusíveis
- Etapa 7: Mais informações
Vídeo: Reduzindo o consumo de energia da bateria para Digispark ATtiny85: 7 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
ou: Executando um Arduino com uma célula tipo moeda 2032 por 2 anos.
Usando sua placa Digispark Arduino pronta para uso com um programa Arduino, ele consome 20 mA a 5 volt.
Com um banco de energia de 5 volts de 2.000 mAh, ele funcionará por apenas 4 dias.
Etapa 1: Reduzindo a tensão de alimentação usando uma bateria LiPo
Usando uma bateria LiPo com 3,7 volts como fonte, sua placa Digispark consome apenas 13 mA.
Com uma bateria de 2.000 mAh, ele funcionará por 6 dias.
Etapa 2: Reduza o Clock da CPU
Se você não usa conexão USB, matemática pesada ou pesquisa rápida em seu programa, reduza a velocidade do clock. Por exemplo. a biblioteca IRMP de recepção de infravermelho com polling pesado funciona bem a 8 MHz.
A 1 MHz, seu Digispark consome 6 mA. Com uma bateria de 2.000 mAh, ele funcionará por 14 dias.
Etapa 3: Remova o LED de energia da placa e o regulador de energia
Desative o LED de energia quebrando o fio de cobre que conecta o LED de energia ao diodo com uma faca ou remova / desative o resistor 102.
Já que você está usando uma bateria LiPo agora, você também pode remover o IC regulador de energia on-board. Primeiro levante os pinos externos com a ajuda de um ferro de solda e um pino. Em seguida, solde o conector grande e remova o regulador. Para reguladores pequenos, use muita solda e aqueça todos os 3 pinos juntos e, em seguida, remova-os.
A 1 MHz e 3,8 volts, seu Digispark agora consome 4,3 mA. Com uma bateria de 2.000 mAh, ele funcionará por 19 dias.
Etapa 4: desconectar o resistor USB D- pullup (marcado como 152) de 5 volts (VCC) e conectá-lo ao USB V +
Esta modificação é compatível com todas as versões 1.x do bootloader micronúcleo. Se você já tem um novo bootloader 2.x em sua placa, você deve atualizar para uma das versões 2.5 com "activePullup" em seu nome. A maneira mais fácil de fazer isso é instalar o novo pacote da placa digispark e queimar o bootloader com a versão recomendada (!!! não a padrão ou agressiva !!!).
Quebre o fio de cobre na lateral do resistor que aponta para o ATtiny. Isso desabilita a interface USB e por sua vez a possibilidade de programar a placa Digispark via USB. Para habilitá-lo novamente, mas ainda economizar energia, conecte o resistor (marcado como 152) diretamente ao USB V + que está facilmente disponível no lado externo do diodo shottky. O diodo e seus lados corretos podem ser encontrados usando um testador de continuidade. Um lado deste diodo é conectado ao pino 8 do ATtiny (VCC) e Digispark 5V. O outro lado está conectado ao USB V +. Agora, o resistor pullup USB só é ativado se a placa Digispark estiver conectada ao USB, por exemplo, durante a programação.
As duas últimas etapas também estão documentadas aqui.
A 1 MHz e 3,8 volts, seu Digispark agora consome 3 mA. Com uma bateria de 2.000 mAh, ele funcionará por 28 dias.
Etapa 5: use o sono em vez de atraso ()
Em vez de longos atrasos, você pode usar o modo de espera da CPU para economizar energia. As dormidas podem durar de 15 milissegundos a 8 segundos em etapas de 15, 30, 60, 120, 250, 500 milissegundos e 1, 2, 4, 8 segundos.
Como o tempo de inicialização do repouso é de 65 milissegundos com as configurações de fusível digispark de fábrica, apenas atrasos maiores que 80 ms podem ser substituídos por repouso.
Durante o sono, seu Digispark consome 27 µA. Com uma célula-botão de 200 mAh 2032, ele dormirá por 10 meses.
Para ser correto, o Digispark deve acordar a cada 8 segundos, funcionando por pelo menos 65 milissegundos e consumindo cerca de 2 mA de corrente. Isso leva a uma corrente média de 42 µA e 6 meses. Nesse cenário, quase não faz diferença se o programa for executado por 10 milissegundos (a cada 8 segundos).
O código para usar o sono é:
#include #include volatile uint16_t sNumberOfSleeps = 0; extern volatile unsigned long millis_timer_millis; void setup () {sleep_enable (); set_sleep_mode (SLEEP_MODE_PWR_DOWN); // modo de suspensão mais profunda…} void loop () {… sleepWithWatchdog (WDTO_250MS, true); // dormir por 250 ms… sleepWithWatchdog (WDTO_2S, true); // dormir por 2 s…} / * * aWatchdogPrescaler pode 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 salva 200 uA // use wdt_enable () uma vez que trata que o bit WDP3 está no bit 5 do registro WDTCR wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // Habilitar interrupção do watchdog + redefinir sinalizador de interrupção -> precisa de ISR (WDT_vect) sei (); // Habilitar interrupções sleep_cpu (); // A interrupção do watchdog nos despertará do sono wdt_disable (); // Porque a próxima interrupção irá de outra forma leva a um reset, uma vez que wdt_enable () define WDE / Watchdog System Reset Enable ADCSRA | = ADEN; / * * Como o relógio do temporizador pode ser desabilitado, ajuste os milis apenas se não dormir no modo IDLE (SM2… 0 bits são 000) * / se (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))! = 0) {millis_timer_millis + = computeSleepMillis (aWatchdogPrescaler);}} / * * Esta interrupção desperta a CPU do hibernação * / ISR (WDT_vect) {sNumberOfSleeps ++;}
Etapa 6: modificar os fusíveis
22 mA dos 27 mA são puxados pelo BOD (BrownOutDetection / subtensão detecção). O BOD só pode ser desabilitado reprogramando os fusíveis, o que só pode ser feito com um programador ISP. Usando este script, você pode reduzir a corrente para 5,5 µA e também reduzir o tempo de inicialização do repouso para 4 milissegundos.
5 dos 5,5 µA restantes são consumidos pelo contador de watchdog ativo. Se você puder usar redefinições externas para despertar, o consumo de corrente pode cair para 0,3 µA conforme indicado na folha de dados.
Se você não conseguir atingir esse valor, o motivo pode ser que a corrente reversa do diodo Schottky entre o VCC e o pullup é muito alta. Lembre-se de que um resistor de 12 MOhm também consome 0,3 µA a 3,7 volt.
Isso resulta em um consumo médio de corrente de 9 µA (2,5 anos com uma célula-botão de 200 mAh 2032) se você, por exemplo, processar dados a cada 8 segundos por 3 milissegundos como aqui.
Etapa 7: Mais informações
Desenho atual de uma placa Digispark.
Projete usando estas instruções.
Recomendado:
Poupança de bateria, interruptor de proteção contra descarga com ATtiny85 para carro com ácido de chumbo ou bateria Lipo: 6 etapas
Poupança de bateria, interruptor de corte do protetor de descarga com ATtiny85 para carro ácido-chumbo ou bateria lipo: Como preciso de vários protetores de bateria para meus carros e sistemas solares, achei os comerciais por US $ 49 muito caros. Eles também usam muita energia com 6 mA. Não consegui encontrar nenhuma instrução sobre o assunto. Então fiz o meu próprio que desenha 2mA. Como é
Sinal de alarme de consumo de energia Shelly: 8 etapas
Sinal de alarme de consumo de energia Shelly: AVISO; este instrutível deve ser executado por alguém que tenha boas habilidades como eletricista. Não assumo nenhuma responsabilidade sobre perigos para pessoas ou coisas. o consumo ultrapassa t
Reduzindo o consumo de energia do relé - Corrente de retenção versus captação: 3 etapas
Reduzindo o consumo de energia do relé - Corrente de retenção versus captação: A maioria dos relés requer mais corrente para atuar inicialmente do que o necessário para manter o relé ligado depois que os contatos foram fechados. A corrente necessária para manter o relé ligado (corrente de retenção) pode ser substancialmente menor do que a corrente inicial necessária para atuar
Como medir corretamente o consumo de energia dos módulos de comunicação sem fio na era do baixo consumo de energia ?: 6 etapas
Como medir corretamente o consumo de energia dos módulos de comunicação sem fio na era do baixo consumo de energia ?: O baixo consumo de energia é um conceito extremamente importante na Internet das coisas. A maioria dos nós de IoT precisa ser alimentada por baterias. Somente medindo corretamente o consumo de energia do módulo sem fio podemos estimar com precisão a quantidade de bateria i
Reduzindo o ruído do ventilador de um dispositivo NAS: 6 etapas
Reduzindo o ruído do ventilador de um dispositivo NAS: Uau, meu primeiro instrutível, por favor, seja gentil. Minha rede doméstica contém, entre outras coisas, um dispositivo NAS. Esse é um dispositivo que você usaria 24 horas por dia, 7 dias por semana para disponibilidade geral, certo? No entanto, prefiro manter esse dispositivo na sala de estar, porque isso