Ecoparcovka.ru

ЭкоПарковка СТО
12 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Шаговый двигатель на l293 своими руками

Motor Shield L293D для Arduino своими руками (DIY)

Опубликовано 27.02.2013 22:39:00

Занимаясь роботостроением нам рано или поздно придется задуматься о сборке платы для управления двигателями. В случае если вам нужна фиксированная скорость моторов, без потери мощности, то лучше собрать реле шилд. В случае, если вам нужна плавная регулировка скорости вращения моторов и вы готовы ограничиться максимально потребляемым током мотора в 600мА, тогда читаем эту статью и собираем плату управления на широко известной микросхеме L293D. Встречайте Motor shield L293D.

Плат управления на базе L293D собрано уже немало, но односторонней платы для домашнего изготовления я так и не нашел.

Посмотрев даташит на последнюю микруху, можно понять, что она включает в себя 4 логических элемента И-НЕ. Возможна замена 74HC00 на советские аналоги К155ЛАЗ К155ЛА8. Принцип его работы можно понять, посмотрев на рисунок приведенный ниже (в зависимости от подаваемых сигналов на входы а & b мы получаем значение на выходе с). На рисунке также приведена «таблица истинности» для данного элемента.

Смыслом использования микросхемы 74HC00 в нашем устройстве является возможность менять единицу и ноль местами на выводах Output1 и Output2 микросхемы L292D, реверсируя этим направление вращения мотора, используя для этого только один вывод контроллера.

Направление вращения моторов мы задали, но без подачи питания на вывод Enable1 двигатель вращаться не будет. Подачей ШИМ сигнала именно на этот вывод мы и будем управлять скоростью вращения мотора. Более подробно про принцип работы L293D можно почитать здесь.

Управление 1ым мотором ( пин 4 – задаем направление вращения, пин 3 ( ШИМ ATmega 168,328 ) разрешение вращения и регулировка скорости )

Управление 2ым мотором ( пин 7 – задаем направление вращения, пин 5 ( ШИМ ATmega 168,328 ) разрешение вращения и регулировка скорости )

В завершение вышесказанного, прикрепляю принципиальную схему (кликабельна).

Для управления скоростью моторов, выбраны оставшиеся ШИМ выводы ( 3, 5 ), которые, правда, доступны только на ATmega168, 328.

На мой взгляд, при использовании Мега8 лучше потерять возможность регулирования скорости движения, зато у вас будут доступны 3 свободных вывода ( ШИМ на ATMEGA8 ( 9, 10, 11 )) для управления сервоприводами, да и 8ую на 328ую можно заменить в любой момент, получив этим доступ к регулировке скорости.

В программе используется серийный монитор. После запуска, откройте его и укажите количество «шагов». Для начала попробуйте значение близкое к 500. В результате ваш двигатель должен повернуться примерно на 360 градусов. Введите -500 и ротор отработает поворот в обратном направлении.

Пример — шаговый двигатель

Stepper motor(512, in1Pin, in2Pin, in3Pin, in4Pin);

// эта строка для Arduino Leonardo. Генерируется задержка в серийном мониторе

int steps = Serial.parseInt();

Как вы уже могли догадаться, существует специальная библиотека в Arduino IDE, которая поддерживает работу с шаговыми двигателями. Благодаря этому использование двигателей становится предельно простым.

После подключения библиотеки ‘Stepper’ инициализируются управляющие пины от ‘in1’ до ‘in4’.

Для объявления данных пинов с использованием библиотеки шаговых двигателей, используется следующая команда:

Stepper motor(768, in1Pin, in2Pin, in3Pin, in4Pin);

Первый параметр — количество ‘шагов’, которые сделает шаговый двигатель для одного полного оборота. Для точного позиционирования, можно вращать ротор двигателя с дискретностью в один шаг.

После этого налаживается связь по серийному протоколу и в результате плата Arduino может получать команды из окна серийного монитора в Arduino IDE.

Следующая команда устанавливает скорость вращения ротора шагового двигателя:

Функция ‘loop’ очень простая. Функция ожидает, пока придет команда из серийного монитора и преобразовывает текст в виде числового значения в переменную типа int с помощью ‘parseInt’. После этого подается сигнал на двигатель для его вращения на указанное количество шагов.

Выходной драйвер ULN2003 для микроконтроллеров. Описание, подключение, datasheet на русском

ULN2003 — это универсальная интегральная микросхема, состоящая из 7 идентичных и независимых драйверов, которые позволяют управлять с помощью микроконтроллера реле, небольшим двигателем постоянного тока, шаговым двигателем, низковольтными лампами или светодиодной лентой.

Тестер транзисторов / ESR-метр / генератор

Многофункциональный прибор для проверки транзисторов, диодов, тиристоров…

Каждый драйвер состоит из двух транзисторов подключенных в конфигурации Дарлингтона. Пара Дарлингтона, разработанная Сидни Дарлингтоном в 1953 году, состоит в каскадом соединении двух биполярных транзисторов, в результате чего получается очень высокий коэффициент усиления, равный произведению коэффициента усиления каждого из двух транзисторов. Благодаря этому мы можем управлять нагрузками определенной мощности с очень малыми входными токами.

Пара Дарлингтона не свободна от некоторых недостатков, которые мы рассмотрим далее. Транзистор NPN универсального назначения открывается, когда мы подаем на его базу напряжение около 0,6 В. Если мы используем небольшой ток, мы можем довести его до насыщения с очень низким напряжением коллектор-эмиттер (VCE), например, в случае BC337, это между 0,2 В и 0,5 В.

Читать еще:  3 литровый двигатель как по расходу бензина

В паре Дарлингтона входное напряжение будет в два раза больше, чем 0,6 В, потому что базовые напряжения обоих транзисторов складываются, как мы это можем видеть на рисунке. Также падение напряжения на выходном транзисторе будет больше, потому что это будет сумма напряжения насыщения первого транзистора + напряжение база-эмиттер выходного транзистора.

В любом случае, эти недостатки не являются существенными, поскольку в целом выходы микроконтроллера составляют 3,3 В или 5 В, что значительно превышает порог срабатывания ULN2003.

На предыдущем рисунке мы видим внутреннюю схему одного из каналов драйвера ULN2003. Здесь мы видим входной резистор на 2,7кОм, и еще два дополнительных резистора которые улучшают характеристики драйвера. Входное сопротивление каждого канала освобождает нас от установки внешних резисторов при подключении ULN2003 к микроконтроллеру.

Во внутренней схеме мы также можем видеть защитный диод, подключенный к коллектору выходного транзистора. Данный диод предназначен для защиты транзистора от ЭДС самоиндукции, возникающей в момент отключения индуктивной нагрузки (реле или двигателей). Чтобы этот диод работал, необходимо подключить вывод 9 (COM) к положительному выводу нагрузки (см. Рисунок с примером подключения).

Коэффициент усиления каждого драйвера больше 500, поэтому для получения максимального выходного тока достаточно на вход подать ток менее 1 мА.

На рисунке мы видим ULN2003, подключенный к микроконтроллеру (это могут быть PIC, Atmel, Arduino, Raspberry PI) и с различными нагрузками (двигатели постоянного тока, светодиодная лента, реле и т. д.).

В верхней части примера (подключение двигателя) мы видим, что для получения большего выходного тока можно параллельно соединять более одного канала. Вывод (+ V) – это напряжение, необходимое для питания силовой части и не связано с питанием микроконтроллера. Необходимо только, чтобы масса их была общей.

Микросхема ULN2003 является частью семейства подобных драйверов: ULN2001, ULN2002, ULN2003, ULN2004, которые очень похожи. Различие в первую очередь в значении входного сопротивления для согласования с различной логикой.

В настоящее время микросхема ULN2003 является наиболее популярной, поскольку она хорошо работает с управляющими напряжениями 5 В (TTL) и 3,3 В (LTTL). Существует вариант с 8 каналами вместо 7 – это ULN2803. Из-за восьмого канала корпус имеет 18 выводов. В остальном он подобен ULN2003.

(167,0 KiB, скачано: 651)

Блок питания 0…30 В / 3A

Набор для сборки регулируемого блока питания…

Технические параметры Motor shield l293d.

  • Напряжение питания двигателей: 5 — 36 В
  • Напряжение питания платы: 5 В
  • Допустимый ток нагрузки: 600 мА на канал
  • Максимальный (пиковый) ток нагрузки: 1,2 А на канал
  • Размер платы: 70х54х20 мм

Общие сведения о Motor shield L293D.

Motor shield построен на драйвере L293D, состоящим из двух H-мост (H-Bridge), с помощью которых можно управлять двумя постоянными двигателями или одним шаговым двигателем. Каждый канал рассчитан на 0.6 А с пиком 1.2 А. Так как на Motor shield установлено две микросхемы L293D, можно управлять сразу четырьмя двигателями постоянного тока, это позволяет использовать данный shield в разработке робот платформ. Так же, на shield установлен сдвиговый регистр 74HC595, который расширяет 4 цифровых контакта Arduino до 8 управляющих контактов двух микросхем L293D. Познакомиться подробнее со сдвиговым регистром 74HC595 можно в уроке: Урок 2 — Подключаем сдвиговый регистр 74НС595 к Arduino. «Бегущие» огни.

Питание Motor shield L293D:

  • Общий источник питания для Arduino и двигателей (максимальное напряжение 12 В) — можно использовать один источник питания, используется разъем DC на Arduino UNO или 2-х контактный разъем на Motor shield «EXT_PWR», так же необходимо установить перемычку «PWR».
  • Раздельный источник питания — рекомендуется отдельно питать Arduino и shield, для этого Arduino подключаем к USB, а двигатели подключаем к источнику постоянного тока, используя разъем «EXT_PWR». Необходимо убрать перемычку «PWR».

Внимание! Нельзя подавать питание на «EXT_PWR» выше 12 В, при установленной перемычке «PWR».

Выходные контакты двух микросхем L293D выведены по бокам shield с помощью 5-ти контактных винтовых клемм, а именно М1 , М2 , М3 и М4. К этим контактам подключается четыре двигателя постоянного тока и два шаговых двигателя.

Так же, на shield выведено два 3-х контактных разъема, к которым можно подключить два сервопривода.

Контакты, которые не используются Motor shield L293D:

Так как шилд устанавливается на Arduino UNO, есть контакты, которые не используются Motor shield и к ним можно подключить дополнительные компоненты. Это цифровые контакты D2 и D13 и аналоговые контакты A0-A5. Кроме этого на шилде можно распаять пины A0-A5 и подключаться к ним прямо на shield.

Подключение к Motor shield L293D двигателя постоянного тока.

Для этого нам понадобятся следующие комплектующие:

Схема подключения двигателя постоянного тока к Motor shield.

Устанавливаем shield сверху Arduino, далее подключаем источник питания к клеммам «EXT_PWR», в примере используется источник питания на 12 В. Теперь подключаем двигатели к клеммам M1, M2, M3 или M4. В примере подключаем 2 двигателя постоянного тока к М4, М3.

Читать еще:  Шум при работе двигателя опель астра

Установка библиотеки «AFMotor.h»

Для удобной работы с Motor shield L293D, необходимо установить библиотеку «AFMotor.h». Заходим в Arduino IDE, открываем вкладку «Скетч -> Подключить библиотеку -> Управлять библиотеками…»

Откроется новое окно «Менеджер библиотек», в окне поиска вводим «Adafruit Motor Shield» и устанавливаем библиотеку.

Скетч управления двигателем постоянного тока с помощью Motor shield L293D.

Скетч начинается с подключения библиотеки «AFMotor.h», затем создаем объект «AF_DCMotor motor4(4)» в котором указываем номер порта двигателя (M1, M2, M3, M4). Для подключения второго двигателя «AF_DCMotor motor3(3)» и так далее.

В блоке «setup» мы вызываем функции «setSpeed(speed)» в которой задаем скорость двигателя, от 0 до 255 и функцию «motor.run» направление вращения двигателя, где «FORWARD» — вперед, «BACKWARD» — назад, «RELEASE» — остановка.

Подключение сервопривода к Motor shield L293D.

Для этого нам понадобятся следующие комплектующие:

С помощью shield L293D можно управлять сервоприводами. На shield выведены 16-разрядные контакты Arduino 9 и 10, питание для сервоприводов подается от 5 вольтового стабилизатора Arduino, поэтому подключать дополнительное питание в разъем «EXT_PWR» не нужно.

Схема подключения сервопривода SG90S к Motor shield.

Скетч управления сервопривода SG90S.

Так как используется стандартный вывод PWM, нет смысла использовать дополнительную библиотеку, воспользуемся стандартной библиотекой Servo.

Подключение к Motor shield L293D шагового двигателя NEMO17.

Для этого нам понадобятся следующие комплектующие:

В данном примере подключим шаговый двигатель NEMA 17, который рассчитан на 12 В (и выше) и делает 200 шагов на оборот. Итак, подключите шаговый двигатель к клеммам M3 и M4. Затем подключите внешний источник питания 12 В к разъему «EXT_PWR».

Схема подключения шагового двигателя Nemo17 к Motor shield L293D.

Скетч управления шаговым двигателем Nemo17 с помощью Motor shield L293D.

Используем ту же библиотеку, что и в первом примере.

Описание кода:

Скетч начинается с подключением библиотеки «AFMotor.h». Во второй строке создаем объект «AF_Stepper motor(48, 2)» где указываем количество шагов на оборот и номер порта.

В разделе настройки, функцией «motor.setSpeed(10);» устанавливает скорость двигателя, где «10» количество оборотов в минуту.

В разделе цикла программы, мы просто вызываем две функции для управления скоростью и направлением вращения двигателя.

  • «100» — это сколько шагов, необходимо сделать.
  • «FORWARD»и «BACKWARD»— направление вращение двигателем.
  • «SINGLE» — активация одной обмотки двигателя для совершения шага.
  • «DOUBLE» — активация двух обмоток двигателя, что обеспечивает больший вращающий момент
  • «INTERLEAVE» — применение ШИМ для управления шаговым двигателем двигателем.

Вывод по использованию Motor shield L293D.

Для начинающего Ардуинщика Motor shield L293D позволит реализовать роботизированную модель. Но реализовать более серьёзные проекты не получится. Так как свободных pin для подключения остается не много. Что еще мне не нравится в данном shield это то, что пины для shield заняты всегда, даже если мы подключили 2 двигателя постоянного тока. А другая пара подключения свободна, пины Arduino все равно будут заняты, и мы не сможем их использовать. Это наглядный пример того, что использования данного шилда не является универсальным и гибким решением.

Появились вопросы или предложения, не стесняйся, пиши в комментарии!

Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.

Всем Пока-Пока.

И до встречи в следующем уроке.

Понравилась статья? Поделитесь ею с друзьями:

Управление шаговым двигателем

В самом общем виде управление шаговым двигателем сводится к задаче отработать определенное число шагов в нужном направлении и с нужной скоростью.

Схема подключения шагового двигателя

На блок управления ШД (драйвер) подаются сигналы «сделать шаг» и «задать направление». Сигналы представляют собой импульсы 5 В. Такие импульсы можно получить от микроконтроллера Arduino. Для шагового двигателя необходимо отдельное питание — выводы шагового двигателя напрямую к выводам Arduino подключать нельзя. Подключение ШД осуществляется через Motor Shild либо с помощью микросхемы драйвера двигателей — например, L293. Схема подключения представлена на рисунке.

Драйвер двигателей — L293D, общее описание

Мотор-шильды на основе микросхем L293 и L298N являются самыми популярными драйверами для управления моторами постоянного тока. На фото выше данная плата позволяет подключить 4 DC мотора (либо 2 шаговых двигателя) и два серводвигателя. Помимо этого ещё на борту платы есть несколько аналоговых входов, что позволяет подключить несколько ультразвуковых датчиков. Это очень удобно.

Почему? Потому что таким образом мы можем завязать независимую логику управления трансмиссией робота чисто на Ардуино. Потом передавать необходимые данные в верхние инстанции по каналам связи. основным целевым мозгом является одноплатный компьютер. Неважно, будет ли это Raspberry Pi, или Orange Pi, или Banana Pi.

Читать еще:  Что такое коллекторный двигатель для модели

Я закончил своё лирическое отступление, продолжаем дальше:

В составе этой платы имеются две микросхемы L293D (1). L-ка позволяет управлять слаботочными двигателями с током потребления до 600 мА на канал. Для подключения двигателей используются зажимные клеммы (2).

Использование двух микросхем L293D позволяет одновременно подключить 4 моторчика постоянного тока либо 2 шаговых мотора, либо два моторчика и шаговый. Для управления на прямую выводами L-ки (IN1, IN2, IN3, IN4),отвечающими за выбор направления вращения, необходимо 4 вывода, а для двух микросхем целых 8.

