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

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

Их можно найти во многих устройствах рядом: от CD-привода до 3D-принтера или робота-манипулятора.

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

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

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

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

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

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

Такие параметры как угол поворота (шаги), направление движения задаются в программе для микроконтроллера.

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

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

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

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

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

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

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

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

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

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

Но существенным минусов в биполярном режиме является сложность самого драйвера.

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

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

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

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

Mx1508 схема подключения шагового двигателяДрайвер двигателя L298N

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

Mx1508 схема подключения шагового двигателяОписание драйвера шаговых двигателей UNL2003

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Еще одна схема подключения биполярного шагового двигателя 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, в которой задаются все параметры для шагового двигателя – количество шагов, скорость, поворот.

#include

const int stepsPerRevolution = 200;

Stepper myStepper(stepsPerRevolution, 8,9,10,11); //подключение к пинам 8…11 на Ардуино

void setup() {

myStepper.setSpeed(60); //установка скорости вращения ротора

Serial.begin(9600);

}

void loop() {

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

Serial.println(«Move right»); //по часовой стрелке

myStepper.step(stepsPerRevolution);

delay(1000);

Serial.println(«Move left»); //против часовой стрелки

myStepper.step(-stepsPerRevolution);

delay(1000);

}

Заключение

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

Мы также рассмотрели пример написания скетча, использующего встроенную библиотеку Stepper.

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

Урок ESP8266. Управление двигателем постоянного тока. NodeMCU + MX1508

Цель этого урока — объяснить, как управлять двигателем постоянного тока и изменять скорость вращения, с помощью ESP8266 и драйвера MX1508. Подробное описание драйвера можно посчитать в моем уроке по подключению MX1508 к Arduino.

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

Поскольку цифровые выводы микроконтроллера могут подавать только ограниченный ток (в случае ESP8266, максимум 12 мА), мы не можем напрямую использовать их для управления двигателем постоянного тока. Поэтому будем использовать драйвер MX1508, чтобы обеспечить ток, необходимый для вращения двигателя.

Схема подключения NodeMCU, MX1508 и двигатель постоянного тока

Схема подключения для данного примера очень проста и ее можно увидеть на рисунке ниже. Мы просто используем цифровой вывод ESP8266 для управления MX1508 и, следовательно,двигателем.

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

Наверное, понятно, что MX1508 будет действовать как переключатель, включающий или выключающий соединение двигателя с GND, когда соответствующий вывод находится в состоянии HIGH или LOW. Естественно, это ВЫСОКОЕ или НИЗКОЕ напряжение контролируется ESP8266.

Таким образом, ток необходимый для работы двигателя, обеспечивается источником питания 5 В и управление двигателем производит драйвер MX1508, что помогает не вывести ESP8266 из строя. Поскольку MX1508 может управляться сигналами 3,3 В, он будет нормально работать с ESP8266.

Простой пример кода управления двигателем постоянного тока и NodeMCU + MX1508

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

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

Читайте также:  Jeep cherokee v kl рестайлинг тест драйв

int motorPin = D3; //Pin, который будет управлять двигателем
void setup() {
pinMode(motorPin, OUTPUT); //Инициализируйте pin как выходной
}

Основной цикл loop()

Код для управления двигателем постоянного тока очень прост, как мы увидим ниже.

Чтобы контролировать, включен или выключен двигатель, нам просто нужно изменить значения цифрового вывода с HIGH на LOW. Таким образом, он будет либо работать на полной скорости, либо останавливаться.

digitalWrite(motorPin, HIGH); //Включите двигатель на полную скорость
delay(5000);
digitalWrite(motorPin, LOW); //Выключить двигатель
delay(5000);

Теперь, если хотим контролировать скорость двигателя, мы можем использовать ШИМ, вызвав функцию analogWrite.

Эта функция принимает в качестве входных данных вывод, на котором генерируется сигнал ШИМ, и значение скважности.

Нам просто нужно помнить из предыдущего урока, что диапазон значений рабочего цикла по умолчанию для реализации ESP8266 составляет от 0 до 1023.

При значении 0 на выводе ESP8266, который управляет MX1508, всегда будет 0 В (GND), и поэтому на двигатель не будет подаваться напряжение. Для значения 1023, напряжение на выводе ESP8266 всегда будет 3,3 В, таким образом, MX1508 будет выдавать 5 В.

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

Для любого промежуточного значения между 0 и 1023 скважность прямоугольной волны, создаваемой ESP8266, будет воспроизведен MX1508, таким образом, двигатель будет иметь смоделированное аналоговое напряжение между 0 и 5 В, что будет соответственно изменять его скорость.

Итак, мы должны вызвать функцию analogWrite, как показано ниже, для промежуточного значения.

analogWrite(motorPin, 950);

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

Окончательный код можно увидеть ниже. В этом случае мы сначала выключаем двигатель на полной скорости, а затем выключаем его с помощью функции digitalWrite. Затем начинаем с 0 В и постепенно увеличиваем подаваемое напряжение до 5 В с помощью функции analogWrite.

digitalWrite(motorPin, HIGH); //Включите двигатель на полную скорость
delay(5000);
digitalWrite(motorPin, LOW); //Выключить двигатель
delay(5000);
int i;
for ( i = 0; i < 1023; i = i + 5) { analogWrite(motorPin, i); //Постепенно увеличивайте скорость delay(100); } for (; i > 0; i = i — 5) {
analogWrite(motorPin, i); //Постепенно уменьшайте скорость
delay(100);
}
analogWrite(motorPin, 0); //Отключить ШИМ

После достижения 5 В начинаем постепенно уменьшать напряжение до 0 В. Кроме того, в конце цикла выполняется вызов функции analogWrite со значением 0.

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

Тестирование кода

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

Пример вращения двумя двигателями постоянного тока с помощью NodeMCU + MX1508

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

Вращать одним двигателем в одном направлении хорошо. Но чаще всего требуется управлять вращением двигателя в разных направлениях (реверс). А при разработке радиоуправляемых моделей, чаще всего приходится управлять двумя или четырьмя двигателями. Сейчас рассмотрим пример, как можно вращать два двигателя с реверсом. Также посмотрим, как можно задать скорость вращения двигателей с помощью ШИМ.

Схема подключения NodeMCU, MX1508 и два двигателя постоянного тока

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

Пример возьмём из урока для Arduino. И подправим для использования с ESP8266.

const int PinA1 = D4; // (ШИМ) вывод 5 соединен с выводом А1
const int PinA2 = D3; // (ШИМ) вывод 6 соединен с выводом А2
const int PinB1 = D5; // (ШИМ) вывод 10 соединен с выводом (pin) B1
const int PinB2 = D6; //(ШИМ) вывод 11 соединен с выводом (pin)B2
int speed = 1023; // измените это значение (0-1023),
//чтобы управлять скоростью вращения двигателей
void setup() {
pinMode(PinA1, OUTPUT); // установите контакты на выход
pinMode(PinA2, OUTPUT);
pinMode(PinB1, OUTPUT);
pinMode(PinB2, OUTPUT);
Serial.begin(9600);
}
void loop() {
Serial.println(«Avanti»);
forward();
delay(2000);
STOP();
Serial.println(«Indietro»);
backward();
delay(2000);
STOP();
Serial.println(«Sinistra»);
left();
delay(2000);
STOP();
Serial.println(«Destra»);
right();
delay(2000);
STOP();
}
void backward() // Вперед.
{
analogWrite(PinA1, 0);
analogWrite(PinA2, speed);
analogWrite(PinB1, 0);
analogWrite(PinB2, speed);
}
void forward() //Назад…
{
analogWrite(PinA1, speed);
analogWrite(PinA2, 0);
analogWrite(PinB1, speed);
analogWrite(PinB2, 0);
}
void left() // В левую сторону
{
analogWrite(PinA1, speed);
analogWrite(PinA2, 0);
analogWrite(PinB1, 0);
analogWrite(PinB2, speed);
}
void right() //В правую сторону
{
analogWrite(PinA1, 0);
analogWrite(PinA2, speed);
analogWrite(PinB1, speed);
analogWrite(PinB2, 0);
}
void STOP() //Стоп
{
analogWrite(PinA1, 0);
analogWrite(PinA2, 0);
analogWrite(PinB1, 0);
analogWrite(PinB2, 0);
delay (2000);
}

Основное отличие данного примера это изменение скорости вращения. Как мы уже знаем из предыдущего урока ШИМ на ESP8266 можно менять от 0 до 1023, а для Arduino всего от 0 до 255.

int speed = 1023; // измените это значение (0-1023),

analogWrite(PinA2, speed);

Как видим, двигателя вращаются по загнанному алгоритму и с указанной скоростью вращения. На данном примере можно реализовать Wi-Fi машинку или другое умное устройство.

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

Смотрите примеры проектов с использованием двигателей постоянного тока:

Понравился Урок ESP8266. Управление двигателем постоянного тока. NodeMCU + MX1508? Не забудь поделиться с друзьями в соц. сетях.

  • А также подписаться на наш канал на YouTube, вступить в группу

#29. Подключаем драйвер мотора MX1508 к Arduino

Модуль двигателя MX1508, рассмотренный в этой статье, рекламируется на Aliexpress как «Двухканальная плата драйвера двигателя постоянного тока L298N, PWM Speed Dual H Bridge Stepper Module», однако присутствует микросхема MX1508 китайского производства. Также отличаются характеристики драйвера MX1508 от L298N. Давайте рассмотрим подробней данный драйвер и разберемся, как его подключить к Arduino и управлять моторами постоянного тока.

При управлении, например, с платой Arduino UNO, можно управлять двумя двигателями, при этом вращать в любом направлении каждый двигатель. Драйвер представляет из себя Н-мост с рабочим током 800 мА и пиковым током 2,5 А, а также, со встроенной системой контроля температуры.

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

Характеристики драйвера MX1508:

  • Напряжение питания модуля 2 — 9,6 В.
  • Диаметр монтажного отверстия: 2 мм.
  • Входное напряжение сигнала: 1,8- 7 В.
  • Ток для одного канала: 0,8 А.
  • Пиковый ток: до 2,5 А.
  • Ток в режиме ожидания: менее 0,1 мкА.
  • Схема защиты от перегрева: встроенная (TSD) с эффектом гистерезиса.
  • Размер: 24,7 х 21 х 7 мм.

Общие сведения о драйвере MX1508

Основной чип модуля — это микросхема MX1508, состоящая из двух H-мостов (H-Bridge), один для выхода A, второй для выхода B, каждый канал рассчитан на 0,8 А с пиком 2,5 А.

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

Принцип работы прост, при одновременном закрытии двух отдельных транзисторов, изменяется полярность напряжения, приложенного к двигателю. Это позволяет изменять направление вращения двигателя. На рисунке ниже, показана работа H-мостовой схемы.

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

Управлять двигателем можно низковольтным напряжением, ниже, чем напряжение на плате Arduino. Для управления скоростью используется широтно-импульсная модуляция (PWM).

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

Модуль MX1508 содержит разъем для подключения питания, два выхода A и B, и разъем управления, с назначением каждого можно ознакомиться ниже:

  • Вывод «+» и «-» — питание модуля и двигателей, от 2 до 9,6 В;
  • Выводы A1 и A2 — используются для управления направлением вращения двигателя A;
  • Выводы B1 и B2 — используются для управления направлением вращения двигателя B;
  • Выходы MOTOR A — разъем для двигателя A;
  • Выходы MOTOR B — разъем для двигателя B;

Подключение MX1508 к Arduino (коллекторный двигатель)

Необходимые детали:

  • Arduino UNO.
  • Драйвер мотора на MX1508.
  • Коллекторный двигатель.

Схема подключения MX1508 к Arduino, и коллекторного двигателя к MX1508

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

Первым делом, необходимо подключить источник питания от 2 до 9,6 B к модулю (в примере используется 5 В. от Arduino). Далее, подключаем управляющие провода A1, A2, B1, B2 (встречается маркировка, как на L298: IN1, IN2, IN3, IN1) к цифровым выводам Arduino 10, 11, 5 и 6. Теперь, подключаем двигатели, один к клеммам MOTOR A , а другой к клеммам MOTOR B. Схема подключения приведена ниже.

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

Теперь подключаем Arduino к компьютеру и загружаем скетч ниже.

