https://github.com/jchristensen/poweroutagemonitor_sw
读数文件
杰克·克里斯滕森
2012
杰克·克里斯滕森(Jack Christens)GNU GPL v3.0 2012-2019的Arduino Power Power Logger版权所有(C)
该程序是免费软件:您可以根据自由软件基金会发布的GNU通用公共许可证v3.0的条款进行重新分配和/或修改它。
该程序的分布是希望它将有用的,但没有任何保修;即使没有对特定目的的适销性或适合性的隐含保证。有关更多详细信息,请参见GNU通用公共许可证。
您应该已经收到了GNU通用公共许可证的副本以及此计划。如果没有,请参见https://www.gnu.org/licenses/gpl.html
Arduino草图使用Microchip MCP79411或MCP79412 RTC实现停电记录器。可以在RTC的SRAM中记录长达七次停电(停电/上升时间)。
正常显示是一个时钟显示的时间,日期和以角度括号记录的停电数量,例如<4>。在新的停电后,新的停电警报LED被照亮了。查看中断日志关闭LED。时钟会自动调整,以节省日光。
四个按钮控制着记录器并标记为:
SET / CLEAR / CANCEL(+) / FIRST / NEXT(-) / LAST / PREVRESET 从时钟显示:
按(+)或( - )查看中断日志。按(+)将显示第一次(最早)中断,再次按(+)将显示下一次中断。按( - )将显示最后(最新)中断,按( - )将再次显示上一次中断。按设置返回时钟模式,否则它将在30秒后自动返回。
按设置开始设置序列。按(+)和( - )调整每个参数,保持迅速调整。按设置以推进下一个参数。保持设置以取消设定序列。在设置秒或RTC校准时同时按(+)和( - )将为零。
从时钟模式或查看中断日志时,保持设置以清除中断日志。
在正常的时钟显示模式下,按和持有( - )按钮将切换日出/日落模式,其中日出和日落时间与日期交替。
按下并释放重置后,可以通过按和按住设置按钮来保留RTC同步消息(带有RTC ID)和启动过程中显示的校准消息。
Photocell测试模式显示了光电器读数代替时区。这对于有助于校准显示亮度可能很有用。调用:
保险丝设置与Arduino Uno相同,除了4.3v bod,例如:
avrdude -p m328p -U lfuse:w:0xff:m -U hfuse:w:0xde:m -U efuse:w:0x04:m -v
I2C总线上可以包含可选的MCP9800/1/2/3温度传感器。如果存在,将自动检测到它,并随时间在LCD上显示温度。
该项目的电路示意图和PC板可在https://github.com/jchristensen/poweroutagemonitor_hw上获得
当前代码不使用(也许更常见的) setSyncProvider()函数在时间库中使用RTC中断的1Hz来保留时间。这已成为我首选的方法,但是当我设计停电记录板时,情况并非如此。
因此,板背面需要一根电线,以向MCU提供中断信号。如下图所示,将电线从RTC“ MFP”引脚连接到Atmega328p引脚6(又名PD4或Arduino D4 PIN)。 (董事会版本1.2包括此连接;因此不需要电线。)