CraftDuino v2.0
  • - это CraftDuino - наш вариант полностью Arduino-совместимой платы.
  • CraftDuino - настоящий конструктор, для очень быстрого прототипирования и реализации идей.
  • Любая возможность автоматизировать что-то с лёгкостью реализуется с CraftDuino!
Просто добавьте CraftDuino!

Простой мотор-шилд для 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
Использование этого «шилда»

Ссылки:
arduino.cc/en/Main/ArduinoMotorShield
blushingboy.net/p/motorShieldV3/
  • +3
  • 5 июля 2011, 07:22
  • noonv

Комментарии (20)

RSS свернуть / развернуть
+
0
Спасибо)
Постараюсь поскорее развести плату. Выложу потом)
avatar

Tickat

  • 5 июля 2011, 15:39
комментарий был удален

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

nimbus2k

  • 6 июля 2011, 13:38
+
0
Я вот и мучаюсь с односторонней под ЛУТ, это ад)
Та себе выходит
avatar

Tickat

  • 6 июля 2011, 18:37
+
0
Доброго времени суток!
Хотел узнать нет ли для arduino/freeduino специализированного шилда для управления 8-10 сервомашинками большего тока (2А), задача такая с помощью arduino uno управлять 8-10 мощными серво (такими как SpringRC SM-S4315R) от отдельного источника тока (одноканального блока питания на 26А и 5.5 В) Искал различные готовые решения для arduino не нашёл, возможно кто-нибудь сталкивался с подобной проблемой и магическим образом осталась рабочая схема?
avatar

Hibissscus

  • 21 сентября 2011, 15:00
+
0
Так в чём проблема? Питание есть, берём протошилд, напаиваем 8-10 3-пиновых кусочков PLS40, — это будут разъёмы для ваших серв.
Соединяем земли этих серворазъёмов, соединяем их же питания и всё это заводим на болтовой клемник.
Сюда будет подаваться питание с вашего блока.
Земли соединяем с землёй дуины, сигнальные линии серворазъёмов на наиболее удобные вам пины дуины.
Всё. Проблем управлять с дуины сильно- или слаботочными сервами нет, если есть питание для них.
Если выводов на дуине не хватает — robocraft.ru/blog/arduino/541.html
Про подключение серв(где у них питание, земля и сигнал) — тут.
avatar

Zoltberg

  • 23 сентября 2011, 15:22
+
0
Спасибо за столь подробный, развёрнутый ответ! Буду пробовать!
avatar

Hibissscus

  • 23 сентября 2011, 19:31
+
0
Ктонибуть собирал?
avatar

blu

  • 11 января 2012, 16:46
+
0
Угу, даже работало=)
avatar

Zoltberg

  • 12 января 2012, 08:19
+
0
Собрал, работает)))) только непонятно почему при отключении питания моторов они продолжают работать(не в полную), собрано все правильно(перепроверено 4 раза).
avatar

blu

  • 27 января 2012, 19:06
+
0
Хмм… а питания (силовое и логическое) нигде не замыкют?
На какой микросхеме делали? L293D или с внешними диодами?
Куда диоды подключали?
avatar

Zoltberg

  • 28 января 2012, 12:52
+
0
По питанию васе норм собирал на л293е, не понял вопроса про диоды
avatar

blu

  • 28 января 2012, 12:55
+
0
прям по схеме собрано, диоды защитные подключены к земле и к питанию моторов?
avatar

Zoltberg

  • 28 января 2012, 15:25
+
0
Ну да, земля везде общая(логика и силовое)
avatar

blu

  • 28 января 2012, 15:29
+
0
Не понимаю, зачем два раза инвертировать IN. Можно ли IN1 брать не с выхода второго инвертора, а со входа первого?
avatar

wall

  • 24 марта 2013, 23:11
+
0
Ой, в смысле IN1 как на схеме, а IN2 сразу со входа инвертора.
avatar

wall

  • 25 марта 2013, 05:42
+
0
можно
avatar

admin

  • 25 марта 2013, 10:20
+
0
скажите, вместо 74HC00 подойдет ли микросхема км155ла3?
avatar

Begemot911

  • 14 апреля 2013, 19:10
+
0
Да, вполне.
avatar

Zoltberg

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

timur

  • 13 июня 2014, 22:08

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.