Включение нагрузки на определенный промежуток времени

Один мой знакомый автомобильный мастер в очередной к нему визит озадачил вопросом по моей части. Но разговор изначально не складывался и выглядел примерно так: “… Хочу чтобы кнопочка нажалась, а после этого реле включилось…. И время срабатывания реле можно было бы регулировать…” Никакие мои расспросы что же будет являться источником запуска схемы, т.е. высокий уровень, низкий уровень, датчик будет притянут к земле или к плюсу питания результатов не дали. Я теперь понимаю почему немцев считают самыми лучшими автомеханиками. Да они умны, точны и педантичны, но напрочь отсутствует фантазия и пространственное мышление. Вот так видать и с хорошими автомеханиками. Единственное на чем остановились при первом разговоре это то, что щелкать нужно будет релюшкой с контактами на переключение, а уж он то их применит по своему усмотрению. Осталось обыграть только входную часть и придумать на чем это все собрать, чтобы попроще, но не в ущерб надежности, естественно.

Уж пусть обижаются любители таймера 555, но у меня на него аллергия с самого детства, еще с тех пор как он был довольно дефицитным КР1006ВИ1. Тем более что нас микроконтроллерщиков и программистов они травят чаще, чем мы их. Выбор пал как обычно на ATTiny13. Шутки шутками, а дальше я мотивированно докажу чем в некоторых случаях такой вариант лучше, чем 555. Про ATTiny13 мой другой, еще школьный товарищ, а нынче, кроме всего прочего –  программист СИшник всегда говорит фразу: “Тю…. А шо там на нем сделать можно, одну галочку в компиляторе поставил и ничего не влезло…” Для начала схема:

Как вы уже поняли речь пойдет о устройстве, функцией которого является по событию на входе датчика проснуться, включить реле на время установленное резистором R2, затем выключить и снова заснуть. Несмотря на кажущуюся простоту – задействовано АЦП, таймер, внешнее прерывание и система энергосбережения МК, т.е. половина всех функций.

Теперь о событиях. а точнее о входной части. Если с резистором регулировки времени задержки стоит пояснить, что задержка регулируется от 0 до 16с, а ключ с реле вообще никаких пояснений не требуют, то вот именно с подключением входного сигнала есть куча вариаций. Я насчитал как минимум четыре. Чтобы было понятнее нарисую:

Период tR на рисунке задается, как вы уже поняли, резистором R2.  Как видите, датчик может быть нормально замкнутым и разомкнутым, может быть подключен к +12в, а может быть и к земле. Мало того, независимо от конфигурации датчика может понадобиться запуститься как от нарастающего, так и ниспадающего фронта импульса. Все эти варианты учтены и нужный режим работы можно выбрать переключателями S1, S2 (см. схему). Если понадобится подключить в качестве источника схему с 5-вольтовыми уровнями – резистор R7 нужно будет уменьшить до 1..3к. Отдельно хотел бы отметить энергопотребление. При эксплуатации в автомобиле, может так статься что устройство будет всегда подключено к бортовой сети. И именно поэтому вопрос энергопотребления очень важен. У меня в спящем режиме устройство потребляет около 3.7…3.9 ма, что примерно равно току покоя 78L05. Дальнейший путь уменьшения – применение вместо 78L05 чего-нибудь поэкономичнее. Первое что приходит в голову – LP2950-5.0. Никаких изменений в плате не понадобится, ток должен снизиться до 300..500мка. С обычным NE555, думаю это недостижимые цифры. Ну а ток потребления во время работы всецело будет зависеть от примененного реле.

Конструкция. Конструктивно все расположено на плате размером с реле + клеммники. Так как устройство скорее всего ожидает пусть и маленький, но тираж – реле выбиралось исходя из стоимости. У него самое лучшее соотношение цена/размер. Также хотел бы отметить диод VD1 – сюда подойдет диод любой мощности и скорости – главное требование – минимальное падение напряжения, т.е. лучше всего подходит диод Шоттки. Защиту от переполюсовки я не делал – хотите диод сами добавите, защитный диод параллельно реле тоже не ставил – не влез 🙁 Переключатели выполнены в виде компьютерных джамперов – для редкого использования самое то – просто, надежно и недорого.

Никакой настройки (кроме установки режимов и требуемого времени задержки) схема не требует. Все должно заработать сразу после правильного программирования фузов:

Тут есть один небольшой подводный камень. Контроллер конфигурируется этими настройками на частоту от внутреннего RC генератора 128кгц. И для того чтобы до него в дальнейшем достучаться нужно будет сказать программатору снизить частоту SCK как минимум до 128/4 кгц. Если не совсем понимаете о чем идет речь или не хотите заморачиваться – лейте сначала прошивку, затем фузы. И только в таком порядке.

Такая вот конструкция выходного дня в буквальном смысле. Удачной сборки и применения.

Файлы:
Схема в SPlan 7
Печатная плата в Spint Layout 5
Прошивка

41 коментар до “Включение нагрузки на определенный промежуток времени

  1. Работает не устойчиво, больше похоже на триггер, срабатывает через раз, диод на схеме анодом наружу +12в и взрыв тини обеспечен

    • Бог его знает что у вас там не работает, устройство собрано не в одном экземпляре. Запуск в разных режимах в общем нужен только для электронных датчиков. Если знакомы с программированием AVR – в данном случае используются разные параметры запуска прерывания INT0. Хотя вряд ли… Такую простецкую вещь скорее всего изобретали бы сами. Запуск от механической кнопки – это в любом случае дребезг контактов, и при нем от какого фронта запустился таймер разницы в общем-то нет.
      А за диод на схеме спасибо – исправил, хотя на плате и так все верно, даже на фото видно.

  2. Спасибо за быстрый ответ,не ожидал. Пытался прикрутить к OMRONu (опто-датчику), на кнопках однако то же самое, управление по 7 выводу по моему не работает, а по 6 больше напоминает триггер(может из-за системы энергосбережения МК), с фузами вроде бы всё нормально – CodeVisionAVR, а схема мне очень понравилась простотой, нужна на работу для бесконтактной мойки, ne555 достала уже.в програмирывании я не силён,я больше по практике. Может ролик девайса выложете на ЮТуб, буду при много благодарен

    • Может быть все таки неправильно поняли саму идею? S1, S2 – переключатели (джампера) конфигурирующие работу устройства однократно для конкретной задачи. Замкнутый S2 притягивает вход к питанию и нужен если датчик (кнопка) замыкает вход на землю. Соотв. разомкнутый S2 нужен если вход “плюсовой”. S1 же выбирает по какому фронту запускается таймер. Если подключен механический датчик с дребезгом – особого смысла в S1 нет. Повторюсь: S1 и S2 конфигурируются ОДНОКРАТНО при выключенном питании , а сам датчик подключен к R7-катоду VD1 и земле или питанию в зависимости от ситуации и выбранной конфигурации.
      Ролик не выложу, устройство делал в нескольких экземплярах знакомому, себе не оставил ни одного 🙁 Можете быть уверены что не работать там нечему. Самая сложная и “объемная” часть программы – это энергосбережение.

      • Добрый вечер!спаял ваш дивайс только не могу его запустить.запутался в джамперах.У меня машина классика свет включается через массу.Как мне надо выставить джампера для такой работы что б после закрытия двери свет выключался с задержкой.Прошивал программатором progisp 1.72 программатор SPI.Фьюзы выставил как у вас на картинки.А можно прошивку выложить в hex файле?

  3. Про то, что……… S1 и S2 конфигурируются ОДНОКРАТНО при выключенном питании, я не знал, буду пробовать, но самое главное, что у меня, вход 6, так и остался с дребезгом,со странным алгоритмом работы выраженном, примерно так 10100010110000101000011, по не понятному закону, в том чисе и опт. датчиком например с таким E3F2-DS30B4-M1-M, можно ли подправить прошивку под аппаратное подавление этого дребезга???

    • Блин… Да нет здесь никакого алгоритма и никогда не было. Кнопочку нажали (вход датчика) —> реле K1 включилось на время выбранное резистором R2 —> время закончилось, реле выключилось, устройство уснуло до следующего разу. Все.

  4. Ладно, не буду вас больше напрягать, может я чего то делаю не так, хотя паралельно собирал за этот период 2 устройства: (Устройство защиты от опасных напряжений в электросети «SOKOL UZP-1F, Контроллер доступа на RFID-картах) и они сразу заработали хоть и были сложнее, и печатки я свои под них разводил, Подождём следующего комента, тот кто соберёт и отпишится…..

  5. И снова Я. Нашел проблему, в вашей прошивке отсутствует защита от дребезга, поэтому даже с оптическими датчиками(на отражение) работает не стабильно, не говоря уже о кнопке(тактовой), внесите коррективы

    • А я и не говорил что есть какая-то защита от дребезга. Довольно сомнителен “дребезг” от оптических датчиков, но суть не в этом… Устройство проектировалось несколько для других целей и свои функции выполняет замечательно. Если читали внимательно статью – датчик это вход INT0 микроконтроллера и ничего к его работе добавить не получится, используются исключительно его аппаратные свойства и дописывать или исправлять там нечего. Так что триггеры Вам в руки… Ну либо писать программный захват, что вряд ли добавит надежности срабатыванию. Если очень желаете – отправлю исходники на ассемблере.

  6. А есле после срабатывания входа, вход временно заблокировать ну 0.3 – 0.5 сек например??
    У меня просьба. Можете сделать что то типа этого http://www.radioded.ru/skhema-na-mikrokontrollere/taymer-dozator-dlya-akvariuma, только без цикла и прмежутков, т е
    пуск 1—-2—3— стоп , время задаётся 1сек – 10 часов, у автора исходники потеряны и времени сейчас нет переделывать, а я программы писать не умею

    • Честно говоря с некоторых пор зарекся дописывать / доделывать “на заказ” по малейшему желанию читающего, были прецеденты. Кроме более-менее крупных коммерческих проектов, естественно. Да и времени как и у того автора не особо густо сейчас… Так что воспринимайте мои конструкции “как есть”, как любят говорить иностранцы. Ну или по прежнему предлагаю исходники, у меня они никуда не потерялись. Естественно с условием что они не будут растасканы потом по какому-нибудь радиокоту в какой-нибудь теме типа “help, помогите, допишите, соберите….”

      P.S. Примерную копию указанной конструкции такой насыщенности с учетом Ваших пожеланий и доработок сделать конечно же могу, но вполне за определенное вознаграждение в районе 40-50$. Исходные коды конечно же достанутся Вам и только Вам и в интернет она не попадет.

  7. Я Вас прекрасно понимаю, нас много,а вы один, это нормально
    Так вот нужен ПЛК похожий на промышленный ОВЕН или ZELIO, 14-16 входов 6-8 выходов, програмируемый в ЕЕпром простым методом, скажем на меге16, можем обсудить как коммерческий проэкт
    Под свои нужды ипользую во это чудо устройство http://vrtp.ru/index.php?act=categories&CODE=article&article=1218 УСТРОЙСТВО КОНТРОЛЯ ДИСКРЕТНЫХ ДАТЧИКОВ С ПЕРЕДАЧЕЙ ИНФОРМАЦИИ источник вход – выход 6 на 4

    • Почитал… Начинали за здравие, а закончили как всегда за упокой. Был Tiny13 для трех кормушек, а стало нечто с Ethernet портами и GSM модемом. На такое, боюсь, времени точно не найду, да и “цифра” там совсем другая была бы. Если нужен 1шт – лучше купите готовый. Дешевле точно.

  8. Здравствуйте
    Хочу повторить это устройство для машины, чтобы после выключения зажигания било времени для поднятия стекол.
    И отсюда вопрос. Можно как то сделать так, чтобы максимальная задержка била не 16 с, а скажем 120 с?

    • Здравствуйте. Попробуйте при программировании установить фуз CKDIV8, тем самым понизите тактовую частоту в 8 раз, т.е. 16с превратятся в 128 с. Примерно то, что нужно.

  9. Добрый вечер!спаял ваш дивайс только не могу его запустить.запутался в джамперах.У меня машина классика свет включается через массу.Как мне надо выставить джампера для такой работы что б после закрытия двери свет выключался с задержкой.Прошивал программатором progisp 1.72 программатор SPI.Фьюзы выставил как у вас на картинки.А можно прошивку выложить в hex файле?

  10. Спасибо,elecra за разработку.Причина в программирование.Прошил пони прогом и все поехало.

  11. Здравствуйте !
    У меня задача очень похоже на вашу конструкцию, также с применением в машине, но необходимо включать нагрузку на более длительное время, минут на 15-20. Как это можно сделать на основе этой конструкции. Спасибо.

    • Теоретически после “допиливания” прошивки все возможно. Практически же установка задержки переменным резистором в таких временных рамках 0…20мин кажется затеей мне мягко говоря “неумной”…. Поищите еще какое-нибудь решение, должно быть что-нибудь более изящное и правильное.

      • Вы правильно сказали: “что-нибудь изящное” и мне хочется.
        Вообще суть такова, это обогрев задних сидений.
        Чтоб включался-выключался одной не фиксируемой кнопкой, при этом когда включили отработал 20 минут и сам выключился, в то же время, если в эти 20 минут стало жарко, то можно было выключить самостоятельно. Ищу уже долго, но нормального решения не нахожу.

        • Обычно не ведусь, но Вам сделаю. Работы на полчаса перед сном. Да и тема интересная, я тоже автомобилист. Предлагаю примерно так: одна кнопка, один двухцветный светодиод, n-канальный полевик затвором в мк и истоком на землю. Одинарное нажатие, зеленый светодиод, ШИМ на выходе полевика (скажем 60-65%) т.е. нагрев “вполсилы”. Двойное нажатие – полный привод, максимальный нагрев, красный светодиод. Любое последуюшее нажатие на кнопку – выключит нагрев принудительно. Иначе – по таймеру через 20 мин. Любое пропадание (провал) напряжения питания – нагрев прекращается устройство возвращается в ждущий режим. Так пойдет?

          • Это даже больше, чем я ожидал !
            И решение в таком ключе гораздо интереснее, мне очень нравится !

            • Ну пробуйте тогда: тут
              Перед сном набросал… Там схема, печатная плата и прошивка. Прошивка пока имеет статус виртуальной, в железе завтра соберу если ничего не отвлечет. Тем не менее можете смело собирать по этой схеме. С Вас потом фото готовой конструкции, а я потом в виде отдельного устройства оформлю, вдруг еще кому пригодится. Да, и чуть не забыл – фузы стандартные заводские (по умолчанию), на новом контроллере – можно ничего не программировать, на секонд-хенде – выставить RC 9.6Мгц, CKDIV=0.

              • Уважаемый elektra! Собрал таймер обогрева сидений. Работает отлычно,завелся с первого раза. Но когда нажимаю кнопку третьей раз таймер не выключается. В чем может бить проблема или так и должно быть.Схема нормально собрано, прошилься успешно,фьюзи не трогал.

  12. Спасибо большое !
    SMD никогда не паял, а самое главное не чем, есть только простой паяльник.
    Буду искать, кто поможет со всем этим, а главное, того, кто поможет прошит МК в корпусе SO8.
    Посмотрел, в космодроме есть и простые МК, в корпусе DIP.

    • Я платку привел так, для примера. Переделать можете и под обычные детали. Контроллеры есть и у меня: http://www.aliot.com.ua/?cat=4520#4595. Если не найдете где прошить – отправлю уже прошитый. Надо только собраться, прошивку проверить, а то пока так и не удалось время выбрать…

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

  13. Чи можна зробити так щоб м/к реагував і на замикання контакту датчика і на розмикання? Напишіть на пошту, дякую!

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

    • Хех…. Да тут ШИМа и плавного включения кода будет больше чем всего девайса вместе взятого. Да и выветрилось уже из головы все давно. Хотите исходник отправлю, сами помудрите?

  15. Я в программирование не силен.а если выкинуть все навороты и оставить включение как на классике.но добавить шим

  16. Добрый день! Заинтересовала данная конструкция. Хочу применить ее в инкубатор для управления двигателем переворота яиц. То есть нужен циклический таймер с такими параметрами: время ожидания 1, 2, 3, 12 часов с возможностью переключения (например джампер), затем включение на 1-16 сек как в данном устройстве с регулировкой потенциометром, затем повтор цикла. Возможно ли изменение прошивки. Заранее благодарен за ответ

    • То, что Вы хотите – тянет уже не “изменение прошивки” а на вполне себе самостоятельное новое устройство.

  17. Добрый день! Спасибо за ответ. В принципе новое устройство выглядит просто на основании этого ( в качестве запускающего датчика используем любой ждущий мультивибратор на ожидание 1,2,3, 12 часов), но хотелось бы не плодить корпуса, а решить все в одном тем более что с моей точки зрения это возможно

  18. Добрый день, очень классная схема, запустилась с первого раза. Все круто, но вот хотелось бы задержку увеличить хотя бы до пол минуты – минуту, возможно такое сделать???

  19. Доброго времени суток. Подойдет ли эта схема для реализации имитации открытия двери водителя после автозапуска. Идея использовать выход блокировки от сиги. Т.е охрана включилась появился минус на на выходе блокировки устройство должно через 1сек на 1сек включить реле которое разорвет концевик двери водителя тем самым отключив магнитолу. Я так понял ваше устройство работает только при подаче импульса на вход или будет работать при подаче постоянного сигнала??

  20. закирпичил 3 тиньки ssu SO-8 core 20MHz,1kB FLASH, 64B SRAM последующие эксперементы прекращяю- накладно прошивал USB ASP програматором фьюзы инверсные– причина не ясна .Востановить в высоковольтном режиме (от радиодеда) не получилось –жаль!

    • Соболезную и рекомендую переходить на что-нибудь более промышленное. К примеру очень хорошо с подобными задачами справляется китайский TL866. Даже старая версия уже снятая с производства.

  21. щiро дякую.Чi не зацiкавить вас розробка з алгоритмом. Кнопок -1 контроллер 1- tiny13 час вимикання таймерiв обох каналiв вiд 5 сек до 59 хв
    1 вимкнено
    2 натискаемо кнопку вмикается 1- канал.
    3 натискаемо кнопку вимикается все.
    4 натискаемо кнопку вмикается 2-канал.
    5 знову кнопка та вимикання всьго.
    .Чi таке вам не цiкаво.

Залишити коментар до Вячеслав Скасувати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *