Ligue o Arduino com timer a cada 24 horas


9

Atualmente, estou trabalhando em um projeto Arduino que envia a carga da bateria do meu carro uma vez por dia através de um ESP8266 para mim. Durante o inverno, eu não dirijo meu carro e gostaria de ser informado quando a bateria cair além de um valor crítico, para que eu possa carregá-la e evitar danos.

Portanto, a eficiência energética é importante para o projeto, para não descarregar a própria bateria. Eu leio muito sobre o modo de suspensão, reguladores de queda eficientes, etc. Todos têm em comum que o regulador de tensão está sempre funcionando, o que não é o que eu quero.

Eu estou procurando por algum tipo de "circuito de troca rápida". Ele deve contar em 24 horas e depois ligar um relé ou MOSFET, que conecta o regulador de tensão à energia e, com isso, liga o Arduino e o ESP8266. Quando o Arduino termina a transmissão, ele redefine o temporizador, que desconecta o regulador de tensão da energia, e assim por diante. Obviamente, o circuito do temporizador deve usar apenas muito pouca energia.

Alguém conhece um circuito como esse? Pesquisei no AliExpress com todas as variações de palavras que me vieram à mente, sem sucesso. Ou talvez um IC que possa ser usado (facilmente) para criar esse circuito?


11
Nem todos os reguladores de tensão são iguais. Alguns usarão apenas alguns micro-amplificadores.
Gerben

Pensando fora da caixa ... Um interruptor de timer padrão não será suficiente?
usar o seguinte comando

Respostas:


5

Uma abordagem seria o uso de um módulo DS3231 (Precision Real Time Clock). Esses módulos são vendidos no Ebay por menos de US $ 1. Pesquise por ds3231 arduino.

Normalmente, esses módulos possuem um conector de seis pinos, com pinos rotulados 32K, SQW, SCL, SDA, VCC e GND. Conforme observado nas especificações do DS3231, o pino INT / SQW é usado para saída de onda quadrada ou para saída de interrupção. Na página 13 das especificações, na seção Registro de Controle, diz:

Bit 2: Controle de interrupção (INTCN). Este bit controla o sinal INT / SQW. Quando o bit INTCN está definido para a lógica 0, uma onda quadrada é emitida no pino INT / SQW. Quando o bit INTCN está definido para a lógica 1, uma correspondência entre os registros de registro de horas e qualquer um dos registros de alarme ativa a saída INT / SQW (se o alarme também estiver ativado).

Inicialmente, você executaria um esboço para configurar o DS3231: ativar um alarme diário, ativar uma interrupção em vez de uma onda quadrada, definir a hora atual, etc. e age de maneira adequada.

O pino DS3231 INT / SQW seria conectado ao portão de um mosfet de canal P que alterna energia de 12V no Arduino. O P-fet liga quando o pino de saída de dreno aberto INT / SQW do alarme é ativado. O programa operacional faz seus negócios e limpa o sinalizador de interrupção DS3231, para desligar a energia até que o próximo alarme ocorra. (Para depuração, defina intervalos mais breves do que um dia; por exemplo, uma vez por minuto, conforme descrito na Tabela 2, Bits de máscara de alarme, na página 12 de especificações.)

Normalmente, o DS3231 consome 0,84 μA ao operar com uma bateria de 3,3V ou 1 μA de 5V. Consulte Características elétricas, página 3 de especificações.


11
A porta P-fet provavelmente deve ser puxada para +12 através de algo como um resistor de 1 megaohm; então seria efetivamente aberta quando o pino INT / SQW está fora, e poderia flutuar para níveis arbitrários
James Waldby - jwpat7

3

O cronômetro ou o próprio circuito do cronômetro precisaria consumir alguma corrente. Qualquer um dos chips AVR de potência máxima consome muito pouca corrente no modo de suspensão - nos 10s de micro-amp para o 328, se bem me lembro. A suspensão de um AVR para o menor consumo de corrente precisa de quase tudo desligado, exceto o temporizador do cão de guarda e o período WDT máximo é de 8 segundos. Uma biblioteca como o Narcoleptic gerenciará períodos mais longos para você. O que você precisa fazer, no entanto, é fornecer uma fonte de alimentação regulada muito mais eficiente do que a embutida na placa Arduino (se é isso que você usará). Feito isso, a carga do Arduino na bateria do seu carro deve ser microscópica.

Um design possível para um suprimento eficiente é um conjunto de baterias alcalinas, digamos 3 em série, para uma saída de 4,5 (enquanto fresca) vezes 2 ou mais dessas seqüências em paralelo, conectadas diretamente ao barramento de 5V.

Eu não fiz o orçamento de energia para saber a capacidade que você precisaria e se precisaria de células D ou poderia criar uma matriz prática a partir de unidades menores, por exemplo, AAs, mas essa é uma maneira de obter carga zero na bateria do carro (descontando a exigência do sensor de tensão da bateria do carro). Convém incluir a integridade do conjunto de baterias do Arduino no relatório diário ou, pelo preço de alguns alcalinos, você pode projetar demais a bateria do Arduino para que seu monitoramento se torne desnecessário.

Alguns pontos de dados sugerem que uma bateria separada é uma abordagem viável:

  • Um único 9v alcalino opera um detector de fumaça por mais de um ano, incluindo o inverno excessivo em um sótão sem aquecimento (na minha própria experiência), e os 9v alcalinos não são conhecidos por sua capacidade.
  • Meu termostato de retrocesso digital funciona há alguns anos em 2 células AA, antes de a) morrerem e b) eu saber e começar a trocá-las anualmente. :)

Eu tenho um ATmega48 (muito semelhante ao 328P) executando duas células AA desde junho de 2012. Ele fica acordado por pouco mais de 4 minutos por dia, dormindo o resto do tempo. Não mudou as baterias até agora.
Edgar Bonet

Esse é um tempo de execução impressionante - obrigado pelo ponto de dados adicional, @EdgarBonet! Eu esperava que um Arduino adormecido e uma bateria alcalina pudessem ser um sistema "faça-o-esqueça-e-esqueça", mas sem calcular o consumo de energia, acho que não teria um desempenho tão bom. Então, @DirkPitt, existem alguns dados de suporte do mundo real.
JRobert #

Não é um Arduino completo: não consegui ficar abaixo de ~ 40 mA com o meu Uno, enquanto o ATmega nu SLEEP_MODE_PWR_SAVE, com apenas o temporizador assíncrono ativo, levou algo como 2 µA.
Edgar Bonet


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.