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

Arduino, шаговый двигатель 28-BYJ48 и драйвер ULN2003

Шаговый двигатель — это мотор, который управляется несколькими электромагнитными катушками.

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

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

В данной статье мы рассмотрим работу униполярного шагового двигателя 28-BYJ48 с драйвером ULN2003.

Униполярные шаговые двигатели имеют пять или шесть контактов для подключения и четыре электромагнитные катушки в корпусе (если быть более точными, то две катушки, разделенные на четыре). Центральные контакты катушек соединены вместе и используются для подачи питания на двигатель. Эти шаговые моторы называются униполярными, потому-что питание всегда подается на один из этих полюсов.

Спецификация и драйвер шагового двигателя

Существуют разные модели драйверов (контроллеров) шаговых двигателей. Среди них можно выделить самые популярные в DIY разработках на базе Arduino: L293, ULN2003, A3967SLB.

Как правило, шаговый двигатель 28-BYJ48 используют в паре с драйвером ULN2003.

Спецификацию шагового двигателя 28-BYJ48 на английском языке вы можете скачать здесь. Краткие выдержки основных технических характеристик приведены ниже:

  • Напряжение питания: 5 В (постоянный ток);
  • Количество фаз: 4;
  • Количество шагов: 64;
  • Угол поврота на один шаг: 5.625 градуса
  • Частота: 100 Герц;
  • Частота холостого хода по часовой стрелке: > 600 Герц;
  • Частота холостого хода против часовой стрелки: > 1000 Герц;
  • Крутящий момент > 34.3 миллиньютон на метр;
  • Сопротивление вращению: 600-1200 грамм на сантиметр;
  • Класс элетробезопасности: A;

Внешний вид и схемы подключения ULN2003 приведены на изображениях ниже

Примечание. Если вы захотите использовать плату L293 вместо ULN2003, красный контакт подключать не надо.

Необходимые компоненты

  1. Микроконтроллер Arduino.
  2. Шаговый двигатель BYJ48 5В.
  3. Драйвер шагового двигателя ULN2003.
  4. Коннекторы.
  5. Источник питания 5v — необязательно.

Скетч для Arduino

В Arduino IDE есть встроенная библиотека для управления шаговыми двигателями. После подключения шагового двигателя, ULN2003 и Arduino, вы можете загрузить скетч из категории Examples и .

На этом этапе возникают определенные нюансы:

У этого двигателя передаточное отношение 1:64, а угол поворота 5.625, то есть у него 4096 шагов.

Шаг = Количество шагов на один поворот * передаточное отношение.

Шаги= (360/5.625)*64″Передаточное отношение» = 64 * 64 =4096. Это значение надо учесть в скетче Arduino.

А вот угол поворота для шаговых двигателей от adafruit равен 7.5 градусов, а передаточное отношение 1:16, так что количество шагов за 1 полный оборот вала равно:

Шаги за один оборот = 360 / 7.5 = 48.

Шаги = 48 * 16 = 768

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

Модуль драйвера шагового двигателя ULN2003 подключается к Arduino контактами IN1 — IN4 к D8 — D11 соответственно.

Для подачи питания на ваш мотор, рекомендуется использовать внешний источник питания 5V с силой тока 500mA минимум. Не питайте двигатель непосредственно от контакта 5V на плате Arduino.

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

Когда вы загрузите скетч на Arduino, шаговый двигатель будет вращаться в одном направлении с помощью функции:

То есть, вам надо указать в параметрах количество шагов для поворота ротора вала.

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

Читайте также:  Давление в цилиндре дизельного двигателя при сгорании топлива

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

Измененный код для Arduino

Окончательная версия скетча для шагового двигателя:

/* Скетч для шагового двигателя BYJ48

Схема подключения: IN1 >> D8 IN2 >> D9 IN3 >> D10 IN4 >> D11 VCC . 5V.

Лучше использовать внешний источник питания Gnd

Автор кода: Mohannad Rawashdeh

Детали на русском языке: /arduino-shagovii-motor-28-BYJ48-draiver-ULN2003

Англоязычный вариант: http://www.instructables.com/member/Mohannad+Rawashdeh/ 28/9/2013 */

boolean Direction = true;

unsigned long last_time;

unsigned long currentMillis ;

void stepper(int xw)<

StepperMotor::StepperMotor(int In1, int In2, int In3, int In4)<

// Записываем номера пинов в массив inputPins

// Проходим в цикле по массиву inputPins, устанавливая каждый из них в режим Output

for (int inputCount = 0; inputCount inputPins[inputCount], OUTPUT);

void StepperMotor::setStepDuration(int duration)<

void StepperMotor::step(int noOfSteps)<

* в данном 2D массиве хранится последовательность, которая

* используется для поворота. В строках хранится шаг,

* а в столбцах — текущий input пин

int factor = abs(noOfSteps) / noOfSteps; // Если noOfSteps со знаком +, factor = 1. Если noOfSteps со знаком -, factor = -1

noOfSteps = abs(noOfSteps); // Если noOfSteps был отрицательным, делаем его позитивным для дальнейших операций

* В цикле ниже обрабатываем массив sequence

* указанное количество раз

for(int sequenceNum = 0; sequenceNum inputPins[inputCount], sequence[(int)(3.5-(3.5*factor)+(factor*position))][inputCount]);

Давайте посмотрим на конструктор на строчке 4. Мы начинаем с того, что добавляем выбранные пользователем пины в массив inputinputPins в строчках 6-9. В результате мы получаем простой и интуитивно понятный доступ к номерам пинов в дальнейшем коде.

В 12 строке мы пробегаемся по массиву inputinputPins и устанавливаем для каждого режим OUTPUT.

В 15 строке мы устанавливаем длительность шага по-умолчанию равной 15 мс.

В 18 строчке у нас функция-сеттер для установки длительности шага.

Теперь давайте рассмотрим метод step. Этот метод дает возможность шаговому двигателю делать переданное методу количество шагов.

В 28 строчке мы объявляем частоту вращения с использованием 2-х мерного массива. Строки представляют шаг, столбцы — выходящие пины.

В 37 строчке рассчитывается значение переменной factor, которое равно +1 или -1 в зависимости от знака, который мы передали при указании шагов. Это значение используется для определения направления перебора массива, то есть, в результате, для изменения направления вращения.

В 38 строчке мы присваем noOfSteps переменной позитивное значение.

В 44 строке мы запускаем цикл, который будет отрабатывать для каждой последовательности оборотов, то есть в начале каждого 8-го щага.

В 45 строке мы запускаем второй цикл, который пробегается по строкам в нашем массиве.

В 46 строчке мы устанавливаем задержку в соответствии со спецификацией.

В 47 строке мы пробегаемся по номерам пинов.

В 48 строке мы передаем цифровой сигнал на текущий номер пина.

Если переменная factor отрицательная, в 48-й строчке кода строки массива обрабатываются в противоположном порядке, то есть с низу вверх.

Доступ к библиотеке для шагового двигателя из Arduino IDE

Нам осталось добавить созданные файлы в папку библиотек Arduino IDE и мы сможем импортировать ее в любой наш проект.

Перейдите в папку:

C:\Program Files (x86)\Arduino\libraries

И создайте папку под названием StepperMotor.

Переместите созданные файлы .h и .cpp в созданную папку.

Теперь вы можете импортировать библиотеку в IDE (sketch > import library. > StepperMotor) с помощью директивы

Источник

«Шаговый двигатель 28BYJ-48-5V с драйвером на ULN2003» — Урок № 8

Скоро на моём канале в YOUTUBE появится новый урок «Шаговый двигатель 28BYJ-48-5V с драйвером на ULN2003».

Характеристики

  • Номинальное напряжение: 5 В
  • Угол шага 5,625 ° / 64
  • Передаточное отношение редуктора:1/64
  • Частота 100 Гц/> Сопротивление постоянному току 50Ω ± 7% (25 ℃)
  • Крутящий момент> 34.3mN.m (120 Гц)
  • Момент трения 600-1200 gf.cm
  • Класс изоляции 600VAC/1mA/1s
  • Шум Пример из видеоурока

Новости

На выставке CES 2020 также было представлено новое поколение плат Arduino Portenta. Оно было разработано на требовательные промышленные приложения. Portenta H7 поддерживает код Arduino, Python и JavaScript, что делает его доступным для разработчиков с различными знаниями языков .

Производитель Arduino запускает новую серию плат Nano — Arduino Nano 33 BLE. Платы имеют те же размеры, что и плата Ардуино Нано, на чипе U-blox NINA-B306 с микроконтроллером Nordic nRF52840 и беспроводным модулем Bluetooth BLE

Последнее из блога

Сегодня мы подключим lcd дисплей 1602 и lcd 2004. Иногда их ещё называют ЖК – жидкокристаллический дисплей или сокращённо жк дисплей . Подключать будем к ардуино i2c шине для индикатор 1602. Это самое простое подключение дисплея 1602. Для этого понадобится весго 2 провода. В видео будет показана 1602 распиновка для I2C и для прямого подключения к Ардуино. Будем в примерах использовать библиотеку LiquidCrystal_I2C а для русификации lcd дисплея библиотеку LCD_1602_RUS_ALL. Научимся создавать свой символ 1602. Рассмотрим ошибка 1602 и научимся их исправлять. Дисплей 1602 И дисплей 2004 это недорогие экраны для Ардуино. Напишем скетчи для вывода на экран дисплея русского шрифта и у нас получится 1602 русская. Подключение lcd 1602 к arduino по I2C это самый простой способ вывести информацию с Ардуино на дисплей.

Датчик отпечатка пальца. Сканирование отпечатков. Сегодня рассмотрим способ подключения сканера отпечатков пальцев. Это простой оптический датчик отпечатков на основе которого можно сделать систему доступа или просто установить его на дверь и управлять замком. Из датчика выходит всего 4 провода. 2 из которых питание. Так, что подключить его совсем не сложно. А добавить отпечатки вообще легко. Это можно сделать из специальной программа, где в удобном графическом приложении можно настроить датчик отпечатков. Добавлять и удалять отпечатки, производить поиск и идентификацию отпечатков. Давайте посмотрим, что это такое.

Источник

Шаговые двигатели и моторы Ардуино 28BYJ-48 с драйвером ULN2003

В этой статье мы поговорим о шаговых двигателях в проектах Ардуино на примере очень популярной модели 28BYJ-48. Так же как и сервоприводы, шаговые моторы являются крайне важным элементом автоматизированных систем и робототехники. Их можно найти во многих устройствах рядом: от CD-привода до 3D-принтера или робота-манипулятора. В этой статье вы найдете описание схемы работы шаговых двигателей, пример подключения к Arduino с помощью драйверов на базе ULN2003 и примеры скетчей с использованием стандартной библиотеки Stepper.

Шаговый двигатель – принцип работы

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

Шаговый двигатель обеспечивает вращения ротора на заданный угол при соответствующем управляющем сигнале. Благодаря этому можно контролировать положение узлов механизмов и выходить в заданную позицию. Работа двигателя осуществляется следующим образом – в центральном вале имеется ряд магнитов и несколько катушек. При подаче питания создается магнитное поле, которое воздействует на магниты и заставляет вал вращаться. Такие параметры как угол поворота (шаги), направление движения задаются в программе для микроконтроллера.

Упрощенные анимированные схемы работы шагового двигателя

Основные виды шаговых моторов:

  • Двигатели с переменными магнитами (применяются довольно редко);
  • Двигатели с постоянными магнитами;
  • Гибридные двигатели (более сложные в изготовлении, стоят дороже, но являются самым распространенным видом шаговых двигателей).

Где купить шаговый двигатель

Самые простые двигатели Варианты на сайте AliExpress:

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

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

Работа двигателя в биполярном режиме имеет несколько преимуществ:

  • Увеличение крутящего момента на 40% по сравнению с униполярными двигателями;
  • Возможность применения двигателей с любой конфигурацией фазной обмотки.

Но существенным минусов в биполярном режиме является сложность самого драйвера. Драйвер униполярного привода требует всего 4 транзисторных ключа, для обеспечения работы драйвера биполярного привода требуется более сложная схема. С каждой обмоткой отдельно нужно проводить различные действия – подключение к источнику питания, отключение. Для такой коммутации используется схема-мост с четырьмя ключами.

Драйвер шагового двигателя на базе L298N

Этот мостовой драйвер управляет двигателем с током до 2 А и питанием до 46В. Модуль на основе драйвера L298N состоит из микросхемы L298N, системы охлаждения, клеммных колодок, разъемов для подключения сигналов, стабилизатора напряжения и защитных диодов.

Драйвер двигателя L298N

Драйвер шагового двигателя ULN2003

Шаговые двигателями с модулями драйверов на базе ULN2003 – частые гости в мастерских Ардуино благодаря своей дешевизне и доступности. Как правило, за это приходится платить не очень высокой надежностью и точностью.

