Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

Управление шаговым двигателем с помощью Arduino и драйвера A4988

Если вы планируете создать свой собственный 3D-принтер или станок с ЧПУ, вам нужно будет управлять несколькими шаговыми двигателями. Если использовать для этого только Arduino, то большая часть скетча будет занята кодом управления шаговыми двигателями и не останется много места для чего-то еще.

Данную проблему можно решить, использовав специальный автономный драйвер шагового двигателя — A4988.

Стенд для пайки со светодиодной подсветкой

Материал: АБС + металл + акриловые линзы. Светодиодная подсветка...

Модуль A4988 может контролировать как скорость, так и направление вращения биполярного шагового двигателя, такого как NEMA 17, использую всего два вывода контроллера.

Вы знаете, как работают шаговые двигатели?

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

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

От характера управляющих импульсов зависит поведение шагового двигателя, а именно:

  • Последовательность импульсов определяет направление вращения двигателя.
  • Частота импульсов определяет скорость двигателя.
  • Количество импульсов определяет угол поворота.

 

Микросхема драйвера шагового двигателя A4988

Модуль собран на чипе A4988. Не смотря на свой малый размер (всего 0,8 ″ × 0,6 ″), но обладает хорошими характеристиками.

Паяльная станция 2 в 1 с ЖК-дисплеем

Мощность: 800 Вт, температура: 100...480 градусов, поток возду...

Драйвер шагового двигателя A4988 имеет высокую выходную мощность (до 35 В и  2 А) и позволяет управлять одним биполярным шаговым двигателем с выходным током до 2 А на катушку, например NEMA 17.

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

Драйвер предлагает 5 различных разрешений шага, а именно:

  • полный шаг
  • 1/2 шага
  • 1/4 шага
  • 1/8 шага
  • 1/16 шага

Распиновка драйвера A4988

Драйвер A4988 имеет всего 16 контактов, которые связывают его с внешним миром. Распиновка у A4988 следующая:

Давайте ознакомимся со всеми контактами по очереди.

Выводы питания

На самом деле A4988 требует подключения двух источников питания.

VDD и GND используется для управления внутренней логической схемой. Напряжение питания должно находиться в пределах от 3 до 5,5 В.

Vmot и GND для обеспечения питания шагового двигателя. Тут напряжение в пределах от 8 до 35 В.

Согласно datasheet, для питания двигателя требуется соответствующий разделительный конденсатор рядом с платой, способный выдерживать ток 4 А.

Предупреждение:

Этот драйвер имеет на плате керамические конденсаторы с низким ESR , что делает его уязвимым для скачков напряжения.

 В некоторых случаях эти выбросы могут превышать 35 В (максимальное номинальное напряжение A4988), и это может потенциально необратимо повредить плату и даже двигатель.

Один из способов защитить драйвер от таких скачков — подключить  электролитический конденсатор емкостью 100 мкФ (или как минимум 47 мкФ) к контактам источника питания двигателя.

Выводы выбора микрошага

Драйвер A4988 допускает использование режима микрошага. Это достигается за счет подачи питания на катушки с промежуточными уровнями тока.

Например, если вы решите управлять шаговым двигателем NEMA 17 с шагом 1,8 градуса (200 шагов на оборот) в режиме 1/4 шага, то двигатель будет выдавать 800 микрошагов на оборот.

Драйвер A4988 имеет три вывода селектора размера шага (разрешения), а именно: MS1, MS2 и MS3. Установив соответствующие логические уровни на эти контакты, мы можем настроить двигатели на одно из пяти ступенчатых разрешений.

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

Выводы управления

Драйвер A4988 имеет два управляющих входа, а именно: STEP и DIR.

 

STEP — управляет микрошагом мотора. Каждый  высокий импульс, отправляемый на этот вывод, приводит двигатель в действие на количество микрошагов, заданное выводами Microstep Selection (MS1, MS2 и MS3). Чем быстрее импульсы, тем быстрее будет вращаться двигатель.

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

Если вы просто хотите, чтобы двигатель вращался только в одном направлении, то вы можете соединить вывод DIR непосредственно с VCC или GND соответственно.

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

Выводы управления питанием A4988

A4988 имеет три различных вывода для управления состоянием питания, а именно. EN, RST и SLP.

 

EN — вывод включения (0)/ выключения (1) драйвера A4988. По умолчанию на этом выводе установлен низкий уровень, поэтому драйвер всегда включен.

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

RST — при подаче сигнала низкого уровня все входные данные STEP игнорируются, до тех пор пока не будет установлен высокий уровень. Низкий уровень также сбрасывает драйвер, устанавливая внутренний транслятор в предопределенное состояние Home. Исходное состояние — это в основном начальное положение, с которого запускается двигатель, и оно различается в зависимости от разрешения микрошага.

Если вам не нужно использовать вывод RST, вы можете подключить его к соседнему контакту SLP / SLEEP, чтобы вывести его на высокий уровень и включить драйвер.

Выводы для подключения шагового двигателя

Выходные контакты: 1B, 1A, 2A и 2B.

К этим выводам можно подключить любой биполярный шаговый двигатель с напряжением питания от 8 до 35 В.

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

Система охлаждения — радиатор

Чрезмерное рассеивание мощности микросхемы драйвера A4988 приводит к повышению температуры, которая может выйти за пределы возможностей микросхемы, что, вероятно, приведет к ее повреждению.

Даже если микросхема драйвера A4988 имеет максимальный номинальный ток 2 А на катушку, микросхема может подавать только около 1 А на катушку без перегрева.

Для достижения более 1 А на катушку требуется радиатор или другой метод охлаждения.

Драйвер A4988 обычно поставляется с радиатором. Желательно установить его перед использованием драйвера.

Ограничение тока

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

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

Для этого есть два метода:

Способ 1:

В данном случае мы собираемся установить ограничение тока путем измерения напряжения (Vref) на выводе «ref».

  1. Взгляните на техническое описание вашего шагового двигателя. Запишите его номинальный ток. В нашем случае мы используем NEMA 17 200 шагов/об, 12 В 350 мА.
  2. Переведите драйвер в полношаговый режим, оставив три контакта выбора микрошага отключенными.
  3. Удерживайте двигатель в фиксированном положении, не синхронизируя вход STEP.
  4. Во время регулировки измерьте напряжение Vref (один щуп мультиметра на минус питания, а другой к металлическому корпусу потенциометра).
  5. Отрегулируйте напряжение Vref по формуле:

ограничение тока = Vref x 2,5

Например, если ваш двигатель рассчита

#21. Подключаем к Arduino Шаговый двигатель 28BYJ-48 на драйвере ULN2003

Сегодня в уроке подключим шаговый двигатель 28BYJ-48 к Arduino и научимся вращать вал двигателя в разные стороны и изменять скорость вращения с помощью потенциометра и энкодера KY-040.

Кратко, что такое шаговый двигатель (ШД) - это двигатель, который способен осуществлять вращение на 1 шаг. Шаг — это угол, который обусловлен устройством каждого конкретного шагового двигателя.

Характеристики шагового двигателя 28BYJ-48:

Размера шагового двигателя 28BYJ-48. Необходимы при проектировании деталей для 3D печати.

Вот так выглядит схема шагового двигателя 28BYJ-48

Подавая сигналы в определённом порядке на выводы двигателя, двигатель можно вращать по часовой стрелке.

Для шагового режима.

Для полушагового режима.

Прямое подключение шагового двигателя 28BYJ-48 к Arduino.

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

Схема подключения к Arduino UNO будет следующая.

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

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

И в цикле выполнять каждую строчку массива. Но есть решение с более компактным кодом. Нашел я данный пример на канале Дмитрия Осипова. За что ему отельное спасибо!

Код для вращения в одну и в другую сторону будет вот таким.

ВНИМАНИЕ! Материалы для скачивания находятся внизу статьи!

Пример подключения шагового двигателя 28BYJ-48 (5V)с использованием драйвер ULN2003.

Также у Дмитрия Осипова есть код для изменения скорости вращения с помощью потенциометра. Я его немного доработал, сделал обработку нажатия кнопки без задержки в 500 мс. Сейчас двигатель стал вращаться в обратную сторону без видимой задержки.

Для подключения буду использовать модуль SBT0811 на драйвере ULN2003.

Драйвер устроен вот таким образом.

Соответственно, наш код будет работать и с данным драйвером.

Подключим все по схеме и загрузим код в Arduino NANO.

