Здравствуйте Хочу сделать так, чтобы при отключении питания в памяти ардуины сохранялись значения переменных Но эти значения у меня постоянно меняются в цикле loop, в зависимости от показаний датчиков, кнопок и тд. Ко мне пришла идея сделать так: на питание ардуины поставить конденсатор, которого бы хватало на пару секунд работы ардуины (при отключении питания). Конденсатор запитан через диод, тоесть ток от источника питания проходит только в сторону конденсатора. ДО диода считывать напряжение через аналоговый вход ардуины, в случае если напряжение низкое или отсутствует - в EEPROM записываются необходимые переменные и при следующем запуске ардуины эти переменные примут свое значение исходя из данных взятых из EEPROM Подскажите, насколько правильная и рабочая эта схема? или может есть альтернативные варианты?
Поставтье LiPo аккумулятор минимальный и контроллер зарядки с повышающим преобразователем (есть такие в одном флаконе, я ссыки давал). Такой недорогой пары хватит на несколько часов работы. И контролировать оставшееся напряжение для отключения проще простого.
Есть. Во-первых, использовать EEPROM.put - тогда писаться будут только изменённые данные. Во-вторых - не писать часто в EEPROM, а, скажем, раз в N секунд - если это не критично для алгоритма работы устройства. Ну и, как третий бастион защиты - при отключении питания скидывать всё в EEPROM, как вы и описали.
Верно. Мне кажется что отсеивать изменяемые значения смысла нет при моей задаче... запись в EEPROM все-равно будет включаться только при падении напряжения на участке цепи до конденсатора с диодом. Еще пришла в голову возможная проблема наводок от источника питания на аналоговый вход, который будет мерить напряжение...
Честно сказать я про это думал, поэтому наиболее ценную информацию зеркально пишу еще и на модуль с картой microsd Спросите наверное, почему я решил задействовать еще и EEPROM?) Просто по моему опыту microsd флешки тоже имеют свойство отваливаться, да и пока возился с этим модулем microsd - пару раз наблюдал нестабильную работу и отказ записи по неизвестной причине, может непропай конечно или плохой контакт, но малоли...
когда то тоже думал над этим вопросом. даже придумал. Дуня включается долгим нажатием на кнопку питания вставленную в разрыв между питанием и управляемым по HIGH контакту реле. Дуня запускается и сама поддерживает HIGH на реле (в смысле пока есть High на реле контакт + подключен от блока питания к мк, управляющий сигнал пропадает реле размыкается, дуня выключается). выключение планировалось программно нажатем кнопки подключенной к какомунибудь пину дуни. далее мк , делал все свои дела сохранял что надо в eeprom. потом сам делал себе сепуку, отключая реле. но эту идею так и не пропробовал, просто пощитал что моих целей даже если постоянно перезаписывать в еепром нужные переменные ее хватит очень надолго.
Так может лучше использовать цифровой вход! На входе 1, работаем в штатном режиме, 0 пишем данные в Епром. Реализация проще будет.