Туалетор-антигаджет

Искрилки, свистелки, жужжалки и прочие полезные и не очень схемы
Ответить
Родился
Сообщения: 15
Зарегистрирован: Вт дек 19, 2023 04:10:21

Сообщение dimbor »

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

Интернетовская мудрость гласит: Сначала ты молодой, а потом ходишь и выключаешь за всеми свет. И хоть мои многочисленные домашние свет в санузлах за собой выключать давно научились, работающие постоянно вентиляторы там достают безмерно. Не то чтобы электричества жалко, а шумят, и вообще непорядок.
Управление вентилятором в каждом храме фаянса выведено на отдельный выключатель. Ибо если спарить его со светом, как правило, в перерыве помещение не успевает подготовиться к использованию очередным, хм, пользователем.

Исходное ТЗ было сделать реле времени. Казалось бы все уже придумано сто раз. Активно не хотелось менять клавишу выключателя на кнопку, да и вообще что-либо вкорячивать в его стенную коробку. Тесно там. А под подвесным жестяным потолком места много, вуайеристам сдавать можно. Только форматировать их предварительно. Электроники туда тоже можно упихать порядочно.

Значит выключатель не меняю и нарушаю лишь одно основополагающее правило. Про падающее тело, пораженного током электрика, которое должно отключать нагрузку. Честно пытался сначала найти аналоговое решение. Гуглеж с запросом "запуск одновибратора по фронту и по спаду" вывел в т.ч. и на тему на этом форуме. Да только в той схеме надо выставлять одним резистором длительность импульса по фронту, а другим - по спаду. Потом все это закиснет, номиналы уедут, и аллё.

Без микроконтоллера точно не обойтись. Там есть PinChange прерывания, которые снимут вопрос. Набрал мешок DigiSpark ATTiny85. И 13 хватило бы, но уж больно лениво вокруг программатора плясать. А тут воткнул в USB и прошил.
Напрограммил светодиодик с таймером на замыкание/размыкание, возрадовался собственной хитрости.
Потом таки одумался. Это ж нежную слаботочку надоть стенным выключателем коммутировать. А там рядом фазный провод, наводки всякие - ужос, гроб, кладбище.

Задача усложнилась, стал гуглить детектор переменного напряжения - хрен там. На родных просторах упоминания о таких модулях есть, но они не импортозаместились. Модули, в смысле. На редите нарыл схему, собрал.
ac-voltage-detector-circuit-pc817.png
(45.65 КБ) 20 скачиваний
Конденсатор там лишний, я его зачеркнул. Меандр нужен, а не порнография.

После переписывания кода заработало. Идея состоит в ловле двух событий: появились прерывания и исчезли прерывания. Без Arduino.h не обошлось. Нужна была millis(), а только настройки таймера под нее из исходников выдирать без бутылки я не буду. И оно дальше пригодилось при следующем изменении ТЗ.
Зато придумал способ сооружать хоть десяток проходных переключателей на двух проводах к каждому. Скорее всего, все тысячу лет назад придумали китайцы, только не получилось нагуглить в остатках сети.

Далее захотелось побороться с родительской болью. Как известно, всяческие рилсы лучше всего заходят молодому поколению, когда оно сидит на горшке. Опционально - с сигареткой. Когда поколение было совсем мелким, помогали угрозы и отключение вайфая накрайняк - пулей вылетали. Сейчас же сооружение LTE глушилки будет негуманно по отношению к соседям, да и незаконно это. В итоге имеем постоянную очередь как на стадионе или в зоне прилета. Хоть толчки платными делай. Но теперь "вкалывают роботы
- счастлив человек!"

По включению света начинается отсчет пятнадцати минут. Если по истечению свет еще включен... Нет не буду его выключать, чтобы детеныш не решил, как в том анекдоте, что у него глаза лопнули. Начинает играть бодрая музыка/звуки из мемов по кругу в случайном порядке. Заодно пристроен один из давно сдуру купленных модулей DFPlayer Mini.

Несколько дней устройство уже работает. Семья довольна.
Схему и код под platformio прилагаю.
kicker.jpg
(77.81 КБ) 20 скачиваний
kicker.zip
(49.65 КБ) 6 скачиваний
Наговнокожено изрядно, ибо писалось в свободное время левой ногой. Наоптимизировать можно раза в три по размеру. Да, больно думать о том как восьмибитный avr перабатывает многократно четырехбайтные числа. Прям как дедушка, который вечером выкхекивает случайно утром проглоченную сливовую косточку. Но работает же. И watchdog туда всажен чисто чтобы был.

Да еще: Поскольку связь с плейером специально делалась односторонней, количество папок-сетов на карточке захардкожено дефайном. Псевдослучайный ассемблер я не осилил, avr-gcc его не прожевывает. Ссылка на источник в коде имеется. Может кто поможет его победить? Хотя оно там в такой момент вызывается, что лишние шесть тысяч тактов рояль не играют.

Здесь свой полный искрометного сортирного юмора длиннопост, наконец, завершаю.
Реклама
Вымогатель припоя
Сообщения: 622
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

В коде та же проблема с именами - что такое lfsr, rbw, sw_fl и прочие имена переменных? Эти сокращения понятны только автору кода в течение первой недели после написания.
Зато вот в посте на форуме букв доталова, причем две трети - лишние.

Здесь же на форуме есть тема про ИК-счетчик посещений туалета (ванной). Включает/выключает свет при входе/выходе посетителей. Тоже на Ардуйне. И тоже проблема с именами переменных в коде.
Реклама
Родился
Сообщения: 15
Зарегистрирован: Вт дек 19, 2023 04:10:21

Сообщение dimbor »

А по делу-то есть, что сказать?
Вспоминаю, держал у вашего виска пистолет и заставлял читать многобукаф в посте. Что, не у вашего? Сорян, ошибся.

Хм, в _рабочем_ коде реализованы простейшие КА, похожие как близнецы. Да хоть задницами переменные обзывай, все понятно, кто хоть раз эти автоматы видел. Более того, там функций лишних понаписано, чтобы они своими названиями сделали код читаемым. Все равно будем занудствовать, что нету VeryUnderstandableToMoronsVariable. Не определена - косяк.

Пост писался с целью поделиться с сообществом идеей, которую посчитал недостаточно освещенной в ру сегменте. Нет, давайте до шашечек докапываться.

Вопрос был задан лишь один, для того чтобы формально было все по феншую. Повторяю расширенно: У функции dfp_folder_num_set(), почти цельностянутой с https://microsin.net/programming/AVR/lf ... rator.html, в источнике приведены си и ассемблерная реализации. Ассемблерная не завелась. Злые языки пишут, из-за нового avr-gcc. Переменная lfsr тоже оттуда, кстати.

ЗЫ: Принципиально настоящая шляпа в остальном коде конечно же имеется. Интересно, сможет ли кто-нить меня в нее ткнуть?
Родился
Сообщения: 15
Зарегистрирован: Вт дек 19, 2023 04:10:21

Сообщение dimbor »

Как-то ночью у меня
Зачесалась Ардуйня.
Рассмотрел при свете дня
Оказалось все фигня.

По результатам эксплуатации добавил ограничение дискотеки пятью минутами.
kicker2.zip
(49.74 КБ) 5 скачиваний
Пусть и это тут лежит. Будете проходить мимо - проходите.
Реклама
Эиком - электронные компоненты и радиодетали
Ответить

Вернуться в «Прочая силовая электроника»