Другие драйвера

Существует другой вид драйверов – STEP/DIR драйверы. Это аппаратные модули, которые работают по протоколу STEP/DIR для связи с микроконтроллером. STEP/DIR драйверы расширяют возможности:

  • Они позволяют стабилизировать фазные токи;
  • Возможность установки микрошагового режима;
  • Обеспечение защиты ключа от замыкания;
  • Защита от перегрева;
  • Оптоизоляция сигнала управления, высокая защищенность от помех.

В STEP/DIR драйверах используется 3 сигнала:

  • STEP – импульс, который инициирует поворот на шаг/часть шага в зависимости от режима. От частоты следования импульсов будет определяться скорость вращения двигателя.
  • DIR – сигнал, который задает направление вращения. Обычно при подаче высокого сигнала производится вращение по часовой стрелке. Этот тип сигнала формируется перед импульсом STEP.
  • ENABLE – разрешение/запрет работы драйвера. С помощью этого сигнала можно остановить работу двигателя в режиме без тока удержания.

Одним из самых недорогих STEP/DIR драйверов является модуль TB6560-V2. Этот драйвер обеспечивает все необходимые функции и режимы.

Подключение шагового двигателя к Ардуино

Подключение будет рассмотрено на примере униполярного двигателя 28BYj-48 и драйверов L298 и ULN2003. В качестве платы будет использоваться Arduino Uno.

Подключение шагового двигателя к Ардуино

Еще один вариант схемы с использованием L298:

Подключение шагового двигателя к Ардуино на базе L298

Схема подключения на базе ULN2003 изображена на рисунке ниже. Управляющие выходы с драйвера IN1-IN4 подключаются к любым цифровым контактам на Ардуино. В данном случае используются цифровые контакты 8-11. Питание подключается к 5В. Также для двигателя желательно использовать отдельный источник питания, чтобы не перегрелась плата Ардуино.

Подключение шагового двигателя к Ардуино

Принципиальная схема подключения.

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

Еще одна схема подключения биполярного шагового двигателя Nema17 через драйвер L298 выглядит следующим образом.

Обзор основных моделей шаговых двигателей для ардуино

Nema 17 – биполярный шаговый двигатель, который чаще всего используется в 3D принтерах и ЧПУ станках. Серия 170хHSхххА мотора является универсальной.

Основные характеристики двигателя:

  • Угловой шаг 1,8°, то есть на 1 оборот приходится 200 шагов;
  • Двигатель – двухфазный;
  • Рабочие температуры от -20С до 85С;
  • Номинальный ток 1,7А;
  • Момент удержания 2,8 кг х см;
  • Оснащен фланцем 42 мм для легкого и качественного монтажа;
  • Высокий крутящий момент – 5,5 кг х см.

28BYJ-48 – униполярный шаговый двигатель. Используется в небольших проектах роботов, сервоприводных устройствах, радиоуправляемых приборах.

  • Номинальное питание – 5В;
  • 4-х фазный двигатель, 5 проводов;
  • Число шагов: 64;
  • Угол шага 5,625°;
  • Скорость вращения: 15 оборотов в секунду
  • Крутящий момент 450 г/сантиметр;
  • Сопротивление постоянного тока 50Ω ± 7% (25 ℃).

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

В среде разработки Ардуино IDE существует стандартная библиотека Strepper.h для написания программ шаговых двигателей. Основные функции в этой библиотеке:

  • Stepper(количество шагов, номера контактов). Эта функция создает объект Stepper, которая соответствует подключенному к плате Ардуино двигателю. Аргумент – контакты на плате, к которым подключается двигатель, и количество шагов, которые совершаются для полного оборота вокруг своей оси. Информацию о количестве шагов можно посмотреть в документации к мотору. Вместо количества шагов может быть указан угол, который составляет один шаг. Для определения числа шагов, нужно разделить 360 градусов на это число.
  • Set Speed(long rpms) – функция, в которой указывается скорость вращения. Аргументом является положительное целое число, в котором указано количество оборотов в минуту. Задается после функции Step().
  • Step(Steps) –поворот на указанное количество шагов. Аргументом может быть либо положительное число – поворот двигателя по часовой стрелке, либо отрицательное – против часовой стрелки.

Пример скетча для управления

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

Заключение

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

Источник

Adblock
detector