Сохранение данных в eeprom при выключении питания

MaxStriX324

✩✩✩✩✩✩✩
18 Янв 2022
2
0
Добрый вечер. Решил я сделать приборную панель на замечательный автомобиль ВАЗ 2101. Датчик скорости(А точнее показометр;)) вышел из строя, а сильно уколхоживать родную приборную панель не хочется. Установлен электронный датчик скорости, а вместо родного одометра поставлен экранчик oled 0.96 iic от китайцев.

Пока делаю схему и созрел вопрос. Ардуино со всем навесным питается от замка зажигания чтобы зря не высаживать АКБ(морочаться с энергосбережением вообще нет желания), т.е. при выключении зажигания она выключается. Но есть проблема, показания одометра надо сохранять, с каждым новым километром не хочу дрочить память ардуины.
Пока у меня есть два варианта сохранять данные в энергонезависимую память например каждые 10-20км(что получится очень не точно по понятным причинам) или же собрать схему на логической микросхеме "ИЛИ"
Т.е. на микросхему подается плюс с зажигания и плюс с цифрового пина на ардуине, а на выходе получаем плюс управляющий транзистором/реле идущий напрямую с аккумулятора на ардуину. Когда включается зажигание, подается плюс на въод логики и она уже включает ардуину, которая начинает "держать" пин идущий на второй вход логической микросхемы. А когда зажигание выключается ардуина видит это, сохраняет данные в eeprom и выключает саму себя переставая "держать" пин, т.к. на первый контакт "ИЛИ" питание не подается.

Почитал немного форум по этому поводу, все кто делал приборки или не дошли до этого момента или умолчали. Сам я склоняюсь ко второй схеме, но не очень хочется городить огород с дополнительной логикой. Это я и хочу обсудить, а может кому нибудь помочь в дальнейшем.

Заранее спасибо за ответы)
 

Lumenjer

★★★✩✩✩✩
10 Дек 2020
220
112
@MaxStriX324, На питание ардуино ставится электролитический конденсатор, при выкл зажигания - ардуинка вырубится не сразу, а самой ардуинкой на какой-то отдельной ноге отслеживаем выкл зажигания и по прерыванию пишем в EEPROM. Вот как бы и все, ничего дополнительно городить не надо
 

MaxStriX324

✩✩✩✩✩✩✩
18 Янв 2022
2
0
@Lumenjer, проблема в том, что я использую arduino pro mini и оба пина внешних прерываний задействованы. Один на тахометр, а второй на спидометр.
 

SergejEU

★★✩✩✩✩✩
16 Сен 2020
120
70
@MaxStriX324,
если все доступные прерывания задействованы, то остается только одно, использовать поллинг, делов-то..

google -> поллинг - вариант опроса готовности устройств. Альтернатива использованию прерываний.
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,837
592
44
Как вариант - использовать внешнюю FRAM память и писать в нее хоть 100 раз в секунду.
 

Lumenjer

★★★✩✩✩✩
10 Дек 2020
220
112
@MaxStriX324, Тогда проверьте, насколько у вас быстрый loop() и пихайте проверку туда, или проверяйте напряжение прерыванием по таймеру.
 

Nikanor

★★✩✩✩✩✩
1 Окт 2020
180
52
пишите каждый километр в память и не городите весь этот огород.
памяти у дуни хватит на мильён записей...
 

Sergo_ST

★★★★★★✩
15 Мар 2020
820
742
@MaxStriX324, есть ещё прерывания портов, его можно запустить на любом цифровом пине.
Если записывать каждый километр, то увеличить ресурс еепром можно записывая данные каждый раз в новую ячейку.
 

bort707

★★★★★★✩
21 Сен 2020
2,898
862
@MaxStriX324, если использовать перезапись в разные ячейки, то суммарного ресурса ЕЕПРОМ хватит на 100 миллионов километров. Так что можно ничего не выдумывать и скидывать пробег в ЕЕПРОМ не только каждый километр, но хоть каждые 10 метров...
 
  • Лойс +1
Реакции: kostyamat и Stamp

Stamp

★✩✩✩✩✩✩
12 Янв 2021
62
34
Есть метод. Он применяется во всех машинах с электронной панелью.
Во флешке выделяется область и по какому то алгоритму, у каждого производителя разный, по кольцу пишется километраж.
Сам я этим алгоритмом не заморачивался, его можно узнать на форуме, где занимаются смоткой электронных спидометров.
 

kostyamat

★★★★★★✩
29 Окт 2019
1,097
630
@MaxStriX324, заюзайте библиотеку с этого сайта LowPower, и вместо полного отключения ардуино, используйте глубокий сон. В таком сне она настолько мало потребляет, что аккумулятора вам хватит на несколько лет. Разве что дисплей отключайте и другую периферию через транзистор, к примеру.