Схема подключения для Arduino UNO будет аналогичной.

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

ВНИМАНИЕ! Материалы для скачивания находятся внизу статьи!

Пример управления шаговым двигателем 28BYJ-48 с помощью Энкодера.

Для уменьшения количества элементов в схеме решил заменить потенциометр и тактовую кнопку на энкодер вращения KY-040. Как подключить энкодер вращения к Arduino рассказывал в предыдущем уроке.

Подключаем шаговый двигатель 28BYJ-48 и энкодер к Arduino по схеме.

Проводим небольшую доработку кода и получим вот такой результат.

Если нажать на энкодер, меняется направление вращения. А при вращении энкодера по часовой стрелке - скорость увеличивается. Если вращать против часовой стрелки - скорость снижается.

ВНИМАНИЕ! Материалы для скачивания находятся внизу статьи!

Вы также можете без проблем воспользоваться примером из стандартной библиотеки Stepper, которая позволит сделать тоже самое и при меньшем объёме кода. Но библиотека не даст вам понять, как это все устроено.

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

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

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

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

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

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

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

Файлы для скачивания

управления шаговым двигателем 28BYJ-48 с помощью Энкодера. ino4 Kb 735 Скачать

Вы можете скачать файл.

управления шаговым двигателем 28BYJ-48 с помощью кнопки и потенциометра .ino5 Kb 697 Скачать

Вы можете скачать файл.

с использованием библиотеки Stepper.ino1 Kb 497 Скачать

Вы можете скачать файл.

Даташит на шаговый двигатель 28BYJ-48.pdf193 Kb 310 Скачать

Вы можете скачать файл.

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

Статья проплачена кошками - всемирно известными производителями котят.

Если статья вам понравилась, то можете поддержать проект.

Шаговые двигатели благодаря своей точности широко используются в робототехнике, ЧПУ-станках, 3D-принтерах. В отличие от двигателей постоянного вращения, один оборот «шаговика» состоит из множества микроперемещений, которые и называют шагами. У нас есть возможность программно повернуть вал двигателя ровно на 90 градусов, и зафиксировать его в этом положении. Сервомотор является упрощённым аналогом шагового двигателя.

Шаговые двигатели бывают униполярные и биполярные.

В среде Arduino самым популярным шаговым двигателем является 28BYj-48. Этот миниатюрный шаговик имеет встроенный редуктор, который позволяет совершать очень точные перемещения выходного вала.

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

Мы не можем подключить этот двигатель напрямую к контроллеру, так как ток на его обмотках может достигать 160 мА, что очень много для выводов Arduino. Для управления 28BYj-48 мы используем драйвер ULN2003.

На плате на одной стороне есть семь контактов для микроконтроллера: IN1..IN7, из которых понадобятся только первые четыре. На другой стороне находятся пять контактов для двигателя, и в средней части платы есть ещё два контакта для питания. Также есть перемычка, разрывающая цепь питания двигателя.

Как правило, кабель двигателя 28BYj-48 уже имеет разъём с ключом, который вставляется в плату только в правильном положении. В противном случае, при подключении необходимо следовать цветовой схеме. Контакты IN1..IN4 можно подключить к любым цифровым выходам Arduino.

Можно самостоятельно подавать различные сигналы на выводы, заставляя мотор крутиться. Также есть готовые библиотеки. Например, Arduino IDE поставляется с библиотекой Stepper.



Коннектор JST-XH

Мотор соединяется с драйвером при помощи специального коннектора марки JST-XH. Соединить легко, а вот отсоединить проблематично. Каждый изощряется как может. Для изобретателя данного коннектора приготовлен отдельный котёл.

Дополнительные материалы

Ардуино: шаговый двигатель 28BYJ-48 и драйвер ULN2003

Реклама

инструкция, схемы и примеры использования [Амперка / Вики]

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

Примеры работы для Arduino и XOD

В качестве мозга для управления моторами рассмотрим платформу из серии Arduino, например Arduino Uno.

Подключение к Arduino

Выберите один из вариантов коммуникации драйвера с внешним микроконтроллером:

  • Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Shield, которая одевается сверху на Arduino Uno методом бутерброда. Для коммуникации используйте трёхпроводные шлейфы «мама-мама», который идут в комплекте с модулем.

Управление коллекторными моторами

Код для Arduino

Для начала покрутим каждый мотор в одну, а затем другую сторону. Прошейте платформу Arduino скетчем, приведённым ниже.

troyka-h-bridge-dual-example-arduino-dc-motors.ino
// Пины управления скоростью и направлением мотора
constexpr auto pinM1Speed = 9;
constexpr auto pinM1Direction = A1;
constexpr auto pinM2Speed = 10;
constexpr auto pinM2Direction = A0;
 
int pins[] = {pinM1Speed, pinM1Direction, pinM2Speed, pinM2Direction};
 
void setup() {
  // Настраиваем все пины управление моторами в режим выхода
  for (int i = 0; i < 4; i++) {     
    pinMode(pins[i], OUTPUT);
  }
} 
 
void loop() {
  // Крутим мотор M1 в одну сторону в течении 1 секунды
  motorsDrive(255, 0);
  delay(1000);
 
  // Крутим мотор M1 в другую сторону в течении 1 секунды
  motorsDrive(-255, 0);
  delay(1000);
 
  // Крутим мотор M2 в одну сторону в течении 1 секунды
  motorsDrive(0, 255);
  delay(1000);
 
  // Крутим мотор M2 в другую сторону в течении 1 секунды
  motorsDrive(0, -255);
  delay(1000);
 
  // Стоим на месте
  motorsDrive(0, 0);
  delay(1000);
 
}
 
// Функция управления моторами
void motorsDrive(int M1Speed, int M2Speed) {
  if (M1Speed > 0) {
    digitalWrite(pinM1Direction, HIGH);
  } else {
    digitalWrite(pinM1Direction, LOW);
  }
 
  if (M2Speed > 0) {
    digitalWrite(pinM2Direction, HIGH);
  } else {
    digitalWrite(pinM2Direction, LOW);
  }
  analogWrite(pinM1Speed, abs(M1Speed));
  analogWrite(pinM2Speed, abs(M2Speed));
}

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

troyka-h-bridge-dual-example-arduino-dc-motors-pwm.ino
// Пины управления скоростью и направлением мотора
constexpr auto pinM1Speed = 9;
constexpr auto pinM1Direction = A1;
constexpr auto pinM2Speed = 10;
constexpr auto pinM2Direction = A0;
 
int pins[] = {pinM1Speed, pinM1Direction, pinM2Speed, pinM2Direction};
 
void setup() {
  // Настраиваем все пины управление моторами в режим выхода
  for (int i = 0; i < 4; i++) {     
    pinMode(pins[i], OUTPUT);
  }
} 
 
void loop() {
  // Медленно разгоняем M1 в одну сторону
  for (int i = 0; i <= 255; i++) {
    motorsDrive(i, 0);
    delay(10);
  }
  // Медленно тормозим мотор
  for (int i = 255; i >= 0; i--) {
    motorsDrive(i, 0);
    delay(10);
  }
  // Медленно разгоняем M1 в другую сторону
  for (int i = 0; i <= 255; i++) {
    motorsDrive(-i, 0);
    delay(10);
  }
  // Медленно тормозим мотор
  for (int i = 255; i >= 0; i--) {
    motorsDrive(-i, 0);
    delay(10);
  }
 
  // медленно разгоняем M2 в одну сторону
  for (int i = 0; i <= 255; i++) {
    motorsDrive(0, i);
    delay(10);
  }
  // медленно тормозим мотор
  for (int i = 255; i >= 0; i--) {
    motorsDrive(0, i);
    delay(10);
  }
  // медленно разгоняем M2 в другую сторону
  for (int i = 0; i <= 255; i++) {
    motorsDrive(0, -i);
    delay(10);
  }
  // медленно тормозим мотор
  for (int i = 255; i >= 0; i--) {
    motorsDrive(0, -i);
    delay(10);
  }
 
}
 
// Функция управления моторами
void motorsDrive(int M1Speed, int M2Speed) {
  if (M1Speed > 0) {
    digitalWrite(pinM1Direction, HIGH);
  } else {
    digitalWrite(pinM1Direction, LOW);
  }
 
  if (M2Speed > 0) {
    digitalWrite(pinM2Direction, HIGH);
  } else {
    digitalWrite(pinM2Direction, LOW);
  }
  analogWrite(pinM1Speed, abs(M1Speed));
  analogWrite(pinM2Speed, abs(M2Speed));
}

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

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

