Страница 1 из 2
Помогите написать элементарную программу на AVR
Добавлено: Сб авг 26, 2017 13:55:57
techno_rock
Добрый день. Так как я совсем не шарю в программировании, прошу кого-нибудь откликнуться мне на помощь.
Нужно написать простейшую программу для attiny13
Суть заключается в следующем - я обустраиваю квартиру умным домом, хочу автоматизировать работу увлажнителя, но так как он с электронным управлением, после включения в розетку он переходит в режим сна.
мне нужно -
после подачи питания на контроллер через небольшой промежуток времени (5с) замыкать на долю секунды 1 вывод на массу (он включит устройство), через секунду 2 раза замыкать 2-й вывод на массу на долю секунды через секунду, и потом так же на долю секунды замкнуть 3-й вывод.
в итоге что получается - умная розетка включает питание девайса, на контроллер подается питание, он нажимает кнопку включения увлажнителя, потом 2-жды жмет кнопку увеличения мощности потока, и нажимает кнопку ионизации. кто может помочь?
p.s. как думаете для замыкания контактов хватит самой микрухи или реализовать через транзюки?
Re: Помогите написать элементарную программу на AVR
Добавлено: Сб авг 26, 2017 14:06:50
Maykill
"p.s. как думаете для замыкания контактов хватит самой микрухи или реализовать через транзюки?"
сама " микруха" ничего замыкать-размыкать не умеет
Она формирует уровни сигнала на выходах ( 0 или 1)
Re: Помогите написать элементарную программу на AVR
Добавлено: Сб авг 26, 2017 15:50:17
roman.com
techno_rock писал(а):p.s. как думаете для замыкания контактов хватит самой микрухи или реализовать через транзюки?
Смотря какие контакты...
http://www.atmel.com/images/doc2535.pdf
Главное что бы напряжение на контактах не превышало напряжение питания МК.
2.7 - 5.5V for ATtiny13 А то сгорит вывод МК...))
Ну и ток на выводах МК ограничен... несколько десятков милиампер (~90 mA - ток короткого замыкания вывода МК).
В остальном ATtiny13 может всё)) Замыкать, размыкать... и т.д. ))
techno_rock писал(а):после подачи питания на контроллер через небольшой промежуток времени (5с) замыкать на долю секунды 1..
Для МК это слишком простая задача)) С этой задачей справится обычная логика, с задержкой включения )) Обычно МК используют для более сложных задач.. типа поддерживать работу аппарата в заданых пределах... Дистанционное управление... Мониторинг.. Автоматическое включение/отключение по суточному таймеру... и многое другое))
[uquote="Maykill",url="/forum/viewtopic.php?p=3170027#p3170027"]Она формирует уровни сигнала на выходах ( 0 или 1)[/uquote]
На самом деле там три состояния выводов: 0 или 1 или Z-состояние... ))
Re: Помогите написать элементарную программу на AVR
Добавлено: Сб авг 26, 2017 16:15:09
Ivanoff-iv
если уж докапываться, то в AVRах 4 - ещё pull-up, а в ARMах и того больше, но это уже офф-топ
ТС (
techno_rock), посмотри какое напряжение на кнопках (амплитуда, наличие пульсаций, какой ток проходит через кнтакт), имеют ли кнопки общий провод (желательно найти/составить схему хотябы кнопочного блока), это поможет отказаться от прожорливых реле и перейти в худшем случае на оптопары, а в лучшем зацепить МК напрямую.
Re: Помогите написать элементарную программу на AVR
Добавлено: Сб авг 26, 2017 17:01:04
techno_rock
тоесть короткое замыкание лучше осуществить полевиками?
Добавлено after 56 seconds:
сейчас разберу, изучу кнопочное управление
Добавлено after 42 minutes 1 second:
примерно вот так расключены кнопки. на кнопки питание напряжение прыгает от 0,2 до 0,5 вольта
как бы его лучше сделать чтоб иммитировать нажатие на кнопку, т.е. кз?
Re: Помогите написать элементарную программу на AVR
Добавлено: Сб авг 26, 2017 18:13:24
Ivanoff-iv
там ещё экранчик есть?
Re: Помогите написать элементарную программу на AVR
Добавлено: Сб авг 26, 2017 18:39:18
techno_rock
да. сам увлажнитель вот такой
Re: Помогите написать элементарную программу на AVR
Добавлено: Сб авг 26, 2017 20:06:26
Ivanoff-iv
проще всего пнп маломощные транзисторы эмиттером к диоду, коллектором в кучу, база через резистор на МК - управление - низкий уровень.
Re: Помогите написать элементарную программу на AVR
Добавлено: Сб авг 26, 2017 21:04:49
roman.com
что вы там придумали..)) зачем транзисторы? Достаточно снять крышку и посмотреть что там внутри... Например вот похожий.. )) Достаточно кинуть беглый взгляд))
Видно простой трансформатор, выпрямитель, стабилизатор. Всё на кнопочках. Видно LCD индикатор. Видно типа какогото МК. Значит в эта схема полюбому питается от 3...5 V. Берём тестер и смотрим сколько точно вольт. ))
А вот ваш приборчик... Обычный "китайский" приборчик)) Ничего военного там нет))
Видно LED индикатор... всё на кнопочках... Значит полюбому там уже есть заводской МК. У всех МК примерно одинаковое питание - 3...5 V.
Берём тестер и смотрим сколько точно вольт. На всякий случай))
А раз так, значит можно подключить выводы attiny13
напрямую к кнопкам, т.е. напрямую к заводскому МК, без всяких транзисторов.. резисторов..и прочее ненужных деталей.
Кратко вот))

Re: Помогите написать элементарную программу на AVR
Добавлено: Сб авг 26, 2017 21:21:17
АлександрЛ
[uquote="techno_rock",url="/forum/viewtopic.php?p=3170082#p3170082"]тоесть короткое замыкание лучше осуществить полевиками?
примерно вот так расключены кнопки. на кнопки питание напряжение прыгает от 0,2 до 0,5 вольта
как бы его лучше сделать чтоб иммитировать нажатие на кнопку, т.е. кз?[/uquote]
100%, не зависимо от схемы, будут работать оптопары, та же 817,

коих в импульсных БП можно наковырять..
перед кнопкой (судя по рисунку ТС) стоит диод, поэтому там даже при неправильно подключенном оптроне-
ничего не сгорит..
Оптроны найдёте?
Тини13 вполне хватит, чтобы трЮмяМИ

светодиодами помигать.. Сама программа - 6 строк на бейсике..
Держите, вот вам схема:
Вот вам прошивка:
При подаче питания зажигается светодиод у вывода 3 МК
Спустя 5 секунд "дёргается" вывод 5, потом дважды вывод 6 и один раз вывод 7, светодиод гаснет.. Конец программы..
При повторном включении всё это происходит ещё раз.
Фьюзы "по умолчанию"- ничего менять не надо.
Re: Помогите написать элементарную программу на AVR
Добавлено: Сб авг 26, 2017 22:46:40
techno_rock
огромная благодарочка
Re: Помогите написать элементарную программу на AVR
Добавлено: Вс авг 27, 2017 07:49:26
Ivanoff-iv
я оптопары предлагал, но считаю их громоздкими.
провода на кнопки идут напрямую с разрядов экранчика (или взяты до ключей): на диодах в нужный момент появляется импульс и наша задача его пропустить (или не пропустить), транз пнп здесь уместннее всего (схему потом нарисую).
Добавлено after 1 hour 13 minutes 22 seconds:
если актуально: вот схема (извини за криволапость) сопротивления по 10 кОм. прошивка отличается от прошивки на оптопарах тем что кнопка "нажата" при 0в на тиньке и "отпущена" при 5в. (инверсно).
если будешь делать так, прошивку сделаю.
Re: Помогите написать элементарную программу на AVR
Добавлено: Вс авг 27, 2017 11:50:01
АлександрЛ
Оптопара работать будет, даже если там "клавиатурная матрица", транзисторные ключи- только если кнопки коммутируются "на землю" или "на плюс питания", в "матрице" они работать не будут.
"громоздко" для довольно большого, внутри, корпуса- это не страшно..
https://www.chipdip.ru/product/tlp280-4-gb-tp-f счетверённая оптопара в СМД- корпусе..

Re: Помогите написать элементарную программу на AVR
Добавлено: Вс авг 27, 2017 12:18:26
Ivanoff-iv
там клавиатурная матрица, но транзисторы работать будут. если боитесь что ток обратно пойдёт, дак там диоды стоят (в базу дойдёт только до резистора).
ну да ладно...
Re: Помогите написать элементарную программу на AVR
Добавлено: Вс авг 27, 2017 12:57:27
mickbell
Я не стал ввязываться, но тоже предложил бы оптопары - как наиболее универсальное решение, также отвязывающее "чужую" железяку от своей гальванически - на всякий случай. Сразу же желательно привыкать делать как надо. Причём в этом случае - нечто вроде CPC1008, чтобы уж совсем универсально.

Re: Помогите написать элементарную программу на AVR
Добавлено: Вс авг 27, 2017 13:57:05
АлександрЛ
Ну, по сравнкнию с 11-ти рублёвыми оптопарами это твёрдотельное реле- "немного перебор"
https://www.chipdip.ru/product0/8606420442
В данном случае (имхо) будет достаточно и РС817
Re: Помогите написать элементарную программу на AVR
Добавлено: Вс авг 27, 2017 14:42:17
mickbell
Я знаю. Предложил наиболее универсальное, не зависящее от полярности. Кстати, указанными опторелюшками я коммутировал даже аналоговые сигналы, вполне успешно.
Re: Помогите написать элементарную программу на AVR
Добавлено: Вс авг 27, 2017 15:29:22
roman.com
mickbell писал(а):тоже предложил бы оптопары - как наиболее универсальное решение, также отвязывающее "чужую" железяку от своей гальванически - на всякий случай.
Что от чего отвязать?

Вы вопрос читали?
techno_rock писал(а):после подачи питания на контроллер через небольшой промежуток времени (5с) замыкать на долю секунды 1 вывод на массу (он включит устройство)...................
Вы собрались делать отдельную железяку с отдельным питанием? ))
Берём attiny13 и подключаем выводы к кнопкам заводского МК. Когда attiny13 формирует логический "0" - это равносильно замыканию кнопки на массу (он включит устройство)... и т.д.
Питание attiny13 берём от заводского МК (3...5V). Какая ещё галваническая развязка?
Какие ещё оптопары... питание у двух МК (3...5V) общее... ))
Re: Помогите написать элементарную программу на AVR
Добавлено: Вс авг 27, 2017 16:56:25
techno_rock
вот вы развязали тут дискуссию. давайте я поставлю схему с оптопарами, и отпишу какой будет результат.
Добавлено after 3 minutes 18 seconds:
Вы собрались делать отдельную железяку с отдельным питанием? ))
питание будет браться от основного в увлажнителе
Re: Помогите написать элементарную программу на AVR
Добавлено: Вс авг 27, 2017 19:19:04
Ivanoff-iv
Роман, просто замыкать на массу не выйдет — в схеме идёт сканирование (поочередный опрос состояния) кнопок (обычно это делают для экономии ног МК: одни и те же ноги используются и как источник сканирующего клавиатуру сигнала и зажигают нужный разряд на индикаторе) можно генерировать сигнал выхода соответственно сканирующему сигналу и состоянию нашей виртуальной клавиатуры— тогда можно обойтись вообще без ключей - в схеме добавится 1МК и 1 диод для развязки с имеющимися кнопками.