https://github.com/jchristensen/poweroutagemonitor_sw
Arquivo de leitura
Jack Christensen
2012
Arduino Power Poucos Logger Copyright (c) 2012-2019 por Jack Christensen GNU GPL V3.0
Este programa é um software livre: você pode redistribuí -lo e/ou modificá -lo nos termos da licença pública geral da GNU v3.0, conforme publicado pela Free Software Foundation.
Este programa é distribuído na esperança de que seja útil, mas sem garantia; sem a garantia implícita de comercialização ou aptidão para uma finalidade específica. Veja a licença pública geral da GNU para obter mais detalhes.
Você deveria ter recebido uma cópia da licença pública geral da GNU junto com este programa. Caso contrário, consulte https://www.gnu.org/license/gpl.html
Um esboço do Arduino para implementar um logger de falta de energia usando o Microchip MCP79411 ou MCP79412 RTC. Até sete interrupções (tempos de desativação/subida) podem ser registrados no SRAM do RTC.
A tela normal é um relógio que mostra a hora, a data e o número de quedas de energia registradas em suportes de ângulo, por exemplo, <4>. Após uma nova queda de energia, o novo alerta de interrupção LED é iluminado. Visualizar o tronco de interrupção desligar o LED. O relógio se ajusta automaticamente para o horário de verão.
Quatro botões controlam o madeireiro e são rotulados:
SET / CLEAR / CANCEL(+) / FIRST / NEXT(-) / LAST / PREVRESET Da tela do relógio:
Pressione (+) ou (-) para visualizar o log de interrupções. Pressionar (+) mostrará a primeira interrupção (mais antiga), pressionar (+) novamente mostrará a próxima interrupção. Pressionar (-) mostrará a última (mais recente) interrupção, pressionando (-) novamente mostrará a interrupção anterior. Pressione o conjunto para retornar ao modo de relógio, ou ele retornará automaticamente após 30 segundos.
Pressione Definir para iniciar a sequência definida. Pressione (+) e (-) para ajustar cada parâmetro, mantenha-se para ajustar rapidamente. Pressione definido para avançar para o próximo parâmetro. Segure o conjunto para cancelar a sequência definida. Pressionar (+) e (-) simultaneamente, enquanto configura os segundos ou a calibração RTC zerará o valor.
No modo de relógio ou ao visualizar o log de interrupções, mantenha -se definido para limpar o log de interrupções.
Enquanto estiver no modo de exibição do relógio normal, pressionar e segurar o botão (-) alternará o modo de nascer/pôr do sol, onde os tempos do nascer e do pôr do sol alternam com a data.
Depois de pressionar e liberar redefinição, a mensagem RTC Sync (com o ID do RTC) e a mensagem de calibração mostrada durante a inicialização podem ser mantidas pressionando e mantendo o botão definido.
O modo de teste de fotocélula exibe a leitura de fotocélulas no lugar do fuso horário. Isso pode ser útil para ajudar a calibrar o brilho da exibição. Para invocar:
As configurações de fusíveis são as mesmas que Arduino Uno, exceto 4,3V, Bod, por exemplo:
avrdude -p m328p -U lfuse:w:0xff:m -U hfuse:w:0xde:m -U efuse:w:0x04:m -v
Um sensor de temperatura MCP9800/1/2/3 opcional pode ser incluído no barramento I2C. Se presente, será detectado automaticamente e a temperatura será exibida no LCD com o tempo.
Uma placa esquemática de circuito e PC para este projeto está disponível em https://github.com/jchristensen/poweroutageMonitor_hw
Em vez de usar a função (talvez mais comum) setSyncProvider() na biblioteca do tempo, o código atual usa uma interrupção de 1Hz do RTC para manter o tempo. Esse se tornou o meu método preferido, mas não foi o caso quando projetei a placa de logger de falta de energia.
Portanto, é necessário um fio na parte traseira da placa para fornecer o sinal de interrupção ao MCU. Conecte um fio do pino "MFP" RTC ao pino Amega328p 6 (também conhecido como PD4 ou o pino Arduino D4), como mostrado na foto abaixo. (A versão 1.2 da placa inclui essa conexão; portanto, um fio não é necessário.)