https://github.com/jchristensen/poweroutagemonitor_sw
readme 파일
잭 크리스텐슨
2012
Arduino Power Outgage Logger Copyright (C) 2012-2019의 Jack Christensen Gnu GPL v3.0
이 프로그램은 무료 소프트웨어입니다. Free Software Foundation에서 게시 한 GNU General Public License v3.0의 조건에 따라 재분배 및/또는 수정할 수 있습니다.
이 프로그램은 유용 할 것이지만 보증이 없다는 희망으로 배포됩니다. 상업성 또는 특정 목적에 대한 적합성에 대한 묵시적 보증조차 없습니다. 자세한 내용은 GNU 일반 공개 라이센스를 참조하십시오.
이 프로그램과 함께 GNU 일반 공개 라이센스 사본을 받았어야합니다. 그렇지 않은 경우 https://www.gnu.org/licenses/gpl.html을 참조하십시오
Microchip MCP79411 또는 MCP79412 RTC를 사용하여 정전 로거를 구현하기위한 Arduino 스케치. RTC의 SRAM에 최대 7 개의 정전 (전원 다운/업 시간)을 기록 할 수 있습니다.
일반 디스플레이는 시간, 날짜 및 각도 괄호로 기록 된 정전 수를 보여주는 시계입니다 (예 : <4>). 새로운 정전 후 새로운 정전 경보 LED가 조명됩니다. 중단 로그를 보면 LED가 꺼집니다. 일광 절약 시간을 위해 시계가 자동으로 조정됩니다.
4 개의 버튼은 로거를 제어하고 다음과 같이 표시됩니다.
SET / CLEAR / CANCEL(+) / FIRST / NEXT(-) / LAST / PREVRESET 시계 디스플레이에서 :
(+) 또는 (-)를 눌러 중단 로그를 볼 수 있습니다. 누르기 (+)를 누르면 첫 번째 (가장 빠른) 정전이 표시되며, 누르면 (+)가 다시 다음 중단이 나타납니다. 누르기 (-)는 마지막 (가장 최근) 중단이 표시되며, 누르면 (-)는 다시 이전 중단을 보여줍니다. 시계 모드로 돌아 오도록 설정을 누르거나 30 초 후에 자동으로 돌아갑니다.
세트를 눌러 세트 시퀀스를 시작합니다. (+) 및 (-)를 눌러 각 매개 변수를 조정하고 고정하여 빠르게 조정하십시오. 다음 매개 변수로 전진하려면 설정을 누르십시오. 설정 시퀀스를 취소하도록 설정하십시오. 초를 동시에 누르면 초 (+) 및 (-)를 동시에 설정하면서 또는 RTC 교정을 설정하면 값이 0입니다.
시계 모드에서 또는 중단 로그를 보는 동안 정전 로그를 지우도록 설정하십시오.
일반 시계 디스플레이 모드에서 (-) 버튼을 누르고 누른 상태에서 일출 및 일몰 시간이 날짜와 번갈아 가면서 일출/일몰 모드를 전환합니다.
재설정을 누르고 발표 한 후, RTC 동기화 메시지 (RTC ID 포함) 및 시작 중에 표시된 교정 메시지는 설정 버튼을 누르고 누른 상태에서 유지할 수 있습니다.
광 셀 테스트 모드는 시간대 대신 광전지 판독 값을 표시합니다. 디스플레이 밝기를 교정하는 데 도움이 될 수 있습니다. 호출하려면 :
퓨즈 설정은 4.3v Bod를 제외하고 Arduino Uno와 동일합니다.
avrdude -p m328p -U lfuse:w:0xff:m -U hfuse:w:0xde:m -U efuse:w:0x04:m -v
선택적 MCP9800/1/2/3 온도 센서가 I2C 버스에 포함될 수 있습니다. 존재하면 자동으로 감지되고 시간이 지남에 따라 LCD에 온도가 표시됩니다.
이 프로젝트의 회로 회로도 및 PC 보드는 https://github.com/jchristensen/poweroutagemonitor_hw에서 제공됩니다.
시간 라이브러리에서 (더 일반적인) setSyncProvider() 함수를 사용하는 대신 현재 코드는 RTC에서 1Hz 인터럽트를 사용하여 시간을 유지합니다. 이것은 내가 선호하는 방법이되었지만 정전 로거 보드를 설계 할 때는 그렇지 않았습니다.
따라서 인터럽트 신호를 MCU에 제공하려면 보드 뒷면에 와이어가 필요합니다. 아래 사진과 같이 RTC "MFP"핀에서 ATMEGA328P 핀 6 (일명 PD4 또는 Arduino D4 핀)에 와이어를 연결하십시오. (보드 버전 1.2는이 연결이 포함되어 있으므로 와이어는 필요하지 않습니다.)