Как стать автором
Обновить

Трёхкомандное ДУ с программой из 290 16-битных слов

Время на прочтение 2 мин
Количество просмотров 6.1K
Всего голосов 38: ↑37 и ↓1 +36
Комментарии 24

Комментарии 24

Вообще-то, там должны быть NPN-транзисторы, включённые эмиттерами к общему проводу, но у автора работает и так.

В корне не правильное решение, которое в других условиях (например, реле на 12в) не заработает. Это эмиттерный повторитель. На реле будет такое напряжение, как и на базе. Так как у автора и контроллер и реле питаются от 5в, то «прокатило». В текущей схеме нужно реле перенести на сторону коллектора.
Совершенно верно! Очень плохое решение. Надо использовать классику:
habrastorage.org/webt/lr/c2/xx/lrc2xxo7fi-vzlelv09xhottedm.jpeg
Тогда всё надёжно работать будет.
Я люблю для таких целей использовать «цифровые» транзисторы PDTC143E. Там внутри уже есть резисторы в цепи базы.
Совершенно неверно! Вполне рабочее решение. Не обязательно использовать классику.
И это все от того, что на базе будет такое же напряжение, как и на реле, а не наоборот. Другое дело, что при закрытом ключе возможно срабатывание через защитные диоды, но к эмитерному повторителю это не имеет никакого отношения.
Решение рабочее, спору нет, но имеет недостатки, о которых AlNi89 уже написал.
Плюсов по сравнению с «классикой» я лично не вижу, хотя может кто-то про них напишет, будет интересно.
А никаких плюсов лично я не вижу, более того, логика в данном случае инверсная, включаемся нулем, сплошные минусы, но работать будет.
Единственно, почему оно раньше применялось — выходной ток «нуля» ТТЛ был намного сильнее выходного тока «единицы» и для транзисторов с низким КУ это было существенно.
На схеме, что я привёл, включение осуществляется лог. 1. Как раз логично всё:
1 — реле включено
0 — реле выключено.
Я и не спорю, что прямое управление естественнее, просто раньше я светодиоды вешал с питания на ногу и включал нулем, потому что тока единицы 155 серии просто не хватало для нормального свечения, вот и у многих вошло в привычку инверсное управление, а оно не очевидно.
Да я понимаю. Товарищ у меня очень долго программировал 51-е контроллеры, так до сих пор и на пиках светодиод нулём включает. Ему так привычнее :-)
Хм, а я бы повесил мосфеты — 7002 и далее. Потребление на свои нужды никакое, токи и напряжения тянут приличные, иную нагрузку можно вешать и безо всяких реле. А для боль-мене силовых решений вплоть до коммутации переменки 220 доктором прописаны симисторные оптопары. Опять же и развязка, и контакты не подгорят через пару лет активного дергания индуктивной нагрузкой типа движка…

Я всегда думала, что ключи на NPN управляются логической "1", а на PNP логическим "0". Но есть маленький нюанс, PNP надо включать между плюсом источника питания и нагрузкой, а NPN между нагрузкой и общим проводом.

Всё верно, автор как раз нюанс с PNP и не учёл, поэтому и получил не ключ, а эмиттерный повторитель (который в силу стечения обстоятельств вполне себе выполняет роль ключа)
Заголовок очень желтушный получился :)
Да я очень хорошо знаю этот контроллер и порой муки с экономией каждого байтика, дабы впихнуть туда весь необходимый функционал, но автор в своей заметке, просто указал размер байткода для его компилятора, ну ещё этим можно потыкать противников асма и любителей высокоуровневых языков, мол «повторите» :)
НЛО прилетело и опубликовало эту надпись здесь
Ну мы то тут о МК с маленьким объёмом флэши, а в случае с тинькой13 этот объём мизерный :)
Подобные схемы/решения не редко рождаются в горячих спорах на форумах — когда человек заявляет что вот проша и она никак не лезет в тини13 и поэтому он применил тини2313, да много лишних ног но зато 2кило ром :)
Мне почему то кажется, что под правильно настроенным С компилятором размер выполняемого кода будет не намного больше (надо попробовать в выходные).
Всё зависит от компилятора. С атмеловскими контроллерами я работал давно, поэтому тут точно сказать не могу. Но вот для микрочиповских PIC16 их же компилятор XC8 генерит вполне мизерный код. Мы поэтому даже под самые мелкие процессоры пишем код на Си. Конечно, задачи разные могут быть, но однозначно говорить, что для мелких МК нужен именно ассемблер всё таки не совсем верно. Всегда сравнивать надо.

P.S. Да, я знаю, что Microchip купил Atmel :-) Просто под терминами «атмеловские» и «микрочиповские» я понимаю различные семейства МК.
если в схеме автор допускает такое, программу можно не смотреть. думаю там не лучше решение.
Не факт. Тут недавно было про виртуозного стоматолога, оказавшегося плохим фотографом.
Какая разница, лучшее это решение из всех возможных вариантов, или нет, если работает (допустим) согласно требованиям?
Требование заявлено одно — сделать ДУ на мелком контроллере. То что ключи сделаны странно — так для реле на 5В и современных транзисторов действительно нет разницы.
хм, у меня на pic12f508 сделан rgb-контроллер с пультом ду на 13 состояний
получилось 298 х 12бит команд
Решил в целях обучения повторить проект. Подскажите дураку что не так сделал. В Atmel Studio скомпилировал программу, залил в Аттунку а она у меня только «блинк» на PB0 делает.
Так и должно быть в режиме обучения, она ждет от вас команд, чтобы запомнить их.
Спасибо за оперативный ответ, тогда куплю ИК~приёмник и попробую что-нибудь записать. Ещё раз спасибо.
Подцепил ИК, тоже самое, только когда идёт команда, на PB0 уровень состояния замирает, т.е. если светодиод в момент нажатия кнопки пульта зажёгся, то и горит пока не отпустишь кнопку. Как кнопку отпустил опять моргает.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории