+3 голосов

Привет!

Есть программа работающая на Arduino, в результате работы образуется 3 переменные, 

Внимание вопрос:

Как вы сохраняете переменные при отключении питания (света в доме например)? Программа перезапускается, а переменных нет. Существует ли способ!? 

Есть переменные которые используются в точной настройке программы, они переменные, но при этом не так часто обновляются, может раз в час, не более.....но.....если отключат свет, и программа перезапустится, выставятся усредненные стартовые значения, что не есть ГУД! 

(48 баллов) 1 10
исправил

3 Ответы

+4 голосов
 
Лучший ответ
Есть два варианта. 1-й периодически записывайте свои переменные в EEPROM, но при этом помните что количество циклов записи ограничено и при слишком частом сохранении ресурс памяти будет быстро исчерпан. 2-й - анализируйте наличие питания и в аварийной ситуации также сохраняйте данные в EEPROM. Для того чтобы при пропадании питания ардуина успела записать данные в память ипользуйте конденсаторы большой емкости или ионистор. При старте программы считывайте записанные данные и используйте их в своем коде.
(208 баллов) 2 14
выбран
Второй вариант — весьма умно!
+3 голосов
Ардуину нужно запитать 9Вольт через диод  на Vin и до диода подключить через делитель аналоговый вход для контроля напряжения  , как только напряжение на Vin будет ниже 7Вольт сделайте так чтобы производилась запись нужных переменных в EEPROM. А по питанию 5В Ардуины нужно поставить конденсатор 1000мкФ для поддержания напряжения на время записи.
(155 баллов) 1 2 14
+1 голос
Можно использовать sd-карту. Места куча, может пригодиться и для больших данных. Сам имею несколько старых карточек по 128 - 256 МБ.
(73 баллов) 6
Добро пожаловать на Бредборд! Сайт вопросов и ответов на тему Arduino, Raspberry Pi и хоббийной электроники в целом. Цель Бредборда — быть максимально полезным. Поэтому мы строго следим за соблюдением правил, боремся с холиворами и оффтопиком.
  1. parovoZZ

    8 балл(ов)

  2. dmipec

    2 балл(ов)

  3. wickiup

    2 балл(ов)

  4. Un_ka

    2 балл(ов)

  5. antonlewz

    1 балл(ов)

  6. Алексей1307

    1 балл(ов)

Награды месяца
1-е место: Arduino MKR GSM 1400
2-е место: Arduino MKR Wi-Fi 1010
3-е место: Arduino MKR Zero

...