Простой мотор-шилд для Arduino/CraftDuino


Некогда, мы уже научились управлять моторчиками, используя микросхему 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”»

  1. А как насчет 2х микросхем L293DNE на один шилд, и чтоб было совместимо с библиотеками?
    Да и платку в одностороннем варианте под ЛУТ? Цены б не было

  2. Доброго времени суток!
    Хотел узнать нет ли для 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
      Про подключение серв(где у них питание, земля и сигнал) — тут.

    • Спасибо за столь подробный, развёрнутый ответ! Буду пробовать!

  3. Собрал, работает)))) только непонятно почему при отключении питания моторов они продолжают работать(не в полную), собрано все правильно(перепроверено 4 раза).

    • Хмм… а питания (силовое и логическое) нигде не замыкют?
      На какой микросхеме делали? L293D или с внешними диодами?
      Куда диоды подключали?

    • прям по схеме собрано, диоды защитные подключены к земле и к питанию моторов?

  4. Здравствуйте! У меня такой вопрос, может немного дурацкий.
    На один моторчик идет 3 канала — ENABLE, INPUT1, INPUT2. Можно ли уменьшить до 2-х каналов таким образом (ШИМ не нужен):
    ENABLE подключаем к +5В всегда, INPUT1 и INPUT2 — к портам Arduino;
    Крутим вперед: INPUT1 — HIGH, INPUT2 — LOW;
    Крутим назад: INPUT1 — LOW, INPUT2 — HIGH;
    Стоим: INPUT1 — LOW, INPUT2 — LOW;

Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна конкурс манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение