Добавить в корзинуПозвонить
Найти в Дзене
Electronics && Oleg Gorshkov

Управляемый мультивибратор на tiny13 + cd4051 + cd4026

Здравствуйте! Иногда в процессе отладки различных схем требуется подать определённое количество импульсов, например, чтобы сымитировать кнопку без дребезга или концевик. Поэтому зародилась идея создать управляемый мультивибратор. Конечно создать управляемый мультивибратор на ардуино или любом микроконтроллере с нужным количеством ног очень просто. Но я решил использовать attiny13, скорее не из практических соображений, а из давнего желания отработать взаимодействие различных микросхем с микроконтроллером. Итак помимо самого tiny13 используем: аналоговый мультиплексор/демультиплексор cd4051 (аналог K561КП2); десятичный счётчик со встроенным дешифратором cd4026. В момент включения или при перезагрузке микроконтроллер передает сигнал сброса для счетчика (15 вывод cd4026) через канал X4 мультиплексора cd4051. Затем через каналы X0-X3 мультиплексора микроконтроллер опрашивает пины 1-4 дип переключателя, этими пинами устанавливается нужное количество импульсов от 0 до 15, через каналы X6-X

Здравствуйте!

Иногда в процессе отладки различных схем требуется подать определённое количество импульсов, например, чтобы сымитировать кнопку без дребезга или концевик. Поэтому зародилась идея создать управляемый мультивибратор.

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

Итак помимо самого tiny13 используем: аналоговый мультиплексор/демультиплексор cd4051 (аналог K561КП2); десятичный счётчик со встроенным дешифратором cd4026.

схема принципиальная
схема принципиальная

В момент включения или при перезагрузке микроконтроллер передает сигнал сброса для счетчика (15 вывод cd4026) через канал X4 мультиплексора cd4051. Затем через каналы X0-X3 мультиплексора микроконтроллер опрашивает пины 1-4 дип переключателя, этими пинами устанавливается нужное количество импульсов от 0 до 15, через каналы X6-X7 мультиплексора считываются пины 7-8 переключателя, которыми определяется длительность импульсов (1000мс – 5мс). После чего импульсы выдаются с пина PB4 микроконтроллера на контрольный светодиод, вход счетчика cd4026, и на выходной разъем. Таким образом счетчик производит подсчет импульсов и их отображение на семисегментном индикаторе. Следует понимать, что так как счетчик индикатор используется только один, то в случае задачи импульсов более 9, при десятом импульсе индикатор обнулится, и будет считать по второму кругу, то есть если мы задали 15 импульсов, то индикатор покажет 5, но это неудобство для меня приемлемо, лучше, чем ставить еще один счетчик и индикатор.

Повторный запуск серии импульсов производится нажатием на кнопку, присоединенную к пину reset микроконтроллера, то есть в данном случае команды выполняются не из основного цикла, а из «int main(void)».

Для выбора нужного канала на мультиплексоре служат пины ABC, подключенные соответственно к пинам PB0-PB2 микроконтроллера.

Пин 6 переключателя позволяет перевести устройство в режим работы обычного мультивибратора, то есть выдав заданное число импульсов, оно будет выдавать их из бесконечного цикла, таким образом получится генератор прямоугольных импульсов, с фиксированным числом частот. Пин 5 переключателя не задействован.

Таким образом алгоритм установки параметров сводится к табличке, размещённой ниже.

-2

Прошивку написал в Atmel studio 6.2, без заморочек, как некоторые спецы скажут на «быдло коде», но скрины исходника покажу, может кому пригодится……

-3
код
код

Смонтировал схему на макетной плате, для питания используется разъем micro USB, для выхода сигнала, а также для питания настраиваемых устройств использовал обычную гребёнку 2,5 мм под dupont. И конечно же всё укрепил термоклеем.

-5
-6

Да, на схеме не обозначен фильтрующий конденсатор 100 мкФ, параллельно питанию устройства, и блокировочные конденсаторы 100 нФ, параллельно питанию каждой микросхемы, максимально близко от самих микросхем. Их желательно поставить, для стабильной работы.

Думаю вряд ли кто-то захочет повторять проект досконально, но возможно у кого-то возникнут идеи под свои задачи.

Видео

Спасибо за внимание, подписывайтесь на канал!