|
4 / 4 / 0
Регистрация: 05.01.2015
Сообщений: 33
|
||||||
Как выполнить код только 1 раз в цикле loop?03.06.2019, 11:44. Показов 33117. Ответов 12
Всем привет. Решил переделать автоматический освежитель воздуха. Идея такова, что после выключения света в туалете освежитель пшикает один раз и переходит в режим ожидания до следующего включения и выключения света. Для этого в схеме использовал фоторезистор и реле (потом заменю на транзистор), которое приводит в движение привод.
Так вот, я хочу, чтобы после выключения света, реле срабатывало только 1 раз (1 пшик), а затем переходило в режим ожидания. Написал такой простенький код, однако после выключения света код в цикле loop не останавливается, реле, то включается, то выключается. Подскажите, пожалуйста, как реализовать эту затею? Спасибо!
0
|
||||||
| 03.06.2019, 11:44 | |
|
Ответы с готовыми решениями:
12
Как выполнить код только 1 раз? Как выполнить код только 1 раз и дальше ожидал Как выполнить цикл loop определенное кол-во раз ? |
|
365 / 348 / 74
Регистрация: 18.03.2015
Сообщений: 1,293
|
||||||
| 03.06.2019, 12:05 | ||||||
Сообщение было отмечено NeXan87 как решение
Решение
3
|
||||||
|
4 / 4 / 0
Регистрация: 05.01.2015
Сообщений: 33
|
|
| 04.06.2019, 20:46 [ТС] | |
|
Спасибо большое! Все работает практически как надо. Вот только иногда случаются ложные срабатывания, все дело в отсутствии гистерезиса. Я думал, что проще всего в код, приведенный выше, добавить опрос фоторезистора не постоянно, а с задержкой, например, раз в 5 секунд. Delay не подходит, так как начинает тормозить другой код программы.
В интернете похожей реализации нигде не нашел (((
0
|
|
|
365 / 348 / 74
Регистрация: 18.03.2015
Сообщений: 1,293
|
||||||||||||||||
| 05.06.2019, 09:56 | ||||||||||||||||
Сообщение было отмечено NeXan87 как решение
Решение
Для гистерезиса
строка 13
2
|
||||||||||||||||
|
4 / 4 / 0
Регистрация: 05.01.2015
Сообщений: 33
|
|
| 06.06.2019, 22:28 [ТС] | |
|
Сергей 190 , огромное спасибо! Все работает! Остался последний и значимый штрих
![]() Хотелось бы еще функцию срабатывания пшика по таймеру. То есть, в среднем на по-большому времени тратится около 5 минут, а по-маленькому около минуты. Поэтому, если свет был включен до 3 минут, не пшикать. Millis (), я как понимаю, не сбрасывает таймер, если он не дошел до заданного.
0
|
|
|
365 / 348 / 74
Регистрация: 18.03.2015
Сообщений: 1,293
|
||||||
| 08.06.2019, 13:18 | ||||||
Сообщение было отмечено NeXan87 как решение
Решение
2
|
||||||
|
435 / 101 / 15
Регистрация: 21.02.2015
Сообщений: 845
|
|
| 13.06.2019, 11:13 | |
|
NeXan87,
а как же две кнопки смыва, это ли не сигнал о двух вариантах?
0
|
|
|
4 / 4 / 0
Регистрация: 05.01.2015
Сообщений: 33
|
|
| 13.06.2019, 11:20 [ТС] | |
|
Valakin, вы мне предлагаете установить концевик в бачке?)))
0
|
|
|
435 / 101 / 15
Регистрация: 21.02.2015
Сообщений: 845
|
|
| 13.06.2019, 11:36 | |
|
NeXan87,
а что у вас за привод? он бы тоже мог смывать от фоторезистора при времени меньше 3 минут)) на уровне выше сидящего человека можно поставить дальномер. Он определяет садился ли человек, если нет - смывает по маленькому)) мужики скажут спасибо)
0
|
|
|
4 / 4 / 0
Регистрация: 05.01.2015
Сообщений: 33
|
||||||
| 13.06.2019, 11:58 [ТС] | ||||||
|
Я в домашних условиях тоже обычно сажусь, так как я не снайпер))) Вообще, вот полный код пшикалки, вдруг кто захочет повторить)
Принцип действия таков. На корпусе есть переключатель - OFF > MANUAL (только кнопка) > AUTO / MANUAL (кнопка и автоматика). В последнем режиме после включения света в туалете, запускается таймер готовности пшика (3 мин), до этого времени мигает синий светодиод (стоит RGB). Если прошло менее 3 минут и свет отключился (это время обычно затрачивается на коричневые дела), то после повторного включения он начинает идти заново. Но если прошло 3 минуты синий светодиод начинает гореть постоянно, это означает, что после выключения света произойдет распыление освежителя. Таймер можно сбросить нажатием кнопки, если пшикать не требуется, он остановится и запустится только после вык/вкл света. Во время распыления (0,8 сек) включится зеленый светодиод и сменится мигающим красным, это блокировка повторного нажатия в течение 30 минут (запах освежителя обычно столько и держится). Также блокируется и кнопка ручного распыления. В ручном режиме работает только кнопка. При этом во время ключенного света синий светодиод готовности постоянно мигает (таймер жеж выключен). При нажатии на кнопку, происходят описанные выше действия. Для увеличения срока службы батареек, светодиод полностью отключается в тот момент, когда в туалете темно. Также присутствует защита от переразряда батареек (2 Ni-Mh последовательно). Если заряд опустится ниже 1,9В, то работа распылителя будет заблокирована полностью и включится красный светодиод, а Ардуино уйдет в сон для уменьшения энергопотребления. Для понижения энергопотребления я понизил частоту до 64 кГц (в 256 раз), пришлось пересчитывать таймеры. А Ардуино запитал через повышающий DC-DC, так как максимальное напряжение батареек не хватает для нормальной работы. На выходе выставил 3.3 Вольт. Чем выше, тем больше ток потребления. При 5В - 40 мА (16Мгц), при 3.3В - 1.7 мА (64 кГц) в режиме ожидания.
2
|
||||||
|
0 / 0 / 0
Регистрация: 15.02.2020
Сообщений: 3
|
|
| 16.02.2020, 12:56 | |
|
Здравствуйте! Спасибо за огромную проделанную работу. Помогите пожалуйста со схемой. Не могу понять"что и куда". Благодарю
0
|
|
|
0 / 0 / 0
Регистрация: 15.02.2020
Сообщений: 3
|
|
| 18.02.2020, 07:44 | |
|
NeXan87, Денис, здравствуйте. Помогите, пожалуйста, со схемой. Не могу разобраться. Спасибо большое
0
|
|
| 18.02.2020, 07:44 | |
|
Помогаю со студенческими работами здесь
13
Как выполнить код только один раз (при запуске программы?)
Как в цикле выполнить определенное действие один раз?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|