Некогда, мы уже научились управлять моторчиками, используя микросхему L293D.
Однако, согласитесь – отдавать целых три порта всего на один моторчик – крайне расточительно!
Здесь нам поможет простенький Мотор-шилд (Motor-shield) 🙂
Вот схема простого мотор-шилда:
IC1 - L293D(E) IC2 – 74HC00 Резисторы R1, R2, R3, R4 - 100к Конденсаторы C1, C2, C3, C4, C6 - 0.1мкф Электролиты C5, C7 - 10-100мкф Диоды D1 – D8 - 1N4007
Как видно – для L293E добавлены защитные диоды (если используется L293D – их можно выкинуть).
Главный нюанс этой схемы заключается в использовании инвертора IC2 на микросхеме 74HC00 (состоит из 4 логических элементов И-НЕ).
Рассмотрим, как происходит управление одним мотором – на схеме выводы для двиг2.
Для управления движком №2 используюся порты 7 и 9(PWM), соответственно для движка №1 используются порты 8 и 10(PWM)
Видим, что PWM-порты на входы ENABLE драйвера L293 подключаются напрямую.
А порты 7 и 8 идут через инвертор. Это сделано с простой целью:
Если на пине 7 будет логическая 1 то на выходе IC2.1 будет 0, который подаётся на INPUT1 драйвера, затем этот 0 инвертируется IC2.2, на выходе которого будет 1, который подаётся на INPUT2 драйвера.
Теперь, если подать сигнал на вход ENABLE1, то моторчик начнёт вращаться.
А если нам потребуется вращать моторчик в обратную сторону – нужно будет, всего лишь, установить в порт 7 логический 0, что приведёт к 1 на выходе IC2.1 (и соответственно INPUT1) и 0 на выходе IC2.2 (и, соответственно, INPUT2).
Аналогично и для двигателя №1.
Т.о. добавление простого инвертора даёт возможность полноценного управления моторчиком с помощью всего двух портов!
По теме
L-Motor Shield
Использование этого «шилда»
Ссылки
http://arduino.cc/en/Main/ArduinoMotorShield
http://blushingboy.net/p/motorShieldV3/
0 комментариев на «“Простой мотор-шилд для Arduino/CraftDuino”»
Спасибо)
Постараюсь поскорее развести плату. Выложу потом)
А как насчет 2х микросхем L293DNE на один шилд, и чтоб было совместимо с библиотеками?
А как насчет 2х микросхем L293DNE на один шилд, и чтоб было совместимо с библиотеками?
Да и платку в одностороннем варианте под ЛУТ? Цены б не было
Я вот и мучаюсь с односторонней под ЛУТ, это ад)
Та себе выходит
Доброго времени суток!
Хотел узнать нет ли для arduino/freeduino специализированного шилда для управления 8-10 сервомашинками большего тока (2А), задача такая с помощью arduino uno управлять 8-10 мощными серво (такими как SpringRC SM-S4315R) от отдельного источника тока (одноканального блока питания на 26А и 5.5 В) Искал различные готовые решения для arduino не нашёл, возможно кто-нибудь сталкивался с подобной проблемой и магическим образом осталась рабочая схема?
Так в чём проблема? Питание есть, берёмпротошилд , напаиваем 8-10 3-пиновых кусочков PLS40 , — это будут разъёмы для ваших серв.болтовой клемник .robocraft.ru/blog/arduino/541.html тут .
Соединяем земли этих серворазъёмов, соединяем их же питания и всё это заводим на
Сюда будет подаваться питание с вашего блока.
Земли соединяем с землёй дуины, сигнальные линии серворазъёмов на наиболее удобные вам пины дуины.
Всё. Проблем управлять с дуины сильно- или слаботочными сервами нет, если есть питание для них.
Если выводов на дуине не хватает —
Про подключение серв(где у них питание, земля и сигнал) —
Спасибо за столь подробный, развёрнутый ответ! Буду пробовать!
Ктонибуть собирал?
Угу, дажеработало =)
Собрал, работает)))) только непонятно почему при отключении питания моторов они продолжают работать(не в полную), собрано все правильно(перепроверено 4 раза).
Хмм… а питания (силовое и логическое) нигде не замыкют?
На какой микросхеме делали? L293D или с внешними диодами?
Куда диоды подключали?
По питанию васе норм собирал на л293е, не понял вопроса про диоды
прям по схеме собрано, диоды защитные подключены к земле и к питанию моторов?
Ну да, земля везде общая(логика и силовое)
Не понимаю, зачем два раза инвертировать IN. Можно ли IN1 брать не с выхода второго инвертора, а со входа первого?
Ой, в смысле IN1 как на схеме, а IN2 сразу со входа инвертора.
можно
скажите, вместо 74HC00 подойдет ли микросхема км155ла3?
Да, вполне.
Здравствуйте! У меня такой вопрос, может немного дурацкий.
На один моторчик идет 3 канала — ENABLE, INPUT1, INPUT2. Можно ли уменьшить до 2-х каналов таким образом (ШИМ не нужен):
ENABLE подключаем к +5В всегда, INPUT1 и INPUT2 — к портам Arduino;
Крутим вперед: INPUT1 — HIGH, INPUT2 — LOW;
Крутим назад: INPUT1 — LOW, INPUT2 — HIGH;
Стоим: INPUT1 — LOW, INPUT2 — LOW;