Для уменьшения количества управляющих выводов в игру вступает сдвиговый регистр 74НС595 (3). Благодаря регистру управление сводится с 8-ми пинов к 4-ем.

Так же на шильдике имеются шесть пинов (4) для подключения двух сервоприводов. (Кстати очень полезная и нужная штука, если понадобиться прицепить манипулятор с двумя степенями свободы).

Питание силовой части производится либо от внешнего клеммника (6) либо замыканием джампера (5) ( питание от клеммника моторов +M соединяется с выводом VinArduino).

При замкнутом джампере напряжение для объединенного питания должно лежать в пределах от 6 до 12 Вольт.

Обзор motor shield l293d

Автор: Сергей · Опубликовано 22.05.2020 · Обновлено 04.08.2020

Если задумались спроектировать робота, первым делом необходимо научится управлять различными двигателями, это может быть и двигатель постоянного тока или сервопривод. Один из самых простых и недорогих способов это воспользоваться Motor Shield на базе L293D, который можно легко установить на плату Arduino UNO.

Технические параметры

► Напряжение питания двигателей: 5 — 36 В
► Напряжение питания платы: 5 В
► Допустимый ток нагрузки: 600 мА на канал
► Максимальный (пиковый) ток нагрузки: 1,2 А на канал
► Размер платы: 70х54х20 мм

Общие сведения о L293D

Motor shield построен на микросхеме L293D, состоящая из двух H-мост (H-Bridge), с помощью которых можно управлять двумя постоянными двигателями или одним шаговым двигателем. Каждый канал рассчитан на 0.6 А с пиком 1.2 А. Так как на shield установлено две микросхемы L293D, можно управлять сразу четырьмя двигателями постоянного тока, это позволяет использовать данный shield в разработке робот платформ. Так же, на shield установлена микросхема 74HC595, которая расширяет 4 цифровых контакта Arduino до 8 управляющих контактов двух микросхем L293D.

Питание Motor shield L293D:
Общий источник питания для Arduino и двигателей (максимальное напряжение 12 В) — можно использовать один источник питания, используется разъем DC на Arduino UNO или 2-х контактный разъем на shield «EXT_PWR«, так же необходимо установить перемычку «PWR«.
Раздельный источник питания — рекомендуется отдельно питать Arduino и shield, для этого Arduino подключаем к USB, а двигатели подключаем к источнику постоянного тока, используя разъем » EXT_PWR». Необходимо убрать перемычку перемычку «PWR«.

Внимание! Нельзя подавать питание на «EXT_PWR» выше 12 В при установленной перемычке «PWR».

Выходные контакты двух микросхем L293D выведены по бокам shield с помощью 5-ти контактных винтовых клемм, а именно М1 , М2 , М3 и М4. К этим контактам подключается четыре двигателя постоянного тока и два шаговых двигателя.

Так же, на shield выведен два 3-х контактных разъема, которым можно подключить два сервопривода.

Неиспользуемые контакты:
Цифровые контакты D2 и D13 и аналоговые контакты A0-A5 не используются.

Подключение к Arduino двигателя постоянного тока с помощью L293D

Необходимые детали:
Arduino UNO R3 x 1 шт.
Блок питания 12В, 2А x 1 шт.
Кабель USB 2.0 A-B x 1 шт.
Двигатель постоянного тока x 21шт.
Motor shield L293D

Подключение:
Устанавливаем shield сверху Arduino, далее подключаем источник питания к клеммам «EXT_PWR«, в примере используется источник питания на 9 В. Теперь подключаем двигатели к клеммам M1, M2, M3 или M4. В примере подключаем к М4.

Установка библиотеки:
Для удобной работы с Motor shield L293D необходимо установить библиотеку «AFMotor.h». Заходим в Arduino IDE, открываем вкладку «Скетч» -> «Подключить библиотеку» и нажимает «Управлять библиотеками…«

Откроется новое окно «Менеджер библиотек«, в окне поиска вводим «Adafruit Motor Shield» и устанавливаем библиотеку.

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

  • Документация на двигатель 28STH45-0674A (pdf)
  • Управление шаговым двигателем при помощи драйвера шагового двигателя
  • Управление шаговым двигателем при помощи Motor Shield

Драйвер для простого управления шаговым двигателем

Универсальная монтажная втулка-переходник для крепления на вал микромотора

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector