Обработка количества нажатий кнопки
- Войдите на сайт для отправки комментариев
Пт, 26/08/2016 - 21:04
Привет всем.
Хочу сделать своеобразный таймер.
Одна кнопка и одно реле.
При подаче питания нагрузка включена. При нажатии кнопки работает ещё 15 мин и отключается. Если нажать 2 раза - 30 мин, 3 - 45, 4 раза час - и так далее, максимально 24 часа.
Не соображу, как это описать в коде?
Нашёл подходящую библиотеку, http://roboforum.ru/forum86/topic15932.html
как теперь её применить?
И что, для 24 часов кнопку надо 96 раз жать? Может придумать другой алгоритм работы?
И что, для 24 часов кнопку надо 96 раз жать? Может придумать другой алгоритм работы?
Я делал так: нажал кнопку - мигает светик раз в сек - удерживаем кнопку и считаем количество вспышек светика. Одна вспышка = 15 мин или там 10 мин. Набралось нужное количество вспышек - отпустил кнопку - число записал в EEPROM, чтоб при следующих включениях/перезагрузке не потерять значение.
Кстати, отличная идея. Кодом не поделитесь?)) Мне записывать в EEPROM ничего не надо, хочу сделать отключение вентиляции в ванной с задержкой
Вам нужен таймер обратного отсчета, например CDT-1G в Леруа брал по 100 руб. Задержки 5, 10...45,50 мин.
Если всёже хочется самому сделать, то опишу словами, Вы попробуете написать скетч, а мы с коллегами подредактируем, если что.
Давайте попробую написать. Хочется сделать)
Рассказывайте какая дуинка и какое реле, куда что подключено?
И пошагово алгоритм работы таймера. Чтобы Вы сами чётко представляли что хотите.
Вместо дуинки тензи 2, но это не принципиально совершенно, фактически одно и то же.
На цифровой вход вешаем кнопку
На цифровой выход 1 - светодиод+резистор, выход 2 - реле с али с опторазвязкой. Всё работает нормально, осталось придумать код.
Алгоритм Ваш лучше моего, поэтому возьмём его)) - При подаче напряжения по умолчанию реле включено, вентилятор крутится. Вентилятор включается отдельным выключателем из коридора, реле ставим в разрыв фазы. Далее нажал кнопку - мигает светик раз в сек - удерживаем кнопку и считаем количество вспышек светика. Одна вспышка = 15 мин. Набралось нужное количество вспышек - отпустил кнопку - и теперь контроллер ждёт заданное кол-во минут и затем отрубает реле. Всю схему планирую засунуть в корпус вентилятора. Контроллер запитывается с помошью б/п от сотового до реле, и после сработки реле остаётся запитан (выключатель в коридоре включен). Пришли мы домой. Чтобы теперь включить вентилятор, выключаем и включаем выключатель. Контроллер сбрасывается в исходное состояние, когда реле включено и вентилятор крутится. Если нам ничего не надо - включаем и выключаем вентилятор ыыключателем в коридоре, как обычно. Если нужно уйти, а в ванной высокая влажность (помылись только что) - нажимаем и удерживаем кнопку, вмонтированную в вентилятор, и считаем вспышки светика. От кнопки лучше вывести веревочку вниз, так будет удобнее, да и фабричные такие варианты есть.
Вот как-то так...
Пробуйте скетч... Словами дольше объснять алгоритм.
При подаче напряжения по умолчанию реле включено, вентилятор крутится. Вентилятор включается отдельным выключателем из коридора, реле ставим в разрыв фазы. Далее нажал кнопку - мигает светик раз в сек - удерживаем кнопку и считаем количество вспышек светика. Одна вспышка = 15 мин. Набралось нужное количество вспышек - отпустил кнопку - и теперь контроллер ждёт заданное кол-во минут и затем отрубает реле. Всю схему планирую засунуть в корпус вентилятора. Контроллер запитывается с помошью б/п от сотового до реле, и после сработки реле остаётся запитан (выключатель в коридоре включен). Пришли мы домой. Чтобы теперь включить вентилятор, выключаем и включаем выключатель. Контроллер сбрасывается в исходное состояние, когда реле включено и вентилятор крутится. Если нам ничего не надо - включаем и выключаем вентилятор ыыключателем в коридоре, как обычно. Если нужно уйти, а в ванной высокая влажность (помылись только что) - нажимаем и удерживаем кнопку, вмонтированную в вентилятор, и считаем вспышки светика. От кнопки лучше вывести веревочку вниз, так будет удобнее, да и фабричные такие варианты есть.
Ой. Будет ли подобное устройство удобным в повседневном использовании, сомневаюсь. Может быть стоит доверить управление вентиляцией ванной автоматике ? Датчик уровня влажности воздуха поможет решить задачу вообще без выключателей, кнопок, мигающего светодиода и человека, всей этой хитромудрией рулящего.
Pyotr, спасибо, попробую, здесь защита от дребезга контактов не нужна?
Araris, да, на датчике влажности было бы удобно, но ручной режим всё равно нужен (например, просто включить проветрить и не быть привязанным к выключателю), поэтому в идеале можно конечно сделать и автоматический и ручной режим с переключением между ними. Но это уже будет следующая серия))...
Строка 12 - защита от дребезга. Значение можно и больше 20.
в идеале можно конечно сделать и автоматический и ручной режим с переключением между ними.
Поддерживаю, у меня так и сделано, рекомендую.
Предлагаю потенциометром на аналоговый вход подавать напряжение от 0 до 5 вольт по отградуированной шкале. Диапазон выдержек выбираете сами. По значению на аналоговом входе (0-1023) назначается выдержка таймера. Ну и естественно кнопочка "Старт-Стоп".
Предлагаю потенциометром на аналоговый вход подавать напряжение от 0 до 5 вольт по отградуированной шкале. Диапазон выдержек выбираете сами. По значению на аналоговом входе (0-1023) назначается выдержка таймера. Ну и естественно кнопочка "Старт-Стоп".
Тогда уж на таймере 555 сделать... Готовые модули есть и с уже с реле.
для длительных выдержек времени мало что годится кроме проца.
Как-то ремонтировал кофемолку, так там таймер оказался собран на целом рукотворном ЦАПе с кучей счетчиков и резисторов.
И это выпуск не 80-х годов, а нонешнея китайская продукция
Предлагаю потенциометром на аналоговый вход подавать напряжение от 0 до 5 вольт по отградуированной шкале. Диапазон выдержек выбираете сами. По значению на аналоговом входе (0-1023) назначается выдержка таймера. Ну и естественно кнопочка "Старт-Стоп".
Тогда уж на таймере 555 сделать... Готовые модули есть и с уже с реле.
Что касается 555, конечно же можно, но настоящий ардуинщик скорее всего сделает на ардуинке. Делал генератор на 555, но в конечном итоге он оказался на тринадцатой тиньке :), возможностей ведь больше, можно и еще какие-то функции навесить.
P.S. Можно програмно шкалу разбить, например, половина шкалы до одного часа цена деления 15 мин, вторая половина цена деления 30 мин-60мин. Допустим на шкале 8 делений, первые по 15 мин до часа, последующие по часу, то таймер до 5 часов можно установить. А если надо больше...да все что угодно можно сделать
Конечно с 555 я загнул... Задержки больше десятка минут на нем лучше не делать. Но очень мне уж эта микруха нравится - чего на ней только не делал.
Вообще вариантов много. Есть из чего выбрать.
делал с датчиком влажности и освещенности
(DHT11 и фоторезистор)
при включенном свете и высокой влажности вентилятор не работает,
выходишь из ванной, выключаешь свет, (если влажность большая) включается вытяжка.
так же можно включить/выключить вытяжку кнопкой, на десять минут.
вот код: