L293 схема подключения шагового двигателя - Авто журнал
23 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Подключение Motor Shield L293D к Arduino

На повестке дня – подключение L293D к Arduino, знакомство с техническими характеристиками модуля, его практическим применением и простейшими схемами сборки. Для начала разъясним, для чего предназначены подобные устройства. Они служат спусковым, так называемым соединительным звеном между платами Ардуино и непосредственно двигателями постоянного тока.

Если вы всерьез занимаетесь электроникой, робототехникой, созданием различных автоматизированных проектов и «умных систем», Motor Shield поможет вам эффективно реализовать поставленные конструкторские задачи. С данным драйвером вы легко подключите дополнительное оборудование: сервоприводы, шаговые биполярные ∕ коллекторные DC двигатели, моторы и прочее.

В продолжение темы рассмотрим параметры платы:

  • 2 H-моста (для управления сразу двумя двигателями) + возможность подключения 2-х сервоприводов (5 Вольт), 4-х моторов, 2-х шаговых двигателей (6 — 12 Вольт);
  • напряжение: 4,5-36 V;
  • max (пиковый) ток: до 1,2 А;
  • выходной (рабочий) ток: 600 мА;
  • диапазон рабочих температур: -40°C . 150°C;
  • количество выходов: 4.

Кроме того, модуль совместим с такими популярными микроконтроллерами как Arduino Mega, Nano и Uno (в дальнейшем мы рассмотрим именно последний вариант), а также Diecimila, Duemilanove.

Распиновка выводов показана на скриншоте:

Принципиальная схема подключения одного двигателя показана ниже:

Для ее реализации мы использовали такие аппаратные компоненты:

  1. Управляющая платформа Аруино Uno
  2. Модуль расширения L293D
  3. Макетная (монтажная) плата
  4. 1 двигатель
  5. Соединительные провода

Для полноценной работы и тестирования сборки необходима специализированная библиотека — AFMotor.h. Ее следует инсталлировать в папку «libraries» (среда программирования Arduino IDE). Не забывайте перезагрузить ПО!
https://github.com/adafruit/Adafruit-Motor-Shield-library

В сети Интернет можно найти большое количество прошивок. Пример одного из подобных скетчей (тестируем один мотор):
Проверяем два коллекторных электромотора. Сборка, соответственно, меняется:

Программные коды прописываем так:
При желании можно еще больше усложнить и модернизировать схему, а также поработать с другими опциями — увеличить скорость до максимального уровня, затем полностью снизить вплоть до остановки (сначала одного, потом второго двигателя).

К слову, при функционировании моторов среда Ардуино может частенько перезапускаться. Не стоит этого бояться — перезагрузка связана с тем, что двигателям необходимы более «высокие» токи при моменте старта и торможении.

Шаговые двигатели

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

Шаговый двигатель (ШД) является бесколлекторным двигателем постоянного тока. Как и другие бесколлекторные двигатели, ШД высоконадежен и при надлежащей эксплуатации имеет длительный срок службы. ШД нашли широкое применение в области, где требуется высокая точность перемещений или скорости. Наглядными примерами устройств с ШД могут служить принтеры, факсы и копировальные машины, а также более сложные устройства: станки с ЧПУ (числовым программным управлением), фрезерные, гравировальные машины и т. д.

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

угол поворота ротора ШД зависит от числа поданных на двигатель пусковых импульсов;

максимальный момент на валу ШД развивается в режиме останова (в случае, если обмотки двигателя запитаны);

высокая точность позиционирования и повторяемости — качественные ШД имеют точность не хуже 2,5 % от величины шага, при этом данная ошибка не накапливается при последующих шагах;

ШД может быстро стартовать, останавливаться и выполнять реверс;

высокая надежность двигателя обусловлена отсутствием щеток, при этом срок службы двигателя ограничивается только лишь сроком службы подшипников;

четкая взаимосвязь угла поворота ротора от количества входных импульсов (в штатных режимах работы) позволяет выполнять позиционирование без применения обратной связи;

ШД обеспечивает получение сверхнизких скоростей вращения вала для нагрузки, подведенной непосредственно к валу двигателя, без использования редуктора;

работают ШД в широком диапазоне скоростей, поскольку скорость напрямую зависит от количества входных импульсов.

Недостатки шаговых двигателей:

ШД обладает явлением резонанса;

возможен вариант выпадения двигателя из синхронизации с последующей потерей информации о положении при работе цепи обратной связи;

при стандартных схемах подключения количество потребляемой энергии не уменьшается при отсутствии нагрузки;

сложность управления при работе на высоких скоростях (на самом деле эффективная работа шагового двигателя на высоких скоростях возможна);

низкая удельная мощность шагового привода;

для обеспечения эффективного управления шаговым двигателем требуется очень сложная схема управления.

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

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

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

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

Arduino-библиотека Stepper

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

Набор функций у нее следующий:

Функция Stepper()

Функция Stepper() создает новый объект класса Stepper, привязанный к одному шаговому двигателю, подключенному к контроллеру Arduino. Конструктор следует использовать при объявлении переменной класса Stepper, обычно в самом начале — вне setup() и loop(). Количество параметров зависит от способа подключения — 2 или 4 выхода используются для управления двигателем.

Stepper(steps, pin1, pin2) Stepper(steps, pin1, pin2, pin3, pin4)

steps — количество шагов в полном обороте используемого двигателя. Если в документации к двигателю указан угол одного шага, то следует разделить 360° на этот угол, что даст нам искомое количество шагов;

Читать еще:  Что такое сухая мойка для двигателя

pin1, pin2, pin3, pin4 — выходы Arduino для подключения шагового двигателя. Возвращаемое значение: новый экземпляр объекта класса Stepper.

Функция setSpeed(rpm)

Функция setSpeed(rpm) устанавливает скорость вращения в оборотах в минуту. Эта функция не заставляет двигатель вращаться, а лишь устанавливает скорость вращения, которая будет использована при вызове функции step().

Параметр: rpm — скорость, на которой будет производиться вращение шагового двигателя, выражается в оборотах в минуту.

Возвращаемого значения нет.

Функция step(steps)

Функция step(steps) вращает шаговый двигатель на определенное количество шагов на скорости, заданной функцией setSpeed(). Эта функция блокирующая, т. е. она ожидает окончания вращения двигателя, прежде чем передать управление в следующую строку кода. Во избежание длительной блокировки выполнения кода скетча, управление необходимо организовывать так, чтобы скорость была высокая, а за один вызов step() делалось всего несколько шагов.

Параметр: steps — количество шагов:

• положительное число — вызывает вращение в одну сторону;

• отрицательное — в противоположную. Возвращаемого значения нет.

Пример использования библиотеки Stepper

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

  • Sketch code

Sketch code

const int stepsPerRevolution=200; // количество шагов в полном обороте двигателя

int minangle=15; // угол поворота на 1 нажатие (шаг камеры) struct KEYS // структура для хранения статусов клавиш

int button; // нажатая кнопка

long millisbutton[7]; // millis для button

// опрос клавиатуры valbutton=analogRead(A0); if(valbutton

// обработка нажатия кнопки int buttonClick1(int val)

Шаговый двигатель и Arduino — основы

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

У них есть возможность точного позиционирования ротора в заданном положении, вращаться в обе стороны, по одному «шагу», но при этом могут и вращаться с заданной частотой.

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

Необходимые элементы

Для данного проекта нам понадобятся:

1 шаговый двигатель с напряжением питания 5 вольт

1 монтажная плата

1 Arduino Uno R3 (или другая плата от Arduino)

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

У нашего шагового двигателя 5 выходов. Мы будем использовать обе коннекторы по обе стороны L293D. Подключать придется все это долго достаточно мучительно.

Схема подключения приведена на рисунке выше. Обратите внимание, что один из выходов шагового двигателя никуда не подключен.

Скетч Arduino

В программе используется серийный монитор. После запуска, откройте его и укажите количество «шагов». Для начала попробуйте значение близкое к 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’. После этого подается сигнал на двигатель для его вращения на указанное количество шагов.

Полезная информация о шаговых двигателях

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

Питая катушки в определенном порядке, двигатель начинает вращать ротор. Количество шагов, которое имеет двигатель на 360 градусов поворота фактически равняется количеству зубцов.

Двигатель, который мы используем имеет 48 шагов, но в нем также установлен редуктор 1:16. В результате мы получаем 16×48=768 шагов.

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

Так как мы используем чип L293D, который обеспечивает реверс тока в цепи, общее подключение нам не нужно. Мы можем спокойно запитывать полностью каждую катушку.

С чем еще можно поэкспериментировать

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

Установите, например, меньшее значение (5), загрузите скетч и обратите внимание, что шаговик начал вращаться медленнее.

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

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

Читать еще:  Ford ecosport какой двигатель

От усилителя тока к драйверу L293.

Внимание: в тексте используются анимированные изображения.

Внутренняя жизнь L293.

В прошлой части статьи мы ознакомились со схемой усилителя тока и описали его работу. Если внимательней рассмотреть такой двухтактный усилитель тока, то можно заметить, что его выход оказывается как бы подключён то к плюсу источника питания, то к минусу, в зависимости от уровня входного напряжения. То есть усилитель тока работает как переключатель, как электронный ключ! В таком случае так и говорят: «усилитель работает в ключевом режиме».

Теперь, чтобы легче понять логику работы L293, заменим её внутреннюю схему на условные блоки в виде электронных ключей или переключателей (Анимация 1-а). Если на таком ключе управляющий сигнал имеет низкий уровень напряжения ( «0» ), то ключ находятся в одном положении, а если высокий уровень ( «1» ) — то в другом положении.
Внутри микросхемы управляющие сигналы таких электронных ключей соединены определённым образом между собой или выведены наружу к ножкам микросхемы. А чтобы электронный ключ находился в каком то определённом положении, его управляющий электрод может быть притянут к GND (Анимация 1-б) или подтянут к напряжению питания Vs (Анимация 1-в). Резистор в таком случае имеет сопротивление в несколько десятков килоОм и расположен внутри самой микросхемы.
Соединив два электронных ключа (переключатель и замыкатель) как показано на анимации 2, получим часть внутренней схемы L293. На этой анимации показана зависимость состояния ротора мотора от входных сигналов INPUT и ENABLE:

Поняв принцип построения схем на основе электронных ключей, будет нетрудно разобраться и в схеме на рис. 1. Там изображена внутренняя структура L293 с использованием блоков электронных ключей. Такое упрощение позволяет легче понять взаимосвязи сигналов. Следует напомнить, что в нашем случае все управляющие ножки L293 подтянуты через внутренние резисторы к Vss, то есть к плюсу питания логической части микросхемы.

Для примера проследим цепь от входа «INPUT2» до выхода «OUTPUT2».
До тех пор, пока на ножке INPUT2 присутствует сигнал высокого уровня, электронный ключ К3 будет находиться в указанном на схеме положении. В таком положении К3 может пропускать через себя ток «силового» источника Vs. Этот ток будет течь и через замкнутый ключ К4, но только если на ножке ENABLE1,2 будет высокий уровень. Таким образом ножка микросхемы OUTPUT2 оказывается как бы подключённой к положительному полюсу питания Vs. Если теперь на вход INPUT2 подать низкий уровень, то ключ К3 переключится в противоположное положение и ножка OUTPUT2 через ключи К4 и К3 окажется замкнутой на GND. По схеме нетрудно проследить, что при подаче низкого уровня напряжения на ножку ENABLE1,2 то оба ключа К2 и К4 одновременно перейдут в разомкнутое состояние. При разомкнутых ключах К2 и К4 выходные ножки OUTPUT1 и OUTPUT2 будут отключены от всей схемы, то есть будут «висеть в воздухе» и не зависеть от сигналов на ножках INPUT1 и/или INPUT2.
Аналогично устроены и остальные каналы усилителей тока микросхемы L293. Но нужно помнить, что управление всех четырёх усилителей тока разделено попарно ножками ENABLE1,2 и ENABLE3,4.

Почти так устроены все представители семейства микросхем L293. Отличия могут быть в корпусном исполнении, электрических характеристиках, наличием дополнительных ножек или внутренних элементов (защитных диодов).
Вот краткий перечень типов L293 с указанием основных отличий:

L293Bне имеет встроенных защитных диодов, максимальный ток равен 1000 мА
L293Dимеет встроенные защитные диоды, но максимальный ток равен 600 мА
L293Eне имеет встроенных защитных диодов, но имеются отдельные выводы SENSE
L293DWPустаревший тип в 28-ми выводном корпусе

Как видите, об отличиях L293 можно судить непосредственно по буквенному индексу в обозначении. А более точно можно прочесть в даташите на конкретную микросхему. И всегда лучше брать даташит именно фирмы-производителя имеющейся L293, для этого можно свериться с логотипом фирмы на корпусе микросхемы (изображения логотипов).

Все представители L293 имеют так называемую «тепловую защиту». Если температура корпуса микросхемы превышает границу около 70°C, то эта защита отключает все выходные ножки OUTPUT1 .. OUTPUT4, тем самым предотвращая дальнейший нагрев в случае перегрузки. Но помните, от короткого замыкания ножек OUTPUT1 — OUTPUT4 на GND или Vs она не спасает!

Кстати, отечественная электропромышленность (например НТЦ СИТ в Брянске) тоже выпускает аналоги микросхем L293, так KP1128KT3 является аналогом L293B, а KP1128KT4 — аналогом L293D. Причём отечественные аналоги могут быть несколько дешевле зарубежных, не уступая им по электрическим параметрам.

Эксперименты с мотором.

Коллекторный моторчик постоянного тока — наиболее увлекательный в экспериментах тип нагрузки, ведь моторчик изменяет направление вращения при изменении полярности проходящего тока! Поэтому и далее мы будем использовать моторчики для объяснений.

Если моторчик подпаять одним выводом к одному полюсу питания, например к минусу — GND (Рис. 2), то для вращения ему ещё потребуется «плюс» питания. Именно этот второй вывод моторчика мы будем включать и выключать с помощью одного из усилителей тока из микросхемы L293. Тогда что бы вал моторчика начал вращаться, на вход усилителя необходимо подать высокий уровень напряжения, «1». Не забываем при этом подать разрешающий сигнал на соответствующий вход ENABLE (тут не показан).

Теперь подключим моторчик одним выводом к плюсу питания, а вторым к выводу OUTPUT (Рис. 3). Теперь для вращения моторчика второй вывод необходимо включать на «минус». Это включение мы будем производить подачей низкого уровня напряжения «0» на вход INPUT. И опять не забываем подать «1» на нужный вход ENABLE.

Читать еще:  Что такое двигатель фиг

Внимательно посмотрим на оба рисунка 2 и 3: для вращения моторчика в одном случае нам необходимо подать высокий уровень («1»), в другом случае — низкий уровень («0»). То есть независимо от исходного сигнала мы можем решить, в каком случае включать мотор.

В этих двух схемах моторчик будет крутиться только в одну сторону. А как же нам заставить его вращаться то в одну, то в другую сторону, ведь для этого нужно менять его выводы местами?!
В таких случаях применяют мостовую схему включения драйверов:

Почему такая схема называется мостовой — видно из картинки (Рис. 4), моторчик включён между двумя выходами двух драйверов, как между берегами рек. Для такой схемы есть более распространённый термин — «Н-мост».
Включив моторчик по такой схеме, можно управлять направлением его вращения, подавая разные комбинации на входы INPUT1 и INPUT2.
Теперь вспомним, что выходы OUTPUT1 и OUTPUT2 могут быть полностью отключены подачей сигнала «0» на вход ENABLE1,2. Значит ножкой ENABLE1,2, можно просто включать и выключать моторчик, независимо от сигналов на ножках INPUT1 и INPUT2. А если включать и выключать очень быстро, то моторчик будет вращаться с разной скоростью, в зависимости от времени «включено» и «выключено». Так мы получим управление скоростью вращения моторчика: подавая ШИМ-сигнал на ножку ENABLE1,2. А такой ШИМ-сигнал можно формировать, например, с помощью микроконтроллера.

На рис. 5 изображена схема подключения двух моторов к L293D, которая позволяет задавать не только направление вращения моторов (то есть возможность «реверса»), но и управлять их скоростью вращения с помощью ШИМ.

Используя схему по рис. 5 можно управлять и шаговым мотором. Для этого на место моторчиков подключаются две обмотки шагового мотора. Подавая соответствующие сигналы на ножки INPUT1, INPUT2, INPUT3, INPUT4 заставляют вращаться ротор шаговика.

L293 = Драйвер. Электрические характеристики L293.

Открыв даташит на микросхему L293 в первых же строках можно встретить название «драйвер» (в даташитах отечественных микросхем применяется слово «коммутатор»).

Драйвер (электронное устройство) — электрическая схема, формирующая электрический сигнал с определёнными параметрами (ток, напряжение).
Например: драйвер мотора, светодиодный драйвер, драйвер интерфейса.

Обычно говорят, что L293 — это «драйвер моторов», но это не совсем точно. Микросхема L293 может использоваться и с любым другим потребителями: реле, электромагнитами, мощными светодиодами, лампами, или даже как предусилительное устройство для более мощных транзисторов. То есть L293 — это «универсальный драйвер», а что к ней подключить зависит от фантазии мастера.

Не смотря на то, что все электрические параметры микросхемы L293 описаны в даташитах, приведём основные из них ещё раз и с небольшими пояснениями.

Первым делом опишем напряжения питания, подаваемое на ножки Vs и Vss.
Напряжение на ножке Vss используется для питания внутренней логики микросхемы L293. Этим напряжением питаются все усилители тока, логические элементы и блок термозащиты микросхемы L293. Напряжение Vss может находиться в пределах от 4,5 до 7 Вольт (см. Рис 6). Нужно при этом помнить, что сигналы на всех управляющих ножках (INPUT, ENABLE) не должны превышать напряжения питания логической части Vss!

На ножку Vs подаётся питание, которое будет подводиться к подключённой нагрузке, это так называемое «силовое», или «тяговое» питание. Уровень этого напряжения Vs всегда всегда должен быть больше или равен напряжению Vss: Vs >= Vss , то есть нельзя допускать, что бы «силовое» напряжение было меньше чем «логическое»!
Подача питания на выводы Vs и Vss может осуществляться и от одного источника. В этом случае питание будет общее для логической части и силовой.
Ток потребления нагрузки от любого выхода (OUTPUT1 — OUTPUT4) может быть максимум 600 миллиампер. Допускается импульсный ток в 1 Ампер на длительность не более 100 микросекунд и паузой между импульсами 200 мкс.

Очень часто забывают учитывать максимальную рассеиваемую мощность микросхем. Напомним, допустимая рассеиваемая мощность L293 в корпусе PDIP-16 (рис. 7) — около 2 Ватт. То есть уже на стадии проектирования конструкции с L293 необходимо следить, что бы общая мощность, потребляемая подключённой нагрузкой, не превышала двух Ватт! Общая потребляемая мощность описывается формулой:

Подставив в эту формулу напряжение питания силовой части (Vs) и токи подключённых нагрузок к каждому выходу, то получим формулу для вычисления общей мощности:

Превышение общей мощности даже немного выше 2-ух Ватт ведёт к перегреву L293! Для лучшего охлаждения микросхемы иногда используют небольшой радиатор, прикреплённый к корпусу микросхемы. Так же небольшим радиатором может служить полоска медной фольги печатной платы. Но эти меры позволяют лишь незначительно разгрузить температурный режим микросхемы. Иногда для увеличения мощности включают две L293 параллельно. В любом случае, если расчётная мощность превышает 3 Ватта, то лучше выбрать другую микросхему драйвера, например L298.

Смелых и Удачных Экспериментов.

Дополнения и файлы:

  • URL: Драйвер управления L293 — краткое описание L293.
  • URL: изображения логотипов — список логотипов производителей полупроводников.
  • URL: НТЦ СИТ в Брянске — производитель отечественных микросхем.
  • myURL: УСИЛЕННЫЙ ДРАЙВЕР ДВИГАТЕЛЯ НА ОСНОВЕ L293D — Сдваивание микросхем L293D. Радиатор для L293D.
  • myURL: ШИМ и PWM — что это такое? — знакомство с ШИМ (Широтно-Импульсной Модуляцией).
0 0 голоса
Рейтинг статьи
Ссылка на основную публикацию