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

Управление биполярным шаговым двигателем. Часть 2. Схема с контроллером PIC12F629 и драйвером L293D

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

Про то, как подключать обмотки и в каком порядке на них подавать сигналы, я писать не буду, это было подробно рассмотрено в первой части статьи, вместо этого давайте рассмотрим, чем, с точки зрения управления, драйвер L293D отличается от рассмотренного нами ранее драйвера LB1838 и как нужно переделать схему и программу управления, чтобы получить точно такое же устройство, только на драйвере L293D.

Итак, в чём же отличия? Во-первых, — в обозначениях. У LB1838 выходы обозначены как OUT, а у L293D они обозначены буквой Y, у LB1838 управляющие входные сигналы обозначены как IN, а у L293D они обозначены буквой A. Во-вторых, — в количестве управляющих сигналов. У LD293D для каждого выхода есть свой управляющий входной сигнал, а у LB1838 один входной сигнал управлял сразу двумя выходами. В остальном, никаких принципиальных отличий с точки зрения управления, в этих драйверах нет.

Далее, давайте посмотрим на таблицу истинности драйвера L293D и нарисуем для него диаграммы входных управляющих сигналов для одного полного цикла вращения, когда на выходах последовательно появляются все 4 комбинации подключения обмоток (также, как мы это делали для LB1838):

Таблица истинности для L293D (состояние выходов в зависимости от состояния входов):

1,2EN 1A 1Y (a) 2A 2Y (b) 3,4EN 3A 3Y (c) 4A 4Y (d)
High High + High + High High + High +
High Low Low High Low Low
Low X откл X откл Low X откл X откл

Если внимательно посмотреть на диаграмму слева, то можно увидеть, что сигнал 1A можно сделать одинаковым с сигналом 3A, а сигнал 2A — одинаковым с сигналом 4A. В этом случае наша диаграмма упроститься и будет выглядеть так:

На последней диаграмме нарисовано, какие комбинации уровней сигналов должны быть на управляющих входах драйвера (1,2EN, 3,4EN, 1A, 2A, 3A, 4A) для того, что бы получить соответствующие комбинации подключения обмоток двигателя, а также стрелками указан порядок смены этих комбинаций для обеспечения вращения в нужную сторону.

Читайте также:  Схема инвертора для двигателя постоянного тока

Теперь внимательно смотрим на последнюю диаграмму и сравниваем её с соответствующей диаграммой для драйвера LB1838. Мы видим, что в случае с L293 нам придётся использовать для управления драйвером 4 ноги контроллера вместо трёх, как это было в случае с LB1838, соответственно схему и программу для контроллера придётся переделать.

Начнём со схемы. Схема для L293 будет выглядеть так:

Элементы можно взять те же самые, что и для схемы с LB1838:

  1. R1..R2 = 1 кОм
  2. С1, С2 = 0,1 мкФ — керамика
  3. С3 = 470 мкФ х 16В — электролит

Далее давайте подумаем, что нужно будет изменить в программе микроконтроллера, чтобы наше устройство с L293D работало аналогично девайсу на LB1838 (который мы рассматривали в первой части). А, собственно говоря, практически ничего. Что у нас изменилось? Только количество ног и их подключение (нога GP4 у нас теперь будет использоваться для управления драйвером, а КН2 мы подключим к ноге GP3). Соответственно, в программе мы должны сделать следующие три вещи:

    настроить GP4 на выход. Для этого нужно заменить в программе вот эту строчку:

movlw b’00110000′ ; настройка выходов (GP4,GP5 — входы)

movlw b’00101000′ ; настройка выходов (GP3,GP5 — входы)

Источник

Обзор 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» и устанавливаем библиотеку.

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

Источник

Motor Shield L293D. Подключение к Arduino и управление четырьмя двигателями или двумя сервомоторами.

Всем привет! Сегодня я покажу вам как подключить Motor Shield L293D к Arduino.

Для этого понадобятся:

1. Arduino Uno или Mega с USB кабелем

2. Компьютер с установленной Arduino IDE и драйверами для плат

3. Четыре двигателя с припаянными проводами или два серво(можно использовать и один)

4. Motor Shield L293D

5. Бокс и два литий-ионных аккумулятора на 3.7V(в качестве источника питания). Можно использовать и другой источник питания.

Описание Motor Shield L293D

Motor Shield L293D оснащён двумя драйверами двигателей L293D, поэтому он может управлять четырьмя двигателями, или двумя двигателями и одним серво, или двумя серво, или двумя шаговыми двигателями. Также этот шилд имеет контакты для внешнего питания, что часто бывает полезно в проектах.

Нужно учесть, что для управления двигателями драйвер использует пины платы с 3 по 8 и 12 , а для управлением серво — пины 9 и 10. Поэтому к ним лучше ничего не подключать. Я пробовал в проекте танка использовать сразу L293D и L298N, подключенный к контактам управления драйвером L293D. Из-за того, что L298N и L293D использовали общие контакты управления часто срабатывали не те двигатели.

Читайте также:  Как починить двигатель роя в punch club

Для работы с L293D нужно установить библиотеку AFmotor. Скачать её можно отсюда . Извлеките содержимое скачанного архива в папку libraries.

Обратите внимание! Нельзя подавать на EXT_PWR напряжение больше 12V при наличии перемычки PWR!

Подключение четырёх моторов к Motor Shield L293D и скетч

Схема подключения четырёх моторов и источника питания к L293D представлена ниже:

Теперь напишем скетч для четырёх моторов. Вместо звёздочки перед include нужно вставить «решётку». Если мотор будет вращаться не в ту сторону нужно поменять контакты в клеммнике местами.

void setup() <
motor1.setSpeed(255); // задаем максимальную скорость первого мотора
motor1.run(RELEASE); // останавливаем первый мотор
motor2.setSpeed(255); // задаем максимальную скорость второго мотора
motor2.run(RELEASE); // останавливаем второй мотор
motor3.setSpeed(255);//задаем максимальную скорость 3-го мотора
motor3.run(RELEASE); // останавливаем третий мотор
m otor4.setSpeed(255);//задаем максимальную скорость 4-го мотора
motor4.run(RELEASE); // останавливаем четвёртый мотор
>

void loop() <
motor1.run(FORWARD); // вращаем первый мотор вперёд
motor2.run(FORWARD); // вращаем второй мотор вперёд
motor1.setSpeed(255); // задаем макс. скорость первого мотора
motor2.setSpeed(255); // задаем макс. скорость второго мотора
motor3.run(FORWARD); // вращаем третий мотор вперёд
motor4.run(FORWARD); // вращаем четвёртый мотор вперёд
motor3.setSpeed(255); // задаем макс. скорость третьего мотора
motor4.setSpeed(255); // задаем макс. скорость четвёртого мотора
delay(5000); // задержка 5 секунд
m otor1.run(RELEASE); // останавливаем первый мотор
motor2.run(RELEASE); // останавливаем второй мотор
motor3.run(RELEASE); // останавливаем третий мотор
motor4.run(RELEASE); // останавливаем четвёртый мотор
motor1.run(BACKWARD); // вращаем первый мотор назад
motor2.run(BACKWARD); // вращаем второй мотор назад
motor1.setSpeed(255); // задаем макс. скорость первого мотора
motor2.setSpeed(255); // задаем макс. скорость второго мотора
m otor3.run(BACKWARD); // вращаем третий мотор назад
motor4.run(BACKWARD); // вращаем четвёртый мотор назад
motor3.setSpeed(255); // задаем макс. скорость третьего мотора
motor4.setSpeed(255); // задаем макс. скорость четвёртого мотора
delay(5000); // задержка 5 секунд
motor1.run(RELEASE); // останавливаем первый мотор
motor2.run(RELEASE); // останавливаем второй мотор
motor3.run(RELEASE); // останавливаем третий мотор
motor4.run(RELEASE); // останавливаем четвёртый мотор

Подключение сервомоторов к Motor Shield L293D и скетч

Подключать сервомоторы нужно к контактам, которые выделены на фото ниже. Соединяем так:

Красный провод(Сервомотор) — плюс(Motor Shield L293D)

Коричневый провод(Сервомотор) — минус(Motor Shield L293D)

Оранжевый провод(Сервомотор) — S(Motor Shield L293D)

Как я уже писал для управления сервомоторами используются пины 9 и 10 платы Arduino. Приступим к написанию скетча для двух сервомоторов. Вместо звёздочки перед include нужно вставить «решётку».

Источник

Adblock
detector