После отключения считает слева направо

сравнивает температуру с тем что я ему задаю, тоесть:
если температура больше или равно верхний порог то тогда насос включен
если температура меньше или равно нижний порог то тогда насос выключен

А если полностью отключить питание от вашего устройства, подождать минуту и после подать питание, он тоже себя странно ведёт, или правильная работа восстанавливается?

Могу ошибаться, но по-моему, из обычного сообщения на форуме удаляются лишние пробелы (в скобках между каждым словом 4 пробела). Так что пока ТС не вставит код как нужно, не узнаем сколько там пробелов. Но судя по его ответам, пробелов там нет.

В коде из #104 вообще нет записи/чтения в/из EEPROM, поэтому очевидно, что EEPROM тут не причем. Просто шутки ради, попробуйте написать так, как вам посоветовал @Дим-мычъ. Вам же не жалко пробелы вставить?

И отдельно про EEPROM (c Гайверовского сайта, кому религия не позволяет, можете найти другой источник):

Единственный важный момент: EEPROM имеет ресурс по количеству перезаписи ячеек. Производитель гарантирует 100 000 циклов записи каждой ячейки (AVR Arduino), по факту это количество зависит от конкретного чипа и температурных условий, независимые тесты показали 3-6 миллионов циклов перезаписи при комнатной температуре до появления первой ошибки

Поэтому писать в loop() такое

if (niz >= 1)EEPROM.write(addr1, niz);
//...
if (verh >= 2)EEPROM.write(addr, verh);

плохая идея.

Вот, там и оставайтесь.

Судя по вашей физиономии на аватарке, я с вами даже спорить не буду. Можно быть бедным снаружи, но главное не быть дешёвым внутри.

Ну, этого можно и не дождаться))

В общем, если кому кроме меня интересно, есть, как минимум два косяка в коде ТС.

То что я сказал выше в #94 с выводом на экран
и
Вот эти строчки

Здесь получается так:
Сначала выводится на экран значение из EEPROM,
сказем 91.
Затем, сверху накладывается новое значение niz, начиная с -1 (FF).
Решение - исправить, как я сказал в #94,
выкинуть переменную а, и сделать так

И в сетапе , при запуске программы присваивать переменным niz и verh значение из EEPROM

P.S Ещё, кроме слишком частого обращения к EEPROM(о чём говорили выше),
постоянная перезапись экрана тоже не к чему - лучше обновлять экран по необходимости, или по таймеру.

И не надо. Правильно, молодец!

[quote=“Yurik, post:64, topic:16216”]
Постоянно не надо, наверное- будет мерцать.
[/quote] пробелы добавить в конце, мерцать не будет, если не очищать, а просто писать поверх.

Странный тот код. Закомментированные мной строки неправильного чтения/записи остались, а мое чтение/запись ТС удалил. Непонятно, что там могло работать. В 104 память не читает и не пишет. Надо было только проверить сообщение 40 и как рекомендуют пробелами забить область печати.

Интересно для себя. Какую частоту для перезаписи лучше?

Чаще одной секунды - нет смысла (на мой взгляд).

Но это если я правильно понял вопрос)
Если какая динамичная индикация, то там все 25 раз в секунду нужны (минимум) …

Правильно :slightly_smiling_face:. Возьму на заметку.

Как по мне, такую, чтобы не упустить обновление данных. Например в часах - раз в секунду. Причём данные, которые не изменяются можно вообще не обновлять.
Например, строчку из кода ТС

Можно написать в сетапе, и больше не обновлять)).

Вы написали код для ТС, потратили своё время, а он даже не удосужился протестировать , и дать ответ о его работе.
Ответил , лишь когда его об этом спросили, и то вкратце.

А может это сам Эмир Кустарица? Такую возможность упускаем!

И точно. Я признаюсь, об этом вообще не задумывался, пока обсуждать не начали :slightly_smiling_face:

Может, маны курить ушел или сдался- а то как бывает. Занопил переход, почувствовал себя кулхацкером. А потом или сдулся, или пошел ассемблер учить… :slightly_smiling_face:

Привет. Спал!