Управление 16-ю вибромоторчиками.

Имем ATmega 328p (16 MHz) и 16 вибромоторчиков на 3 вольта.
Задача: иметь возможность включать и выключать каждый из вибромоторчиков. Иметь возможность включать их одновременно (или так, чтобы это выглядело, будто бы они работают одновременно. )
Вопрос: Как можно реализовать задачу и сэкономить 16 пинов МК, да ещё и не сжечь их нагрузкой?

Мой вариант: Ставим демультплексор 1:16 и через него управляем полевыми транзисторами, которые питают вибромоторчики. Можем управлять каждым отдельно и включая их по очереди с большой скоростью, имитировать одновременную работу всех моторчиков.
На решение уходит 5 пинов (4 для адреса моторчика и 1 управляющий) .

Какие ещё есть решения?
5 года назад от JustineTrego

2 Ответы



0 голосов
Моторчики - не светодиоды, у них инерция есть, поэтому принцип динамического переключения тут не годится.

Регистр с защёлкой + транзисторные ключи. Параллельно каждому моторчику - диод в обратной полярности, чтобы не спалить транзисторы импульсами ЭДС самоиндукции.
5 года назад от SophiaHoke44
0 голосов
Есть на материнских платах такая хрень как мультиплексор на мосфетах, там чистых выходов 12. Подключаейшь любой порт и ногодрыгом указываешь какой включить, какой выключить. Если тебе от контроллера больше ничего не надо, так и attiny13 подойдет для этой цели, а то как из пушки по воробьям)
5 года назад от Adams

Связанные вопросы

2 ответов
4 года назад от олег кучин