Переключать режим люстры быстрым перевключением

При разгребании хлама попался интересный светильник. Жена просит его оживить в веранду на дачу. Туда просится световой цилиндр из адресных rgb светодиодов. С пультиком пока повременю, а режимы переключать хочется. Как во всех китайских люстрах повторной подачей питания (выкл и сразу вкл). Ничего умнее или проще не придумывается: заряжать конденсатор после включения, организовав ему постоянный разряд через резистор. При выключении он разряжается, на запуске измерять напряжение на нем и снова включать заряд.
Не слишком заумно по неопытности придумал?
Играться буду с Nano.

Разрешения просите? Лично я не против. За остальных не скажу

2 лайка

Да, чтобы случайно длительность земных суток не изменить. Побьют же…

Раз там будут адресные светодиоды, то Nano на ESP заменить, вшить влед и примотать сенсорную кнопку.

И как мне до этой кнопки допрыгивать? Пока двухпроводка, а с пультиком или кнопкой повременю.

Заодно и кейс полезный проработаю: а не перезагрузился ли я.

Да что там на выходе не особо пока интересно. Может и единственным rgb источником обойдусь, без бегающих переливов. Так, яркость, температура.

Поднимать флаг при включении и записывать в EEPROM. По прошествии времени его снимать. Флаг поднят - меняем режим, нет - включаем предыдущий.

1 лайк

В последней безделушке сделал кэширование при записи в ЕЕПРОМ. Понравилось, удобно.

1 лайк

Это как, можно по-подробнее.

Очень просто. Запись делаешь не сразу, а через какое то время. К примеру, кручу я яркость. Но не сохраняю при каждом изменении. Ага?

А где тут кэширование? И как определяете момент записи в ЕЕПРОМ?

Ну, кэширование, может не совсем правильный термин…
Момент записи определяется по таймауту. Ты “пишешь” как обычно, но сохраняется всё это (действительно записывается) после того как всё устаканится.) Когда отсутствуют команды записи в течение какого то времени.)

1 лайк

А у меня счетчик времени «сбрасывается» при «внешнем взаимодействии». Обычно 5-10 минут достаточно. Если не сбросили - значит можно сохранить в EEPROM.

1 лайк

Дак можно просто питать контроллер через диод+конденсатор, а аналоговым входом щупать до диода - пропало входное или нет. Если зафиксировано пропадание - цвет++.

Только всё равно люстра мыргать будет.

3 лайка

Ну, от ситуации зависит. Основная идея - не палить ЕЕПРОМ. Не частить!)

Ну спалить ЕЕПРОМ наверное сложно, скорее люстра выйдет из строя.

Ну почему же. Нужно считать.
Людям делал учёт времени работы прибора. Посекундно. Приходилось учитывать.

1 лайк

Вроде там не менее 100000 записей, если каждый вечер 2-3 сохранения на 100 лет должно хватить. Люстру точно переживет.

А если ещё счётчик по всей eeprom гонять, то выйдет и до второго пришествия считать…

2 лайка

нужна еще одна EEPROM. Сохранять № ячейки предыдущей записи.))

1 лайк

Не особо.
Находишь предыдущий сейв, положим в ячейке N. Пишешь тудыть нуль или фф по вкусу. С N+1 помещаешь следующий сейв. Если он не влезает до границы епрома - начинаешь новый круг: N+1 => 1
При старте ищешь последний фф (или префикс) и читаешь все, что дальше. Понятное дело, что префикс должен быть не фф и контролька в комплекте.

2 лайка