https://github.com/jchristensen/poweroutagemonitor_sw
Readme file
Джек Кристенсен
2012
Arduino Power Speating Logger Copyright (C) 2012-2019
Эта программа является бесплатным программным обеспечением: вы можете перераспределить его и/или изменить ее в соответствии с условиями общей публичной лицензии GNU V3.0, опубликованных Фондом Free Software.
Эта программа распространяется в надежде, что она будет полезна, но без каких -либо гарантий; даже без подразумеваемой гарантии торговой точки зрения или пригодности для определенной цели. Смотрите общую публичную лицензию GNU для получения более подробной информации.
Вы должны были получить копию общей публичной лицензии GNU вместе с этой программой. Если нет, см. Https://www.gnu.org/licenses/gpl.html
Эскиз Arduino для реализации регистратора отключения электроэнергии с использованием Microchip MCP79411 или MCP79412 RTC. До семи отключений (время вниз/вверх) может быть зарегистрировано в SRAM RTC.
Нормальный дисплей - это часы, показывающие время, дату и количество отключений электроэнергии, зарегистрированных в угловых кронштейнах, например, <4>. После нового отключения электроэнергии новый светодиод оповещения о отключении освещается. Просмотр журнала отключения выключает светодиод. Часы регулируются автоматически на время сэкономить дневное время.
Четыре кнопки управляют регистратором и помечены:
SET / CLEAR / CANCEL(+) / FIRST / NEXT(-) / LAST / PREVRESET От дисплея часов:
Нажмите (+) или (-), чтобы просмотреть журнал отключения. Нажатие (+) покажет первый (самый ранний) отключение, нажатие (+) снова покажет следующий отключение. Нажатие (-) покажет последний (самый последний) отключение, нажатие (-) снова покажет предыдущий отключение. Нажмите «Установить», чтобы вернуться в режим часов, или он автоматически вернется через 30 секунд.
Нажмите SET, чтобы начать последовательность SET. Нажмите (+) и (-), чтобы настроить каждый параметр, удерживайте, чтобы быстро регулировать. Нажмите «Установить», чтобы перейти к следующему параметру. Удерживайте установлен, чтобы отменить последовательность установки. Нажатие (+) и (-) одновременно при настройке либо секунд, либо калибровка RTC будет нулевым значением.
В режиме часов или во время просмотра журнала отключения, удерживайте установку, чтобы очистить журнал отключения.
Находясь в обычном режиме отображения часов, нажатие и удержание кнопки (-) будет переключать режим восхода солнца/заката, где восход солнца и времени заката чередуются с датой.
После нажатия и сброса сброса, сообщение Sync Sync RTC (с идентификатором RTC) и калибровочное сообщение, показанное во время запуска, можно удерживать путем нажатия и удержания кнопки SET.
Режим тестирования фотоэлемента отображает чтение фотоэлемента вместо часового пояса. Это может быть полезно, чтобы помочь калибровать яркость дисплея. Вызвать:
Настройки предохранителя такие же, как Arduino Uno, за исключением 4.3V BOD, например:
avrdude -p m328p -U lfuse:w:0xff:m -U hfuse:w:0xde:m -U efuse:w:0x04:m -v
Дополнительный датчик температуры MCP9800/1/2/3 может быть включен в шину I2C. Если он присутствует, он будет обнаружен автоматически, и температура будет отображаться на ЖК -дисплее со временем.
Схема схемы и ПК для этого проекта доступна по адресу https://github.com/jchristensen/poweroutagemonitor_hw
Вместо использования (возможно, более распространенной) функции setSyncProvider() в библиотеке времени текущий код использует прерывание 1 Гц от RTC, чтобы сохранить время. Это стало моим предпочтительным методом, но это было не так, когда я разработал плату регистратора отключения электроэнергии.
Поэтому на задней стороне платы необходим провод, чтобы обеспечить сигнал прерывания для MCU. Подключите проволоку от штифта RTC "MFP" к контакту ATMEGA328P 6 (он же PD4 или штифт Arduino D4), как показано на фото ниже. (Версия 1.2 платы включает это соединение; поэтому провод не требуется.)