const int PinA1 = 5; // (ШИМ) вывод 5 соединен с выводом А1
const int PinA2 = 6; // (ШИМ) вывод 6 соединен с выводом А2
const int PinB1 = 10; // (ШИМ) вывод 10 соединен с выводом (pin) B1
const int PinB2 = 11; //(ШИМ) вывод 11 соединен с выводом (pin)B2
byte speed = 250; // измените это значение (0-255),
//чтобы управлять скоростью вращения двигателей
void setup() {
pinMode(PinA1, OUTPUT); // установите контакты на выход
pinMode(PinA2, OUTPUT);
pinMode(PinB1, OUTPUT);
pinMode(PinB2, OUTPUT);
Serial.begin(9600);
}
void loop() {
Serial.println(«Avanti»);
forward();
delay(2000);
STOP();
Serial.println(«Indietro»);
backward();
delay(2000);
STOP();
Serial.println(«Sinistra»);
left();
delay(2000);
STOP();
Serial.println(«Destra»);
right();
delay(2000);
STOP();
}
void backward() // Вперед.
{
analogWrite(PinA1, 0);
analogWrite(PinA2, speed);
analogWrite(PinB1, 0);
analogWrite(PinB2, speed);
}
void forward() //Назад…
{
analogWrite(PinA1, speed);
analogWrite(PinA2, 0);
analogWrite(PinB1, speed);
analogWrite(PinB2, 0);
}
void left() // В левую сторону
{
analogWrite(PinA1, speed);
analogWrite(PinA2, 0);
analogWrite(PinB1, 0);
analogWrite(PinB2, speed);
}
void right() //В правую сторону
{
analogWrite(PinA1, 0);
analogWrite(PinA2, speed);
analogWrite(PinB1, speed);
analogWrite(PinB2, 0);
}
void STOP() //Стоп
{
analogWrite(PinA1, 0);
analogWrite(PinA2, 0);
analogWrite(PinB1, 0);
analogWrite(PinB2, 0);
delay (2000);
}

Читайте также:  Revo чип тюнинг bmw

Описание скетча:

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

const int PinA1 = 5; // (ШИМ) вывод 5 соединен с выводом А1
const int PinA2 = 6; // (ШИМ) вывод 6 соединен с выводом А2
const int PinB1 = 10; // (ШИМ) вывод 10 соединен с выводом (pin) B1
const int PinB2 = 11; //(ШИМ) вывод 11 соединен с выводом (pin)B2

Управление скоростью осуществляется с помощью ШИМ, для удобства используем переменную speed, в которой указываем скорость двигателя. Значение «0» — значит остановка, а «255» равносильно напряжению питания, и двигатели крутятся на максимальной скорости.

byte speed = 250; // измените это значение (0-255),
//чтобы управлять скоростью вращения двигателей

Далее, мы указываем, что данные выводы используем как выход.

pinMode(PinA1, OUTPUT); // установите контакты на выход
pinMode(PinA2, OUTPUT);
pinMode(PinB1, OUTPUT);
pinMode(PinB2, OUTPUT);

Направление вращения двигателя осуществляется с помощью выводов A1 и A2 — для первого двигателя, B1 и B2 — для второго двигателя, то есть, если подать на вывод A1 — 0B (LOW), а на A2 — 5B (HIGH), двигатель A будет вращаться вперед (так же и для двигателя B).

Для вращения назад, необходимо подать на A1 — 5B (HIGH), а на A2 — 0B (LOW), двигатель A будет вращаться назад (так же и для двигателя B).

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

void backward() // Вперед.
{
analogWrite(PinA1, 0);
analogWrite(PinA2, speed);
analogWrite(PinB1, 0);
analogWrite(PinB2, speed);
}
void forward() //Назад…
{
analogWrite(PinA1, speed);
analogWrite(PinA2, 0);
analogWrite(PinB1, speed);
analogWrite(PinB2, 0);
}
void left() // В левую сторону
{
analogWrite(PinA1, speed);
analogWrite(PinA2, 0);
analogWrite(PinB1, 0);
analogWrite(PinB2, speed);
}
void right() //В правую сторону
{
analogWrite(PinA1, 0);
analogWrite(PinA2, speed);
analogWrite(PinB1, speed);
analogWrite(PinB2, 0);
}
void STOP() //Стоп
{
analogWrite(PinA1, 0);
analogWrite(PinA2, 0);
analogWrite(PinB1, 0);
analogWrite(PinB2, 0);
delay (2000);
}

Реализуем вывод в монитор порта информацию о направлении вращения двигателя в данный момент.

Serial.println(«Avanti»);
forward();
delay(2000);
Mx1508 схема подключения шагового двигателяЭто поможет определить, правильно ли мы всё подключили, или нет. Если двигатели будут вращаться не в том направлении, как выводится в мониторе порта, то необходимо поменять местами провода подключения двигателей, и повторить проверку. Эта информация позволит настроить минимальный код для создания радиоуправляемой машины. Вот такие машинки я делал на Arduino и ESP8266 с использованием драйвера L298:

Используя драйвер MX1508, собрать данные проекты не составит труда, так как код из проектов выше совместим с драйвером MX1508.

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

  • Появились вопросы или предложения, не стесняйся, пиши в комментарии!
  • Не забывайте подписываться на канал Youtube и вступайте в группы в

Изучаем миниатюрный шаговый двигатель

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

Сегодня хочу поговорить об особой разновидности шаговых моторов — миниатюрные шаговые двигатели, которые применяются в конструкциях оптических систем. Мы подробно рассмотрим их устройство и способы управления такими крошечными моторчиками. Mx1508 схема подключения шагового двигателя Шаговый двигатель — бесколлекторный (бесщёточный) электрический двигатель с несколькими обмотками (фазами), расположенными на статоре и магнитами (часто постоянными) на роторе. Подавая напряжения на обмотки статора, мы можем фиксировать положение ротора, а подавая напряжение на обмотки последовательно можно получить перемещение ротора из одного положения в другое (шаг), причём этот шаг имеет фиксированную угловую величину.

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

Хочу поговорить об особой разновидности шаговых моторов — миниатюрные шаговые двигатели, которые применяются в конструкциях оптических систем. Такие малыши имеются в свободной продаже. Но в сети, особенно в русскоязычной, очень мало информации по таким моторчикам. Потому, когда мне потребовалось использовать их в своём проекте, пришлось изрядно поискать информации и провести пару экспериментов. Результатами своих поисков и экспериментами я поделюсь в этой статье. Мы рассмотрим вопросы управления такими маленькими моторчиками, а именно:

  • драйвер L293D + микроконтроллер ATtiny44;
  • драйвер TMC2208 + микроконтроллер ATtiny44;
  • микроконтроллер ATtiny44 (без драйвера).

Собственно вопросы тут может вызвать только последний пункт. Поверьте, я тоже был удивлён, когда наткнулся на ролик (вот он), где парень просто берёт и напрямую цепляет шаговый мотор к пинам микроконтроллера! Но давайте обо всём по порядку.

Знакомство

Сначала немного посмотрим на внешний вид нашего героя: Mx1508 схема подключения шагового двигателя Он действительно очень маленький! Согласно умной книжке Петренко С.Ф. «Пьезоэлектрические двигатели в приборостроении», меньших размеров электромагнитные моторчики создать в принципе невозможно… то есть возможно, но с уменьшением диаметра проволоки, из которой изготавливают обмотки, всё больше энергии рассеивается в виде тепла в окружающую среду, что приводит к уменьшению КПД моторчика и делает их использование нерациональным. Из примечательного, можно отметить, что его вал очень короткий и имеет специальную проточку для установки шестерни или рычага.

Отчётливо видны две обмотки, которые даже покрыты изоляцией разного цвета. Значит, наш моторчик относится, скорее всего, к классу биполярных шаговых двигателей.

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

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

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

Убедимся, что он биполярный, прозвонив обмотки. Действительно биполярный, всё как на картинке выше. Сопротивление обмоток около 26Ом, хотя продавец указал 14Ом.

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

Эксперимент №1. L293D + ATtiny44

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

Для этого на каждую обмотку нужен собственный Н-мост. Чтобы не городить его из транзисторов, был взят готовый в лице микросхемы L293D. Ещё одно её преимущество — у микросхемы имеются специальные выводы Enable1 и Enable2, который включают и выключают каждый мост.

Их можно использовать чтобы подавать ШИМ сигнал, тем самым, возможно контролировать напряжения питания каждого моста. Зачем это может понадобиться, мы увидим дальше.

Кроме того, L293D может коммутировать напряжения до 36В и выдавать до 1,2А на каждый канал, чего вполне должно хватить для питания обмоток нашего моторчика.

Итак, схема: Mx1508 схема подключения шагового двигателя Управляющие входы L293D подключены к выходам OC0A и OC0B, что позволит в будущем подавать на них ШИМ сигнал. Прошивать контроллер будем через внутрисхемный программатор (на схеме не указан). Вот как выглядит собранная схема на макетной плате: Mx1508 схема подключения шагового двигателя И вот так расположен наш подопытный: Mx1508 схема подключения шагового двигателя Теперь можно приступать к экспериментам. Рассчитаем ток, который будет течь через обмотки двигателя при подключении их к напряжению 5В: I=U/R = 5В/26Ом = 190мА Совсем небольшой. Интересно как долго он сможет держать такой ток и не перегреться. Включим в цепь одной из обмоток амперметр и вольтметр, и проведём замеры соответствующих величин при подачи питания на эту обмотку через драйвер.

При падении напряжения на обмотке 2.56В амперметр показывает ток 150мА, причём хорошо заметно, как начинает падать величина силы тока в процессе нагревания обмоток. Надо отметить, что не так уж и сильно он греется.

Убедившись, что напряжение 5В для моторчика опасности не представляет, попробуем покрутить им в разные стороны. И вот теперь пару слов мы скажем про режимы работы шагового двигателя.

Об этом довольно хорошо сказано здесь.

Не будем повторяться, но вспомним, что шаговый двигатель может работать в трёх режимах:

  • Полношаговый однофазный это когда одновременно напряжение подаётся только на одну фазу двигателя, ротор делает шаг, затем текущая фаза выключается и включается следующая.
  • Полношаговый двухфазный это когда напряжение подаётся одновременно на две фазы мотора, при этом, ротор притягивается одновременно к двум обмоткам, что создаёт больший крутящий момент.
  • Микрошаговый режим в этом случае реализуется тот же принцип, что и на полношаговом двухфазном, то есть работают одновременно две обмотки, но напряжение (и как следствие ток) распределяется между ними неравномерно. Фактически, это означает, что мы можем поставить моторчик в неограниченное количество положений (на практике, разумеется, такого сделать нельзя). Увеличивается точность позиционирования.
Читайте также:  Можно ли работать в такси как самозанятый

Попробуем реализовать первые два режима на микросхеме L293D а для микрошагового режима оставим специальный драйвер из второго эксперимента. Исходный код программы выглядит следующим образом: Исходный код в среде WinAVR #define F_CPU 8000000UL // указываем частоту в герцах

// фьюзы необходимо выставить L: E2; H:DF; Ex:FF;
// это будет частота 8МГц от внутреннего генератора с выключенным предделителем тактовый частоты (включен по умолчанию и равен 8)

#include // подключаем библиотеку АВР

#include // подключаем библиотеку задержек

#include // подключаем библиотеку прерываний

// управление штатным светодиодом

#define LED_pin PA5

#define LED_ON PORTA |=(1

MX1508 vs L9110S vs TB6612 vs L293D Motordriver board

Three popular, cheap motordriver boards that are available on chinese webstores are the MX1508, L9110S and TB6612.

MX1508
Mx1508 схема подключения шагового двигателяAt Aliexpress and Banggood, the MX1508 is listed as a “Dual Channel L298N DC Motor Driver Board PWM Speed Dual H Bridge Stepper Module”. However it is an MX1508.

This board can drive two motors independently. It is an H-bridge configuration for each motor and so can drive the motors in either direction. It is rated at 1.5A on each motor with a peak of 2.5A.
The module itself is not really breadboard friendly. The pin spacing is 0.1″ but the various connectors are at aberrant spacing.

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

The MX1508 from Shenzhen Guanghui Electronics Co., Ltd. has a working voltage of 1.8-5Volt, but can drive motors with an operating voltage of 2-9.6 Volt. The module however, has only 1 Voltage input, that supposedly can take 2-10 Volt.

The digital part of the MX1508 however is fed through a 220 ohm resistor with the resulting voltage being capped by what I presume to be a zenerdiode of 5 Volt. With most hobby motors being either 6 or 12 Volt, 10 Volt may not be the most practical voltage.

When analyzing the PCB, one odd thing becomes clear: Pin 4 (VDD1), the input for the operating voltage of Motor A, seems to be not connected to anything. Yet the module works. Connecting it (to pin 8) seems the right way to go though.

It is very well possible that it is an unintentional mistake in the PCB.

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

Драйвер моторов MX1508 двухканальный (1.5 А) » РобоВики

Двухканальный драйвер моторов на базе микросхемы MX1508 может одновременно управлять двумя двигателями постоянного тока, либо одним 4-проводным шаговым двигателем.

Драйвер на базе MX1508 эффективен при использовании в портативных механических устройствах, так как напряжение питания находится в широком диапазоне и может составлять от 2В до 10В, а потребляемый ток в режиме ожидания составляет менее 0.1мкА. Модуль имеет 2 канала с силой тока 1.5A, пиковые токи могут составлять до 2.5A.

Драйвер отличает наличие МОП ключей (MOSFET-транзисторы) с низким сопротивлением и малое тепловыделение, благодаря которому можно использовать модуль без дополнительных радиаторов.

В микросхеме имеется контур защиты с гистерезисом (ТСД), предотвращающий перегрев. Он автоматически включает модуль заново при понижении температуры микросхемы до приемлемой.

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

Напряжение для моторов: 2-10 В
Напряжение для управляющих контактов: 1,8-7 В
Номинальный (рабочий) ток для каждого мотора: 1,5 А
Максимальный ток для каждого мотора: 2,5 А
Потребляемый ток в режиме ожидания: 0,1 мА
Тип драйвера: Н-мост
Размеры: 24,7 х 21 х 5 мм
Цена: 30 руб.

Подключение

Драйвер работает как самостоятельное устройство и совместим с любыми микроконтроллерами, включая Arduino.

Подключается к плате через цифровые выходы к ШИМ-пинам на Ардуине. Для работы достаточно стандартных библиотек Arduino IDE.

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

Вам также может понравиться

Контроллер шагового двигателя на микросхеме MX1508 (аналог L298N) 2 канала 1,5 (2,5) А купить цена 4443 — Контроллеры шаговых двигателей

Модуль драйвера 1,5А (макс. 2.5А) для биполярного шагового двигателя на микросхеме MX1508 (современный аналог L298N или L9110 с защитными цепями в компактном исполнении) 

Одним из ярких технологических прорывов последних лет стало появление 3D принтеров, способных «напечатать» из пластика практически любой твердотельный объект сложной формы. Построение таких принтеров стало хобби для многих людей. Одним из элементов таких 3D принтеров является шаговый двигатель, для управления которым требуется специальный драйвер.

Описание:

  • Драйвер для двигателя идеально подходит для использования в моделях машинок, игрушках, роботах и т. д. питаемых от батареек и аккумуляторов.  Напряжение питания 2 В ~ 10 В, драйвер может управлять двумя двигателями постоянного тока или 4-проводными двухфазными шаговыми двигателями, позволяет регулировать скорость вращения и менять направление вращения (реверс). Драйвер может обеспечить постоянный ток из 1.5A, пиковый ток до 2.5A, имеет блок тепловой защиты с автоматическим восстановлением.

Основные характеристики продукта:

  • Используется импортный оригинальный чип MX1508, имеющий МОП ключи с низким сопротивлением, минимальное тепловыделение ,позволяющее использовать драйвер без радиаторов теплоотвода, маленький размер, низкое энергопотребление, благодаря чему идеально подходит в портативных устройствах для питания от аккумулятора.
  • (Драйверы на устаревающем L298N имеют в качестве ключей — транзисторы, поэтому у них низкая эффективность, высокая температура при работе, необходимость использования теплоотвода, они громоздкие, микросхему L298N очень легко сжечь).
  • Два канала по 1.5A, пиковый ток быть 2.5A, встроенный контур термозащиты, можно не переживать что драйвер выйдет из строя из-за перегрева, автоматическое восстановление после снижения температуры.
  • Малый размер, легкий вес, ток менее 0,1 микроампера режиме ожидания, является идеальным выбором для вашей модели автомобиля.

Параметры продукта:

  • Двойной H-мостовой драйвер мотора, может управлять двумя двигателями постоянного тока или 4-проводным двухфазным шаговым двигателем.
  • Напряжение питания модуля 2 В — 10 В.
  • Входной сигнал напряжение 1.8 — 7 В.
  • Рабочий ток 1.5A на канал, пиковый ток до 2.5A, низкий ток в режиме ожидания (менее 0.1uA).
  • Встроенный в общих проводимости цепи, когда ввод pin оставляют плавающий, двигатель не неисправности.
  • Встроенный контур термозащиты с гистерезисом (ТСД), не беспокойтесь о остановке двигателя.
  • Размеры: 24.7*21*5 мм (длина, ширина, высота), ультра-маленький размер.
  • Диаметр монтажного отверстия: 2 мм.

Меры предосторожности:

  • 1. Неправильное подключение напряжения (переполюсовка) вызовет повреждения драйвера, соблюдайте полярность!
  • 2. При замыкании выхода на землю или короткое замыкание выходной цепи (двигателя) может вызвать перегрев чипа, перенапряжение более 10 В или токи более чем 2.5A — могут привести к выходу из строя чипа. 
  • Mx1508 схема подключения шагового двигателя

С данным товаром также покупают:

Ваш отзыв может быть первым.

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

MX1508, Драйвер двигателей PWM 2-10V 2 x 2.5A max 2-канальный

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

  • Характеристики:
  • Напряжение питания двигателей: 2-10 В
  • Рабочий ток на канал: 1,5 А, пиковый ток (недолго) до 2,5 А
  • Уровень логического сигнала: 5 В
  • Габариты: 25х21х1 мм

Данный драйвер изготовлен на базе микросхемы MX1508, которая представляет из себя схему из двух Н-мостов (H-bridge). Управление работой Н-мостов осуществляется при помощи логического сигнала 5 В,что означает, что данный драйвер отлично работает в связке с платой Arduino.

  1. Управление скоростью вращения моторов производится широтно-импульсной модуляцией.
  2. Подключение к Arduino:
  3. На плате модуля MX1508 есть два контакт для подключения питания (помечены как + и -), два выхода на моторы А и B и четыре пина управления моторами.
  4.  Вывод + и —  питание модуля и двигателей, от 2 до 10 В;
  5.  Выводы A1, A2 — управление вращением двигателя A;
  6. Выводы B1, B2 — управление вращением двигателя B;
  7. Выводы MOTOR A — для подключения двигателя A;
  8. Выводы MOTOR B — для подключения двигателя B;

На выводы + и – модуля надо подать питание для двигателей.  Напряжение должно быть в рабочем диапазоне двигателей. Например, для желтых мотор-редукторов допустимый диапазон напряжения – 3-6 В, значит можно безопасно запитать моторы напряжением 5 В.

Двигатели подключаем один к выводам А1,А2, другой к выводам В1,В2.

Четыре пина управления соединяем с цифровыми выходами Arduino. Для скетча, приведённого ниже, это будут пины 5,6,9,10.

  • Скетч:
  • const int FwdPin_A = 10;
  • const int BwdPin_A = 9; 
  • const int FwdPin_B = 6;
  • const int BwdPin_B = 5;       
  • int MaxSpd = 100;               // Скорость, значение 0-255
  • void setup(){
  •   pinMode(FwdPin_A, OUTPUT);   
  •   pinMode(BwdPin_A, OUTPUT);   
  •   pinMode(FwdPin_B, OUTPUT);   
  •   pinMode(BwdPin_B, OUTPUT);   
  • }
  • void loop(){
  • // Двигатель A, вращение вперед
  •     analogWrite(BwdPin_A,LOW); 
  •     analogWrite(FwdPin_A,MaxSpd);
  •     delay(3000);
  •     analogWrite(FwdPin_A,LOW);
  • // Двигатель A, вращение назад
  •     analogWrite(BwdPin_A,MaxSpd);
  •     analogWrite(FwdPin_A,LOW);
  •     delay(3000);
  •     analogWrite(BwdPin_A,LOW);
  • // Двигатель B, вращение вперед
  •     analogWrite(BwdPin_B,LOW); 
  •     analogWrite(FwdPin_B,MaxSpd);
  •     delay(3000);
  •     analogWrite(FwdPin_B,LOW);
  • // Двигатель B, вращение назад
  •     analogWrite(BwdPin_B,MaxSpd);
  •     analogWrite(FwdPin_B,LOW);
  •     delay(3000);
  •     analogWrite(BwdPin_B,LOW);
  • }
  • Подключите к драйверу моторы, драйвер подключите к Arduino, залейте скетч, и, если схема собрана правильно, моторы начнут по очереди вращаться в одну и другую сторону.
  • Видеообзор:
  • Видеообзор на канале ArduinoLab:

Оставьте комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Adblock
detector