Код для Arduino
troyka-h-bridge-dual-example-arduino-stepper.ino
// Библиотека для работы с шаговым двигателем
#include <AmperkaStepper.h>
 
// Создаём объект для работы с шаговым двигателем
// и передаём фиксированное количество шагов за полный оборот.
// Подробности в характеристиках двигателя
AmperkaStepper motor(200, A0, A1, 9, 10);
 
void setup() {
  // Устанавливаем скорость вращения 30 оборотов в минуту.
  motor.setSpeed(30);
}
 
void loop() {
  // 180° по часовой стрелке в двухфазном режиме
  motor.step(100, FULL_STEP);
  delay(1000);
 
  // 180° против часовой стрелки в однофазном режиме
  motor.step(-100, WAVE_DRIVE);
  delay(1000);
 
  // 180° по часовой стрелке в полушаговом режиме
  motor.step(200, HALF_STEP);
  delay(1000);
 
  // 180° против часовой стрелки в двухфазном режиме
  // этот режим используется по умолчанию, если не передан
  // второй аргумент
  motor.step(-100);
  delay(1000);
}

Пример работы для Espruino

В качестве мозга для управления моторами рассмотрим платформу из серии Espruino, например, Iskra JS.

Подключение к Espruino

Выберите один из вариантов коммуникации драйвера с внешним микроконтроллером:

  • Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Shield, которая одевается сверху на Arduino Uno методом бутерброда. Для коммуникации используйте трёхпроводные шлейфы «мама-мама», который идут в комплекте с модулем.

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

Код для Espruino IDE

Покрутим каждый мотор в одну, а затем другую сторону. Прошейте платформу Espruino скриптом, приведённым ниже.

troyka-h-bridge-dual-example-espruino-dc-motors.js
// Подключаем библиотеку «motor»
var Motor = require('@amperka/motor');
 
 
// Пины управления скоростью и направлением мотора
var motorOne = Motor.connect({phasePin: A1, pwmPin: P9, freq: 100});
var motorTwo = Motor.connect({phasePin: A0, pwmPin: P10, freq: 100});
 
// Интервал времени
var time = 1000;
// Счётчик
var state = 0;
 
// Каждую секунду меняем режим работы
setInterval(() => {
  motorOne. write(0);
  motorTwo.write(0);
  state++;
  if (state === 1) {
    motorOne.write(1);
  } else if (state === 2) {
    motorOne.write(-1);
  } else if (state === 3) {
    motorTwo.write(1);
  } else if (state === 4) {
    motorTwo.write(-1);
  } else {
    state = 0;
  }
}, time);

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

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

Код для Espruino
troyka-h-bridge-dual-example-espruino-stepper.js
// Подключаем библиотеку «motor»
var StepperMotor = require("StepperMotor");
 
// Создаём объект для работы с шаговым двигателем
// передаём пины управления
var motor = new StepperMotor({
  pins:[A0, A1, P9, P10],
  pattern:[0b0001,0b0011,0b0010,0b0110,0b0100,0b1100,0b1000,0b1001],
});
 
// Крутим вал на 100 шагов по часовой стрелке
motor.moveTo(100, 5000, function() {
  // Крутим вал на 100 шагов против часовой стрелке
  motor. moveTo(-100, 5000, function() {
    // Приехали
    console.log("Done!");
  }, true);  
});

Пример работы для Raspberry Pi

В качестве мозга для управления моторами рассмотрим одноплатные компьютеры Raspberry Pi, например, Raspberry Pi 4.

Подключение к Raspberry Pi

В компьютере Raspberry Pi присутствует только два канала с ШИМ-сигналом, и то которые используются для аналогового звукового выхода. В итоге для регулировки скоростью моторов придется жертвовать звуком. Используйте плату расширения Troyka Cap, которая добавит малине 9 пинов с поддержкой ШИМ.

Подключите драйвер к компьютеру Raspberry Pi через Troyka Cap. Для коммуникации используйте трёхпроводные шлейфы «мама-мама», который идут в комплекте с модулем.

Программная настройка

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

Код для Raspberry Pi

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

troyka-h-bridge-dual-example-raspberry-pi-dc-motors.py
# библиотека для работы с пинами GPIO
import RPi.GPIO as GPIO
# библиотека для работі с временем
import time
 
# выбираем имена пинов BCM
GPIO.setmode(GPIO.BCM)
# устанавливаем светодиод в режим выхода
GPIO.setup(24, GPIO.OUT)
 
try:
    while True:
        # ждём одну секунду
        time.sleep(1)
        # зажигаем светодиод
        GPIO.output(24, GPIO.HIGH)
        # ждём одну секунду
        time.sleep(1)
        # гасим светодиод
        GPIO.output(24, GPIO.LOW)
except KeyboardInterrupt:
    print('The program was stopped by keyboard.')
finally:
    GPIO.cleanup()
    print('GPIO cleanup completed.')

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

H-мост может управлять двумя отдельными коллекторными моторами или одним биполярным шаговым двигателем.

Подключение коллекторных моторов

  1. Подключите силовое питание для моторов через клеммник P.

    1. В качестве автономного источника обратите внимание на батарейный отсек с элементами питания.

Значение входного силового напряжения зависит от номинального напряжения подключаемых моторов и ограничено диапазоном от 3,3 до 12 вольт.

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

  1. Подключите силовое питание для мотора через клеммник P.

    1. В качестве автономного источника обратите внимания на батарейный отсек с элементами питания.

Значение входного силового напряжения зависит от номинального напряжения шагового двигателя и ограничено диапазоном от 3,3 до 12 вольт.

Элементы платы

Драйвер двигателей TB6612FNG

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

Термин «H-мост» появился благодаря графическому изображению схемы, напоминающему букву «H». Рассмотрим подробнее принцип работы H-моста.

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

S1 S2 S3 S4 Результат
1 0 0 1 Мотор крутится вправо
0 1 1 0 Мотор крутится влево
0 0 0 0 Свободное вращение мотора
0 1 0 1 Мотор тормозит
1 0 1 0 Мотор тормозит
1 1 0 0 Короткое замыкание источника питания
0 0 1 1 Короткое замыкание источника питания

Ключи меняем на MOSFET-транзисторы, а для плавной регулировки скорости вращения вала мотора используем ШИМ-сигнал.

Питание

На плате драйвера моторов присутствует два контура питания: силовое и логическое.

  • Силовой контур (VM) — напряжение для питания моторов от силовой части микросхемы TB6612FNG и светодиодов индикации. Силовое питание подключается через клеммник P c входным диапазоном напряжения от 5 до 12 вольт.
  • Логический контур (Vcc) — питание вспомогательной цифровой логики управления микросхемы TB6612FNG. Логическое питание поступает на плату модуля через контакт V. Диапазон входного напряжения от 3,3 до 5 вольт.

Если отсутствует хотя бы один из контуров питания — драйвер H-мост работать не будет.

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

Нагрузка

Нагрузка разделена на два независимых канала. Первый канал на плате обозначен шёлком M1, а второй канал — M2. К каждому каналу можно подключить по одному коллекторному мотору или объединить каналы для подключения биполярного шагового двигателя.

Обозначения «+» и «−» показывают воображаемые начало и конец обмотки. Если подключить два коллекторных двигателя, чтобы их одноимённые контакты щёточного узла соответствовали одному и тому же обозначению на плате, то при подаче на H-Bridge одинаковых управляющих импульсов, моторы будут вращаться в одну и ту же сторону.

Светодиодная индикация

Имя светодиода Назначение
DIR1/EN1 Индикация состояния направления и скорости первого канала M1. При высоком логическом уровне светится зелёным светом, при низком — красным. Яркость светодиода пропорциональна скорости вращения двигателя.
DIR2/EN2 Индикация состояния направления и скорости первого канала M2. При высоком логическом уровне светится зелёным светом, при низком — красным. Яркость светодиода пропорциональна скорости вращения двигателя.

Принципиальная и монтажная схемы

Габаритный чертёж

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

  • Драйвер моторов: TB6612FNG

  • Количество подключаемых моторов: 2

  • Напряжение логической части: 3,3–5 В

  • Напряжение силовой части: 3,3—12 В

  • Максимальный ток нагрузки: до 1,2 A на канал

  • Максимальная частота переключения (ШИМ): 100 кГц

  • Габариты модуля: 50,8×25,4×19 мм

Ресурсы

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

Драйвер биполярного шагового двигателя с поддержкой «микрошага», разработанный товарищами из www.schmalzhaus.com, базируется на микросхеме A3967.

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

  • Максимальный ток: 750 мА на одну фазу.
  • Напряжение привода двигателя: от 7В до 30В.
  • Возможность ограничения выходного тока: от 150мА до 750мА
  • 1/8, 1/4 и 1/2  микрошаговые режимы работы.
  • Управление 3 и 5 вольтовой логикой.
  • Не требует отдельного питания логической части, для этого на плате находится стабилизатор LM317.
  • Драйвер не поддерживает униполярные двигатели.

Назначение элементов и выводов драйвера:

Выводы:
  • MOTOR и выходы A и B — Подключение обмоток шагового двигателя. (A+ A- B+ B-)
  • PFD — Percent Fast Decay Input, тонкие настройки ШИМ драйвера микросхемы, скорость нарастания ШИМ.
  • RST — Сброс драйвера, при низком уровне сбрасывает внутренний транслятор и отключает все выходные драйверы.
  • ENABLE — При низком уровне, отключатся все выходы драйвера.
  • MS1 и MS2 — Управление микрошаговым режимом. По умолчанию входы притянуты к питанию и выставлен шаг 1/8. Для установки полного шага, на оба входа нужно подать низкий уровень, для полушага только на MS2, для 1/4 шага, только на MS1. (полный шаг (0,0), полушаг (1,0), шаг 1/4 (0,1) и шаг 1/8 (1,1).
  • PWR IN и вход M+ — Напряжение питания драйвера и моторов, также это напряжение подается на стабилизатор LM317 для питания логической части микросхемы.
  • +5V — Выход напряжения со стабилизатора LM317, можно использовать для питания Arduino
  • SLP — Сон, если подать низкий уровень, будет отключена внутренняя схема для минимизации потребления энергии.
  • STEP — Шаг, При переходе с низкого уровня на высокий, драйвер делает один шаг или микрошаг, если драйвер работает в микрошаговом режиме.
  • DIR — Состояние входа (высокий\низкий) определяет направление вращения двигателя.
  • GND — масса, все массы соединены.
Элементы:
  • Потенциометр CUR ADJ — Установка ограничения максимального тока подаваемого на двигатель, от 150 мА до 750 мА.
  • Перемычка APWR — отключает стабилизатор LM317 от цепи питания 5 вольт. По умолчанию соединена.
  • Перемычка 3/5 — Установка напряжения на выходе LM317, 5 или 3.3 вольта, По умолчанию разомкнута.

 Кратко про особенности микрошагового режима:

Сверху графики работы драйвера в полношаговом и микошаговом режиме.

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

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


Подключение к Arduino:

код из видео.

/// код из видео https://youtu.be/yXoJgDPRips

#define STEP 7
#define DIR 6

void setup() {
  pinMode(STEP, OUTPUT);
  pinMode(DIR, OUTPUT);
}

void stepper(unsigned int Step, int Speed, boolean Set) {
  digitalWrite(DIR, Set);    
  for (int i = 0; i < Step; i++){
     digitalWrite(STEP, HIGH);
     delayMicroseconds(Speed);
     digitalWrite(STEP, LOW);
     delayMicroseconds(Speed);
  }   
}

void loop(){
  stepper(500, 500, 1);
  stepper(1000, 200, 0); 
  stepper(500, 2000, 1); 
  stepper(100, 6000, 0);
}


Купить:

на али, тут.


Видео:


Запись опубликована автором admin в рубрике Обзоры с метками EasyDriver A3967, Драйвер шагового двигателя, шаговый двигатель.

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

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

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

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

Разделим шаговики на 3 основных класса:

  • Переменный шаговый двигатель
    Ротор не имеет постоянных магнитов, а оснащен ферромагнитной шестерней. Это материал, который крайне эффективно магнититься, но не так сильно по сравнению с постоянным. Это приводит к проигрышу в крутящем моменте. Зато отсутствует стопорящая сила, возникающая за счет магнитного поля между корпусом мотора и ротором с постоянным магнитом, которую легко почувствовать, покрутив шаговик в выключенном состоянии (характерные щелчки).
    Движок оснащен большим количеством катушек, которые включаются попарно. Величина шага варьируется от 5 до 15 градусов.
  • Шаговый двигатель с постоянным магнитом
    Ротор такого устройства состоит из нескольких разнополюсных магнитов. Принцип разбирали в самом начале. Характерный шаг от 45 до 90 градусов.

 

  • Гибридный шаговый двигатель
    Как можно догадаться, данный тип совместил в себе первые два и унаследовал все плюсы. Отличительными характеристиками данного шаговика являются высокая точность (1-5 градуса), малая вибрация и приличная скорость вращения. Все хорошо, но такие штуки отличаются от своих собратьев еще и ценой! Это связано со сложностью изготовки. Но производители пошли на технологическую хитрость. Практически невозможно создать многозубцовую (скажем, 100) шестеренку, где соседние зубья будут разных полюсов.

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

Теперь давайте пробежимся по методам управления шаговыми двигателями. Их также можно разделить на несколько пунктов:

  • Полношаговое управление одной обмоткой
    Это самый простой вариант. Последовательно включается только одна катушка и к ней притягивается вал мотора. В таком случае крутящий момент будет меньше чем в следующем способе.
  • Полношаговое управление двумя обмотками
    Принцип такой же, как и в предыдущем случае, но теперь управление идет парой электромагнитов. Это обеспечивает максимальный крутящий момент мотора, но требует в два раза больше тока или напряжения (зависит от метода подключения катушек друг к другу).
  • Полушаговое управление
    Данная логика включения катушек позволит увеличить число шагов, а, следовательно, и точность в 2 раза! Аналогично предыдущим пунктам, можно управлять одной катушкой или парой. Вся фишка в том, что в данном случае переход на следующую катушку происходит не при полном выключении предыдущей. То есть, при работе двух соседних катушек вал мотора встает в промежуточное состояние.
                           
  • Сверхточное управление
    Наверное, у многих после предыдущего пункта появилась мысль: а что если мы будем подавать разную мощность на две соседние катушки, меняющуюся по определенному закону, и получим еще больше промежуточных шагов? Именно так и устроены современные двигатели в сверхточных ЧПУ и прочих подобных устройствах. Хитрое управление обмотками позволяет значительно повысить точность позиционирования подобных моторов. В таких случаях используют специальные драйверы для шаговых двигателей, позволяющих осуществлять подобный режим управления.

В качестве примера в данной статье рассмотрим подключения двух шаговых двигателей к плате Arduino. Для начала рассмотрим мотор 17hs4401, которой используется в 3D принтерах. Данная модель является биполярной, то есть у нас есть две пары обмоток от которых идет 4 кабеля.

Шаговый двигатель 17hs4401 обладает большим крутящим моментом и может питаться от сети 12 V. Чтобы не перегружать нашу плату управления большими мощностями, шаговик подключается к ней с помощью специального драйвера А4988, который способен работать в жестких условиях (до 35 V и 2 А).

Слабые управляющие сигналы с Arduino идут на драйвер, а тот уже взаимодействует с 17hs4401 с более мощными параметрами по току и напряжению. К ножкам A4988 VDD и GND подводится питание логического уровня (3 - 5,5 В), к VMOT и GND - питание двигателя (8 - 35 В). Стоит отметить, что в данной системе бывают скачки напряжения, которые могут привести к поломке оборудования. Поэтому (на 3D принтерах всегда) ставят большие конденсаторы (более 47 мкФ). Драйвер имеет болт, который регулирует силу тока. Работая на предельных значениях, вы рискуете сжечь его, особенно если не наклеен радиатор, идущий в комплекте с устройством.

Шаговик 17hs4401 за полный оборот совершает 200 шагов. Это весьма неплохо, но для лучшего позиционирования (крайне важно для ЧПУ) используют схему управления с микрошагами, которую мы изучили ранее. A4988 позволяет осуществлять такую процедуру с коэффициентами 1/2, 1/4, 1/8 и 1/16 шага (комбинируя управление через выходы MS1, MS2, и MS3). 

MS1 MS2 MS3 Step
Low Low Low Full
High Low Low 1/2
Low High Low 1/4
High High Low 1/8
High High High 1/16

Пин STEP отвечает за микрошаг шаговика, DIRECTION - за направление вращения. Выводы STEP и DIRECTION не подтянуты к какому-либо конкретному внутреннему напряжению, поэтому их не стоит оставлять плавающими при создании приложений. Если требуется вращать двигатель в одном направлении,коннектим DIR с VCC или GND. Драйвер имеет три различных входа для управления состоянием питания: RESET, SLEEP и ENABLE. Вывод RESET плавает, если его не нужно использовать, то следует подключить его к SLEEP, чтобы подать на него высокий уровень и включить плату.

Теперь давайте перейдем непосредственно к подключению данного мотора к микрокомпьютеру. Соединяем контакты согласно указанной ниже схеме:

Обычно, такие моторы используются любителями при сборке 3d принтеров своими руками. Для этого используют Arduino MEGA и шилд ramps 1.4, о котором мы говорили в этой статье. Удобство использования данного комплекта состоит в том, что не нужно соединять кучу проводов - за вас уже все разведено. Таким образом, легко подключить сразу до 5 шаговиков!

Более простым и дешевым вариантом шагового мотора является модель 28byj-48. Его подключение немного запутанное, но несмотря на это он пользуется большой популярностью у любителей собирать роботов! Поэтому мы немного расскажем о том, как 28byj-48 подключить к Arduino. В первую очередь нам понадобиться драйвер ULN2003APG. Это очень дешевая железяка, встречается как готовая плата с разъемами, так и просто чип с голыми ножками. Сначала посмотрим, как подключать второй вариант.

На данной картинке покано подключение двух шаговых двигателей к плате Arduino Nano. C обратной стороны драйвера все ножки соединяем с цифровыми пинами, кроме крайней правой - ее ведем к GND. При программировании вам потребуется осуществить настройку моторов к пинам и в этом случае необходимо указать правильную последовательность: оранжевый, синий, желтый, розовый. Именно в таком порядке необходимо будет подавать управляющий сигнал с ножек микропроцессора. Как видно на рисунке, красный провод левого коннектора не попадает на ULN2003APG - его необходимо соединить с выходом 5V или VIN. 

Есть более простой способ подключения шаговика 28byj-48 через готовую плату с коннектором:

На всякий случай приведем распиновку драйвера:

На этом у нас все, если будут вопросы - всегда готовы ответить!

Как использовать шаговый двигатель в Arduino


Следующее руководство представляет собой краткое введение в шаговые двигатели. Эти двигатели могут двигаться на очень небольшой шаг за шагом, что делает их подходящими для проекты, требующие точности. Во-первых, в этом руководстве вы можете узнать о способ работы шаговых двигателей. Затем в пошаговом руководстве вы узнаете, как подключиться к свой Arduino и управляйте ими с компьютера с помощью Ozeki 10.Приступим прямо сейчас.

Что такое шаговый двигатель?

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

Как работает шаговый двигатель?

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

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

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

Arduino

Рисунок 1 - Схема подключения шагового двигателя Arduino

Как использовать шаговый двигатель Arduino в Ozeki

Соединение с мультиконтроллером шагового двигателя способно передавать команды вашим шаговым двигателям от любого выбранного соединения Ozeki.Шаговые двигатели - самые точные из доступных двигателей. Вы можете приказать им двигаться точно на 1,8 / 16 = 0,1125 градуса / шаг в каждом направлении. Команды движения состоят из необходимых шагов и скорости вращения двигателей. Вы также можете настроить ограничители движения двигателя. Чтобы использовать шаговый двигатель в Ozeki, вам сначала нужно загрузить Ozeki Robot Developer. Озэки Robot Developer установит библиотеки Arduino, необходимые для эффективного использования этого датчика.

Скачать Ozeki Robot Developer

После того, как разработчик Ozeki Robot будет установлен, вам необходимо загрузить код управления шаговым двигателем. к вашему Arduino.Вы можете найти код и инструкции по загрузке на следующих страницах. Процесс загрузки состоит из двух шагов: сначала вам нужно отформатировать EEPROM Arduino, тогда вам нужно загрузить контрольный код. Процедура очень проста, требуется всего лишь несколько секунд.

Загрузите код шагового двигателя в Arduino Mega 2560
Загрузите код шагового двигателя в Laser Cutter
Загрузите код шагового двигателя в Ozeki Matrix

Моторы Arduino и Ozeki будут обмениваться данными через порт USB с использованием протокола Ozeki Stepper Motor.Этот Протокол позволяет вам использовать мотор прямо на вашем ПК. Вы сможете управлять этим двигателем через Интернет. пользовательский интерфейс или вы сможете общаться с ним с помощью Ozeki Chat. Вы можете узнать больше об управлении чатом на следующей странице.

Как общаться с шаговым двигателем в чате

Важно понимать управление чатом, потому что когда вы создаете робота, вы хотите управлять этим двигателем, отправляя и получая сообщения.если ты откройте приложение Ozeki Robot Developer, вы увидите, кому вы можете написать C # .Net программа для работы с этим мотором.

Шаги подключения

  1. Подключите шаговый двигатель к Arduino, следуя схеме подключения
  2. Подключите плату Arduino к компьютеру с помощью USB-кабеля для передачи данных
  3. Проверьте COM-порты в списке устройств Windows
  4. Откройте приложение Arduino на вашем компьютере
  5. Загрузить пример кода в микроконтроллер
  6. Откройте https: // localhost: 9515 в своем браузере
  7. Выберите подключение шагового двигателя
  8. Установите скорость и градус для проверки шагового двигателя

Обзор системы

Предлагаемая нами система состоит из шагового двигателя, подключенного к аналоговому порту. вашего Arduino.Arduino будет отвечать за чтение данных с этого устройства. в реальном времени. Мозг системы будет работать на ПК (рисунок 2). На ПК Озэки 10 смогут управлять общением. Вы можете легко запустить Ozeki 10 с помощью веб-браузера.

Рисунок 2 - Системная конфигурация шагового двигателя, подключенного к ПК с помощью Arduino

Предварительные требования

  • Шаговый двигатель (и)
  • Драйвер (и) шагового двигателя DRV8825 или A4988
  • Концевой упор
  • Ozeki 10 установлен на вашем компьютере
  • Программируемая плата (Arduino Mega plus RAMPS v1.4, модуль контроллера шагового двигателя Ozeki
    или плата контроллера лазерного резака)
  • USB-кабель необходим между платой и компьютером

Шаг 1. Подключите шаговый двигатель к Arduino

.

Вы можете увидеть, как подключить шаговые двигатели на любую из следующих досок:

После подключения подключите плату к компьютеру!

Шаг 2 - Загрузите код в микроконтроллер

(Вот код для загрузки)

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

Шаг 3 - Запустите Ozeki 10, чтобы попробовать шаговый двигатель

После этого вы подключили Arduino к Raspberry Pi, теперь вы можете опробовать шаговый двигатель.Для этого вам нужно открыть GUI (графический пользовательский интерфейс) Ozeki 10. Это можно сделать, набрав localhost: 9513 в веб-браузере и нажав Enter. Здесь Ozeki 10 автоматически определяет подключенные устройства, поэтому после подключения шаговый двигатель, вы увидите его в списке подключений. Все, что у тебя есть сделать здесь, это открыть соединение и попробовать шаговый двигатель.

Шаг 4 - Настройте шаговый двигатель в Ozeki 10

Чтобы настроить шаговый двигатель (подключенный к Arduino) в Ozeki 10, который установлен на вашем компьютере, вам необходимо открыть графический интерфейс пользователя (GUI) Ozeki 10.Вы можете открыть графический интерфейс, введя URL-адрес компьютера в свой веб-браузер. Например, если у нашего ПК IP-адрес 192.168.1.5, мы бы введите http://192.168.1.5:9513 в наш веб-браузер.

Шаг 5 - Изучите протокол шагового двигателя

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

Ссылки:
https://www.tutorialspoint.com
http: //www.tigoe.ком

Дополнительная информация


Arduino - Шаговый двигатель | Учебное пособие по Arduino

ПРЕДУПРЕЖДЕНИЕ

Это руководство в настоящее время обновляется.

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

Существует два типа шаговых двигателей: биполярный шаговый двигатель и униполярный шаговый двигатель. Они отличаются друг от друга внутренним устройством и принципом работы.

Невооруженным взглядом они похожи друг на друга. Однако их можно отличить по количеству проводов. Биполярный двигатель обычно имеет четыре провода. У униполярного двигателя обычно шесть проводов.

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

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

НЕЛЬЗЯ подключить шаговый двигатель напрямую к Arduino. Мы ДОЛЖНЫ подключаться через драйвер двигателя или контроллер двигателя.

Драйвер мотора и контроллер мотора могут быть:

  • Чип (например, SN754410)

  • Модуль (например, A4988)

  • Shield (например, Arduino Motor Shield Rev3, контроллер шагового двигателя PES-2605, Adafruit Motor / Stepper / Servo Shield)

Чтобы облегчить задачу новичкам, мы рекомендуем использовать один из следующих экранов:

  • Arduino Motor Shield Rev3: это официальный щит от Arduino.

  • Контроллер шагового двигателя PES-2605: очень прост в использовании. Кроме того, его библиотека поддерживает различные функции. Он поддерживает метод микрошага, который обеспечивает плавное движение шагового двигателя. Компания, производящая этот щит, хорошо подготовила документацию и обучающие материалы. Однако, чтобы использовать этот щит, нам нужно использовать его вместе с щитом PHPoC WiFi. Это НЕ добавляет сложности, но увеличивает стоимость.

Если вам не важна стоимость, мы рекомендуем использовать контроллер шагового двигателя PES-2605.

Если вам нужно сэкономить, мы рекомендуем использовать Arduino Motor Shield Rev3.

  • Стек Arduino Motor Shield Rev3 на Arduino Uno

  • Подключите шаговый двигатель к Arduino Motor Shield Rev3

  • Изображение разработано с использованием Fritzing. Нажмите для увеличения

  • Загрузите или скопируйте приведенный выше код и откройте его с помощью Arduino IDE

  • Нажмите кнопку «Загрузить» в Arduino IDE, чтобы загрузить код в Arduino

  • Откройте Serial Monitor, чтобы увидеть результат:

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

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

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

  • Полный шаг: Единица перемещения - один шаг, что эквивалентно значению градуса, указанному в техническом описании шагового двигателя или в руководстве.

  • Half-step: делит каждый полный шаг на два меньших шага. Единица перемещения - половина полного шага. Этот метод позволяет двигателю двигаться с двойным разрешением.

  • Микрошаг: делит каждый полный шаг на множество более мелких шагов. Единица перемещения - это часть полного шага. Дробь может быть 1/4, 1/8, 1/16, 1/32 или даже больше.Этот метод позволяет двигателю двигаться с более высоким разрешением. Это также позволяет двигателю двигаться более плавно на низких скоростях. Чем больше дивиденд, тем выше разрешение и плавнее движение.

Например, если в таблице данных двигателя указано 1,8 градуса / шаг:

  • Полный шаг: двигатель может двигаться со скоростью 1,8 градуса / шаг <⇒ 200 шагов / оборот

  • Полушаг: двигатель может двигаться со скоростью 0,9 градуса / шаг <⇒ 400 шагов / оборот

  • Микрошаг: двигатель может двигаться с 0.45, 0,225, 1125, 0,05625 градуса / шаг <⇒ 800, 1600, 3200, 6400 ... шагов / оборот

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

Это расширенное использование. Новичкам НЕ нужно обращать на это внимание. Это происходит в диапазоне скоростей, в котором частота шагов равна собственной частоте двигателя. Может быть слышно изменение шума, производимого двигателем, а также усиление вибрации. В реальных приложениях разработчик ДОЛЖЕН обратить внимание на эту проблему.

Подписывайтесь на нас

Поделитесь с друзьями, чтобы помочь нам распространить руководство!

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


Рисунок 1. Электрические схемы шагового двигателя.
Используйте омметр для определения типа.

, автор Lewis Loflin

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

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

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

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

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

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

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


Рис. 2. Конструкция базового шагового двигателя.

Рисунок 3. Две фазы включены для увеличения крутящего момента.

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

Для получения более подробной технической информации см. Stepper Motor Basis от Microchip. (PDF файл)


Схема к этой программе.

с использованием моста L298n H с шаговыми двигателями на Arduino

Мост L298 Dubai H построен на базе микросхемы l298, изготовленной ST Semiconductor.L298 - это интегральная монолитная схема в 15-выводном мульти-ваттном и мощном корпусе S020. Это полный двухмостовой драйвер высокого напряжения и тока, предназначенный для работы со стандартным логическим уровнем TTL и управления индуктивными нагрузками, такими как реле, соленоиды и шаговый двигатель постоянного тока.

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

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

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

Спецификация

  • Электропитание двигателя: от 7 до 24 В постоянного тока
  • Управляющая логика: стандартный уровень логики TTL
  • Выходная мощность: до 2 А каждый
  • Контакты включения и управления направлением
  • Радиатор
  • Светодиодный индикатор включения
  • 4 светодиодных индикатора направления

На рынке представлено множество моделей плат l298n, примеры смотрите на фото ниже.Все эти устройства имеют одинаковые функции и возможности.

Принципиальная схема L298n

Как управлять шаговым двигателем с модулями L298n.

Что такое шаговый двигатель?

Цифровой электродвигатель, который перемещается на один шаг за раз, и каждый шаг определяется углом шага. Шаговый двигатель во время своего вращения движется отдельными шагами. Каждая ступенька определяется углом ступени.В приведенном ниже примере вы можете заметить, что у ротора есть 4 различных шага для полного вращения на 360 градусов. Как определено в шаге под углом 90 градусов. Поскольку шаговый двигатель действительно движется незаметно, мы можем сказать, что шаговый двигатель на самом деле является двигателем с цифровым управлением. Эта характеристика делает его очень подходящим для цифровых интерфейсов, интегрируемых с микроконтроллером. Если вы хотите узнать больше о шаговом двигателе, загрузите ссылку ниже.

В этом примере мы будем использовать 2-фазный гибридный шаговый двигатель серии 14HM

Схема подключения

Шаговый двигатель имеет 200 шагов на оборот и может работать со скоростью 60 об / мин.См. Схему подключения ниже. Подключите провода A +, A-, B + и B- от шагового двигателя к соединению модуля OUT 1, OUT 2, OUT3 и OUT4 или A1, A2, B3 и B4. Установите перемычку, входящую в комплект поставки модуля L298n, на штырь. Как вы можете видеть на схеме ниже, красный, зеленый, желтый и синий подключены к контакту платы l298n.

Сведения об оборудовании

Назначение выводов винтовых клемм
Штифт Цвет Имя Описание
1 зеленый Двигатель А - Выход на двигатель A (-)
2 зеленый Двигатель A + Выход на двигатель A (+)
3 Синий VMS Вход питания двигателя 4-35 В (+)
4 Синий ЗЕМЛЯ Земля (-)
5 Синий 5 В Регулируемая мощность 5 В (+)
6 зеленый Двигатель B - Выход на двигатель B (-)
7 зеленый Двигатель B + Выход на двигатель B (+)

Обратите внимание, что регулируемое напряжение 5 В на контакте 5 выше является выходом, когда установлена ​​перемычка 5V_EN.В противном случае вы должны подать регулируемое напряжение 5 В на вывод 5, чтобы схема могла работать должным образом. Не включайте встроенный регулятор 5 В, если вы подаете более 16 В на двигатели на контакте 3, иначе регулятор перегорит.

Назначение выводов заголовка
Штифт Имя Описание
1 ENA Вход для включения двигателя A
2 IN1 Вход для управления двигателем A
3 IN1 Вход для управления двигателем A
4 ENA Вход для включения двигателя B
5 IN1 Вход для управления двигателем B
6 IN2 Вход для управления двигателем B

Джемперы
Имя Описание
5V_EN Включить бортовой регулятор 5V
U1 Включить двигатель A, входной контакт IN2, подтягивающий резистор (10 кОм)
U2 Включить двигатель A, входной контакт IN2, подтягивающий резистор (10 кОм)
U3 Включить подтягивающий резистор входного контакта IN3 двигателя B (10K)
U4 Включить подтягивающий резистор на входе IN4 двигателя B (10K)
CSA Связывает датчик тока двигателя A с землей
CSB Связывает датчик тока двигателя B с землей

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

Программное обеспечение

Регулировка скорости

Скорость двигателей можно регулировать, подключив выходы ШИМ микроконтроллера вашего робота к входным контактам ENA и ENB на плате драйвера двигателя. Вывод ENA управляет двигателем A, а вывод ENB - двигателем B. Когда эти выводы ВЫСОКОГО уровня, мощность выводится на двигатель.Используя ШИМ, вы очень быстро включаете и выключаете питание, чтобы отрегулировать скорость двигателя. Чем длиннее рабочий цикл ШИМ, тем быстрее будет вращаться двигатель. Мы рекомендуем всегда использовать рабочий цикл ШИМ не более 90%.

Регулятор направления

Направление вращения двигателей контролируется с помощью входных контактов IN1, IN2, IN3 и IN4 на плате драйвера двигателя. Подключите эти контакты к цифровым выходам микроконтроллера вашего робота. Чтобы двигатель А двигался вперед, установите IN1 = HIGH и IN2 = LOW.Чтобы двигатель А двигался назад, установите IN1 = LOW и IN2 = HIGH. Тот же метод используется для управления двигателем B: установите IN3 = HIGH и IN4 = LOW, чтобы двигаться вперед, и установите IN3 = LOW и IN4 = HIGH, чтобы двигаться назад. Обратите внимание, что «вперед» и «назад» относятся к направлению самих двигателей. Если ваш робот не движется в ожидаемом направлении, измените полярность двигателя, поменяв местами зеленые винтовые клеммы для двигателя A + и - и / или двигателя B + и -.

Остановка

Чтобы отключить питание двигателей, просто установите ENA = LOW для двигателя A и ENB = LOW для двигателя B.Это приведет к медленной и естественной остановке двигателей из-за трения. Чтобы выполнить быстрое торможение, установите ENA = LOW, IN1 = LOW и IN2 = LOW для двигателя A и ENB = LOW, IN3 = LOW и IN4 = LOW для двигателя B. Двигатели мгновенно остановятся. Вот несколько удобных таблиц, показывающих различные режимы работы.

Таблицы истинности драйверов двигателя

Вот несколько удобных таблиц, показывающих различные режимы работы.

Таблица истинности двигателя A
ENA IN1 IN2 Описание
0 НЕТ НЕТ Двигатель A выключен
1 0 0 Двигатель А остановлен (тормоза)
1 0 1 Двигатель A включен и вращается назад
1 1 0 Двигатель A включен и вращается вперед
1 1 1 Двигатель А остановлен (тормоза)

Таблица истинности двигателя B
ENB IN3 IN4 Описание
0 НЕТ НЕТ Двигатель B выключен
1 0 0 Двигатель B остановлен (тормоза)
1 0 1 Двигатель B включен и вращается назад
1 1 0 Двигатель B включен и вращается вперед
1 1 1 Двигатель B остановлен (тормоза)

Подключение 4-проводного шагового двигателя к Arduino

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

Откройте свою Arduino IDE, просто следуйте инструкциям ниже.

Загрузить введение в шаговые двигатели | PDF
Загрузить техническое описание серии 14HM | PDF
Загрузить техническое описание L298n | PDF

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

с использованием Arduino

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

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

Из-за этой дискретной природы пошагового вращения шагового двигателя они часто используются в промышленной автоматизации, системах ЧПУ и т. Д., Где требуется точное движение.

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

Выберите следующий набор проектов Arduino, которые вы хотите изучить в Electronicshub : Arduino Projects »

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

Принципиальная схема управления шаговым двигателем с использованием необходимых компонентов Arduino

  • Arduino UNO [Купить здесь]
  • ИС драйвера двигателя L293D [Купить здесь]
  • Биполярный шаговый двигатель
  • Источник питания (подходит для вашего шагового двигателя)
  • Макетная плата ( Макетная плата)
  • Соединительные провода

Краткое введение в шаговый двигатель

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

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

В основном существует три типа шаговых двигателей: шаговые двигатели с переменным сопротивлением (VR), шаговые двигатели с постоянным магнитом (PM) и гибридные шаговые двигатели. В зависимости от обмотки статора шаговые двигатели также могут быть классифицированы как биполярные шаговые двигатели и униполярные шаговые двигатели.

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

Например, схема драйвера униполярного шагового двигателя может быть реализована с помощью простой транзисторной схемы или микросхемы транзистора Дарлингтона, такой как ULN2003A. Но в случае биполярного шагового двигателя нам необходимо реализовать драйвер типа H-моста, такой как L293D Motor Driver IC.

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

Наиболее распространенный угол шага или количество шагов для шаговых двигателей составляет 1,8 0 или 200 шагов (оба они такие же, как 1,8 0 x 200 = 360 0 ).

Как разработать схему управления шаговым двигателем?

В этом проекте мы использовали биполярный шаговый двигатель. Следовательно, мы использовали микросхему Motor Driver IC L293D, которая представляет собой драйвер типа H-моста.Поскольку это биполярный шаговый двигатель, нам нужно подключить всего 4 провода.

Итак, подключите два провода от одной катушки к выходам 1 и 2 L293D, а два других провода от второй катушки к выходам 3 и 4.

4 входа IC L293D Motor Diver предоставлены Arduino UNO. Поэтому подключите их к любому из 4 контактов цифрового ввода / вывода (здесь мы подключили их к контактам 2, 3, 4 и 5 Arduino UNO).

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

Контроль шагов осуществляется с помощью компьютера с использованием последовательного монитора. Итак, убедитесь, что выводы RX и TX Arduino не используются в качестве цифрового ввода-вывода. В качестве альтернативы мы можем контролировать шаги или вращение двигателя с помощью аналогового входа через потенциометр.

Работа над проектом

В этом проекте разработано простое управление шаговым двигателем с использованием Arduino UNO и микросхемы драйвера двигателя L293D. Здесь объясняется работа проекта.

Шаговый двигатель, используемый в этом проекте, представляет собой биполярный шаговый двигатель типа PMH (гибридный двигатель с постоянным магнитом). Поскольку это двухполюсный двигатель, только 4 провода соответствуют концевым клеммам двух катушек. Эти 4 провода подключены к выходным контактам микросхемы драйвера двигателя L293D.

Чтобы управлять шаговым двигателем, мы будем использовать технику под названием «Half Stepping». Двигатель, используемый в этом проекте, имеет 200 шагов. При однофазном шаговом возбуждении, то есть подаче питания только на одну фазу за раз, мы можем достичь нормального вращения на 200 шагов с наименьшим потреблением энергии.

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

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

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

Таким образом, с половинным шагом мы можем получить вдвое большее разрешение при более плавной работе. На изображении ниже показан 8-шаговый метод возбуждения «Half Stepping».

Как упоминалось ранее, угол шага двигателя, используемого в этом проекте, составляет 1,80, то есть 200 шагов для полного шага возбуждения. Чтобы увеличить разрешение (удвоить разрешение), мы будем использовать полушаговое возбуждение и достичь 400 шагов.

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

После выбора направления мы можем ввести количество шагов напрямую от 1 до 400.

Код

Приложения

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

Конструкция и вывод видео

билдр The Big Easy Stepper Motor Driver + Arduino

[[Step Motor | Stepper]] (или шаговые) двигатели действительно классные. Они идеально подходят для автоматизации или в любое время, когда вам нужно, чтобы двигатель повернулся в определенную точку с определенной скоростью в определенном направлении. И, в отличие от обычных двигателей, шаговые двигатели могут делать все это и удерживать свое положение, когда они не движутся - компромисс в том, что они не могут двигаться так быстро, и вы должны постоянно приводить их в действие на полную мощность, но взамен вы получаете полный контроль.

У

степперов есть минимальное расстояние, на которое они могут двигаться, известное как шаг. Вы можете почувствовать эти шаги, если медленно поворачиваете шаговый двигатель рукой. Наиболее распространенные степперы имеют 200 шагов на оборот, поэтому все движения совершаются с шагом 1,8 ° (360 ° / 200). Поначалу управлять ими может быть сложно, поэтому сегодня мы делаем статью об использовании драйвера шагового двигателя Big EasyDriver. Большой easyDriver - старший брат легкого драйвера, о котором мы писали в прошлом году. Он способен выдерживать гораздо больше злоупотреблений и мощности, поэтому его не так просто разрушить, как простой драйвер, он может приводить в действие гораздо более крупные двигатели, а также дает вам немного больше контроля, позволяя вам изменять настройку микрошага.

Напряжение / ток двигателя

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

Лучше всего запитать драйвер максимально возможным напряжением (максимум до 35 В для этого драйвера) . Это позволит двигателю вращаться быстрее, чем при более низком напряжении. Почему это так сложно, но если вы хотите узнать об этом больше, вам действительно стоит прочитать это: Gecko Drive - Основы шагового двигателя

На драйвере bigEasy есть мини-потенциометр для управления током двигателя.Это варьируется от 0 мА до 2 А (2000 мА). Вы хотите установить его на то, на что рассчитан ваш двигатель. Слишком высоко, вы можете сжечь двигатель, слишком низкое, вы не получите всю мощность от вашего двигателя. Примечание: стрелки на потенциометре регулировки тока направлены назад. Помните об этом при настройке текущих пределов. Если вы используете двигатель большей мощности, вы, вероятно, захотите также установить радиатор на драйвер.

Подключение

Несмотря на то, что на Big Easy Driver около 30 контактов, нам нужно всего несколько, чтобы он заработал.Фактически, большая часть контактов - это просто дубликаты, разнесенные по-разному.

Настройка barebones:

Подайте питание на драйвер от источника питания 8-35 В - При использовании сетевого адаптера убедитесь, что у адаптера есть как минимум достаточный ток для двигателя. Чем выше номинальный ток / сила тока, тем лучше, и это просто означает, что он не перегорит. (Big Easy Driver может подавать до 2 ампер)
Подключите 3 провода управления от «gnd», «dir» и «step» Big Easy Driver к Arduino, как показано.
Подключите шаговый двигатель к драйверу - Для меня красный / зеленый были одной парой, а синий / желтый - другой. Если это не работает для вас, см. Раздел ниже о поиске пар катушек вашего двигателя.

Код

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

Библиотека отслеживает даже положение двигателя. Итак, если вы скажете ему перейти на 10 000 - он знает, что он уже на 9,00, поэтому он переместится еще на 1000 шагов. Затем вы можете сказать ему идти домой, и он вернется на 10 000 шагов назад к 0.

Очень рекомендую скачать полную библиотеку у автора. Версия, которая у меня здесь, - баребонная, без примеров. Это просто потому, что я считаю, что если вы разместите код, вы должны опубликовать все, что вам нужно, чтобы он работал

Чтобы заставить этот код работать, , прежде чем вы загрузите код или даже откроете программу Arduino , нам нужно поместить папку «AccelStepper» в вашу библиотеку Arduino.Если вы не знаете, где это по умолчанию, посмотрите вправо.
Если вы нажмете кнопку загрузки справа от «Arduino», вы сможете загрузить все это в виде zip-архива, поэтому вам не нужно копировать все файлы.

Расположение папки библиотеки по умолчанию

На вашем Mac: : в (домашний каталог) / Documents / Arduino / библиотеки
На вашем ПК: : Мои документы -> Arduino -> библиотеки
На вашем Linux-компьютере: : (домашний каталог) / sketchbook / библиотеки

Дополнительная информация

Поиск пар катушек для двигателей

Данному драйверу требуется всего 4 провода от вашего шагового двигателя.Если у вас есть 4-проводный шаговый двигатель, это круто! Если у вас шестипроводный шаговый двигатель, это будет немного сложнее. Но несмотря ни на что, нам нужно найти 2 основные катушки внутри двигателя. А если ошибешься, мотор просто дергается или не движется, но ты его не сломаешь.

Двигатель, 4 провода

С помощью омметра выберите один провод наугад и проверьте его с другими, пока не найдете пару, которая показывает сопротивление в несколько Ом (чаще всего 1–200 Ом). Эти двое - ваша «пара А». Убедитесь, что два других провода имеют одинаковое сопротивление (в противном случае оно может быть сломано), и это ваша «пара B».У двух пар проводов нет обратной стороны, поэтому просто подключите провода от «пары A» к «A» на драйвере, а «пары B» к «B».

Двигатель, 6 проводов

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

6-проводные двигатели

имеют две катушки, как и четырехпроводные двигатели. Но у 6-проводных двигателей также есть дополнительные провода, которые подключаются к середине каждой катушки (центрам). Таким образом, каждая катушка на самом деле имеет 3 провода, центр и два конца. Мы не используем центральные провода катушки, нам просто нужны 4 конца катушки (по 2 от каждой катушки).

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

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

Чтобы найти правильные 2 провода, нам нужно найти 3 провода от каждой катушки. Начните с простого выбора одного из них наугад и с помощью омметра проверяйте сопротивление с другими, пока не обнаружите, что 2 соединены с этим проводом.(3 из них не покажут связи, потому что они являются частью другой катушки). Теперь эти 3 предназначены для катушки «А». Теперь возьмите эти 3 провода и проверьте сопротивление между любыми двумя из них, пока не найдете 2 с наибольшим сопротивлением. Это два конца катушки «А». Проделайте то же самое с тремя другими проводами, чтобы найти концы катушки «B».

С двумя парами проводов обратной стороны нет. Так что просто подключите провода от катушки A к A на драйвере, а два провода от катушки B к b.

8-проводной двигатель

Невозможно сделать это, не заглянув в документацию.

Микрошаговый

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

При использовании микрошагового двигателя шаговый двигатель потребует больше «шаговых плюсов» для перемещения двигателя. Например, если вы используете 16 микрошагов (по умолчанию в Big Easy Driver) на шаг, 200-шаговый двигатель потребует 3200 «шаговых плюсов», чтобы совершить полный оборот.Просто обратите внимание, когда вы задаетесь вопросом, почему при выполнении шага 200 шагов двигатель почти не вращается.

Microstepping снизит максимальную скорость / крутящий момент двигателя (примерно на 30%), так что это сделка между скоростью и плавностью. Из-за этого многие высокопроизводительные драйверы переключаются на полный пошаговый режим (без микрошага) на более высоких скоростях, и технически вы могли бы сделать это с помощью большого easyDriver, но для меня это слишком сложно, чтобы понять, поэтому я не буду рассказывать об этом.

Регулировка микрошага

По умолчанию Big Easy Driver использует микрошаговый режим с 16 шагами.Если вы хотите уменьшить это, вы можете сделать это, потянув выводы MS1, MS2 и MS3 ВЫСОКИЙ (подключив их к 5 В) или НИЗКИЙ (подключив их к GND). Посмотрите на таблицу сбоку, чтобы увидеть, как вносить изменения.

Как запустить свой первый шаговый двигатель Arduino

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

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

Во-первых, настройка. Я использовал Arduino Duemilanove, шаговый двигатель 28BYJ-48 и плату драйвера ULN2003 - все это я

купил на eBay. Вот мотор и плата:

Самая простая часть - это подключение - двигатель может подключаться только одним способом:

Что касается платы, нужно помнить лишь несколько вещей:

  • Все должно быть выключено. Ни питания на плате, ни работающей Arduino, ничего. Всегда отключайте все перед заменой или переустановкой проводки.
  • Перемычка платы остается на месте. Я использовал шаговый двигатель на 5 вольт, поэтому ничего не менял. На самом деле я не знаю, используется ли перемычка для более высоких напряжений или что-то в этом роде; однако, если вы не используете другой номинал мотора, оставьте перемычку как есть (и если да, извините, это руководство не может быть более полезным).
  • +/- 5В для этих клемм на самом деле причинили мне много горя. Я знал, что вам нужно использовать отдельное питание для двигателей, но как именно это сделать, было проблемой (теоретически вы могли бы использовать питание от Arduino, но в Интернете полно ужасных историй от людей, которые пытались и потерпели неудачу).В конце концов, я нашел регулируемую вилку питания, которая у меня лежала, установил ее на 4,5 В (5 В не было доступно в качестве настройки) и подключил два провода питания к двум контактам на плате шагового двигателя.
  • Пытаться вычислить плюсовую и минусовую мощность в крысином гнезде кабелей, которые я использовал, было неинтересно. Тем не менее, вот совет: при правильной настройке мультиметра черный провод будет отрицательным или заземленным, если вы не подключили что-то неправильно и на вашем мультиметре не будет обратного показания. Тестируйте и не полагайтесь на то, что черный всегда заземлен, поскольку ошибка может привести к сгоранию компонентов!
  • Четыре контакта от платы к Arduino помечены с IN1 по IN4 - подключите их к контактам Arduino с 8 по 11.Я рекомендую вам быть последовательными: IN1 - 8, IN2 - 9 и т. Д. Если вы используете кабель, то, конечно, будет проще.

Между прочим, самая большая проблема заключалась не в настройке оборудования, а в проводке: для контактов на шаговой плате требовались заглушки (гнездовые разъемы), а для контактов на Arduino - необходимые контакты (штыревые разъемы). Я заказал больше кабелей, но сейчас это не помогло; ковыряясь вокруг, я смог найти некоторые части, которые нужно разрезать.

Добавить комментарий

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