Arduino подключение шагового двигателя: Шаговый двигатель 28BYJ-48: описание, подключение, схема, характеристики

Содержание

Управляем шаговым двигателем с телефона. Двигатель 28byj 48.

Сегодня я расскажу как управлять шаговым двигателем 28byj 48 5v. Для управления двигателем мы будем использовать драйвер на микросхеме ULN2003. Так как управлять работой двигателя мы будем по WIFI то и подключать будем к плате ESP8266. Кому интересно подключение к Ардуино, то советую посмотреть вот это видео. Та подробно рассказано про шаги и про библиотеку для управления. Я в том примере использовал библиотеку AccelStepper.
 
Вот небольшой пример сегодняшнего урока. Слева – это как выглядит на телефоне наше приложение, а справа я управляю шаговым двигателем. Что бы не заслонять сам мотор мне пришлось держать телефон под наклоном. Но думаю, что и так всё видно. Теперь про работу.

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

Подключение очень простое. Сначала вставляем разъём идущий от шагового двигателя к драйверу ULN2003, а контакты с драйвера соединяем с платой ESP. Что бы было проще, я соединил так.

  • IN1 – D1,
  • IN2 – D2,
  • IN3 – D3,
  • IN4 – D4

Питание.
контакт – соединил с землёй на плате, а + с контактом VIN.
Это уже 4 видео из серии — Управляем устройствами с телефона. Посмотреть их, можно здесь.
А теперь пробежимся по скетчу.

Это установленные библиотеки. Вам ничего дополнительно устанавливать не придётся. Все они входят в комплект ARDUINO IDE.

  • Сюда вставляем имя WIFI сети и пароль.
  • Создаём переменные для хранения значений к каким контактам на плате ESP подключен драйвер двигателя, для  удобного обращения к ним.
  • Так как мы не используем никаких библиотек для работы с шаговым двигателем, то нам придётся самим управлять шагами, Вот здесь мы и указываем, что делать при об обращении к этим массивам.
  • Это переменная для обращения к команде стоп. Если она равна 3, то остановить двигатель.
  • Здесь я создал переменную отвечающую за скорость вращения.
  • 1 это максимальная скорость. А 70 это очень медленное вращение. Эти цифра – это просто delay в цикле между шагами.
  • А это названия которые будут выведены на кнопках.

 

Следующий код

  • Весь этот HTML код отвечает за вывод на экран кнопок при включенном состоянии и выключенном.
  • Это кодировка для распознавания русского шрифта.
  • Это title страницы.
  • Здесь все основные настройки. Такие как ширина и высота, размер шрифта и цвет шрифта. И другие. Всё это будет работать, если дальше в тексте не будут внесены изменения.
  • Это вывод на экран заголовка. Заголовок 3 уровня и выравнивание по центру.
  • Здесь мы показываем каким  шрифтом, цветом фона и выравниванием по центру будет выведено состояние двигателя. Крутится ли он по часовой или против, или вообще остановлен.Этот код отвечает за состояние и цвет кнопок, во включенном или выключенном состоянии. Ширину кнопок я указал 310 пикселей.

 

Такой setup мы уже рассматривали десятки раз. Указываем, что выводы ESP работают на выход. Подключаемся у WIFI сети и получаем IP адрес по которому будем заходить на web страницу и запускаем сервер.

В цикле loop обрабатываем значение нажатой кнопки.
Если статус 1, то поворачиваем двигатель по часовой, а если 2, то против часовой. А это тот delay который мы установили в начале кода, и который отвечает за скорость вращения.

Этот код устанавливает значения статуса двигателя в зависимости от полученных сервером значений.
Если на сервер пришёл ON, установить статус 1 и крутить мотор в одну сторону, если 2, то в другую, а если 3, то остановить двигатель.
А это сама команда на вращение или остановку.

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

Переключения происходят практически без задержек.

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

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

 

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 мм

Ресурсы

Как подключить шаговый двигатель к плате Arduino CNC Shield V3 c драйверами A4988, DRV8825, TMC2100 и тп

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

Схема подключения драйвера A4988Схема подключения драйвера DRV8825Схема подключения драйвера Arduino CNC Shield V3

Сопоставив эти схемы между собой, мы увидим, что разъемы для подключения двигателя к шилду, соотносятся с контактами для подключения двигателя к драйверу.
Маркировка разъемов на шилде совпадает с маркировкой контактов драйвера DRV8825.
Маркировка разъемов на шилде не совпадает с маркировкой контактов драйвера A4988 — разъемам шилда B2 B1 A1 A2 соответствуют контакты 2B 2A 1A 1B, что может сбить с толку.
Но не смотря на разную маркировку, провода идут от одних и тех же обмоток двигателя и в одинаковой последовательности.

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

Теперь становится ясно, что шаговый двигатель 42BYGHW609 должен быть подключен к шилду следующим образом: провод A (черный) на разъем B2, провод С (зеленый) на разъем B1, провод B (красный) на разъем A1, провод D (синий) на разъем A2.
В случае униполярного двигателя — просто подключаем его как биполярный (игнорируем средние провода от каждой обмотки — если смотреть на диаграмму выше, то это будут провода O (желтый) и O- (белый)).

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



Ардуино и микросхемы | ULN2003A Драйвер шагового двигателя

  ОПИСАНИЕ ТОВАРА «ULN2003A ДРАЙВЕРА ШАГОВОГО ДВИГАТЕЛЯ.»

«Модуль драйвера» для маломощного 4-х фазного шагового двигателя «28BYJ-48» на основе микросхемы «ULN2003» от фирмы «TOSHIBA» широко применяется в различных проектах Ардуино. На модуле имеются 4 светодиода, которые сигнализируют о работе 4 фаз двигателя при установке перемычки на плате в положение «ON», но только при питании модуля в 5 вольт. Модуль подключается к цифровым «контактам N1-N7«. Питание такого модуля возможно от 5В до 12 вольт, которое подключается к разъемам на плате модуля «-» и «+». Провода двигателя подключаются к плате модуля через специльный 5-пиновый коннектор. Шаговый двигатель «28BYJ-48» предн

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

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

Как видно из схемы обе обмотки объединены красным проводом. На этот провод подется питание. Данный двигатель с подобной схемой является однополярным. Поворот вала такого двигателя происходит за счет подачи электрического импульса. Угол поворота вала зависит от количества магнитов ротора. Для управления шаговым двигателем используют или 4-х ступенчатую систему (использует две из 4-х обмоток) или 8-и ступенчатую систему. Количество шагов вала мотора 28BYJ-48 за один оборот:

—  в 4-ступенчатой последовательности 32 x 64 = 2048

— в 8-ступенчатой последовательности 64 x 64 = 4096

Шаговый двигатель можно использовать в схеме как «биполярный 2-х фазный двигатель». Для этого надо разорвать две обмотки, т.е. отключить от питания красный провод и разорвать центральную на плате дорожку. По просту этот контакт-провод НЕ будет испольоваться в электической схеме. Ниже Вы можете видеть схему подключения шагового двигателя к «Плате микроконтроллера Ардуино» через «Модуль шагового двигателя«.

    

В нашем магазине существует гибкая система скидок для постоянных и оптовых покупателей. Цену и наличие уточняйте по телефону. Заказать доставку по Москве Вы можете на сайте компании «Dostavista». 

Конфигурации Arduino и шагового двигателя | Документация Arduino

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

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

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

Шаговый двигатель управляется цифровыми контактами 8, 9, 10 и 11 для униполярных или биполярных двигателей. Плата Arduino будет подключаться к массиву Дарлингтона U2004, если вы используете униполярный шаговый двигатель, или к H-мосту SN754410NE, если у вас биполярный двигатель.

Требуется оборудование

  • Arduino Board
    • Arduino MOTOR
    • Stear Motor
    • U2004 Darlington Array (если использование однополярного шагоплав)
    • SN754410NE H-мост (если использование биполярного шагоплав)
    • блок питания подходит для вашего конкретного шагоплав
    • крюк монтажные провода
    • макетная плата

    Схема

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

    Примечание. Обе приведенные ниже цепи имеют четырехпроводную конфигурацию. Двухпроводные конфигурации не будут работать с предоставленным кодом.

    Схема и схема униполярного шагового двигателя

    Цепь униполярной моторной ручки. Изображение сделано с помощью Fritzing.

    Схема ручки униполярного двигателя. Изображение сделано с помощью Fritzing.

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

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

    Схема ручки биполярного двигателя. Изображение сделано с помощью Fritzing.

    Примеры

    MotorKnob

    Шаговый двигатель следует поворотам потенциометра (или другого датчика) на аналоговом входе 0.

     Копировать  

    1#include

    2

    3

    4#определить ШАГИ 100

    5

    6

    7

    8

    9Шаговый степпер (ШАГИ, 8, 9, 10, 11);

    10

    11

    12int предыдущий = 0;

    13

    14void setup() {

    15

    16 степпер. установить скорость (30);

    17}

    18

    19void loop() {

    20

    21 int val = AnalogRead(0);

    22

    23

    24

    25 stepper.step(val - предыдущий);

    26

    27

    28 предыдущий = значение;

    29}

    StepperOneRevolution

    Двигатель должен совершить один оборот в одном направлении, затем один оборот в другом направлении.

     Копировать  

    1#include

    2

    3const int stepsPerRevolution = 200;

    4

    5

    6

    7Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

    8

    9void setup() {

    10

    11 myStepper.setSpeed(60);

    12

    13 Serial.begin(9600);

    14}

    15

    16void loop() {

    17

    18 Serial.println("по часовой стрелке");

    19 myStepper.step(stepsPerRevolution);

    20 задержка(500);

    21

    22

    23 Серийный номер. println("против часовой стрелки");

    24 myStepper.step(-stepsPerRevolution);

    25 задержка(500);

    26}

    StepperOneStepAtATime

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

     Копировать  

    1#include

    2

    3const int stepsPerRevolution = 200;

    4

    5

    6

    7Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

    8

    9int stepCount = 0;

    10

    11void setup() {

    12

    13 Серийный номер.начало (9600);

    14}

    15

    16void loop() {

    17

    18 myStepper.step(1);

    19 Serial.print("шаги:");

    20 Serial.println(stepCount);

    21 stepCount++;

    22 задержка(500);

    23}

    StepperSpeedControl

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

     Копировать  

    1#include

    2

    3const int stepsPerRevolution = 200;

    4

    5

    6

    7

    8Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

    9

    10int stepCount = 0;

    11

    12void setup() {

    13

    14}

    15

    16void loop() {

    17

    18 int sensorReading = AnalogRead(A0);

    19

    20 int motorSpeed ​​= map(sensorReading, 0, 1023, 0, 100);

    21

    22 если (скорость двигателя > 0) {

    23 мойШаговый.установитьСкорость (Скорость двигателя);

    24

    25 myStepper.step(stepsPerRevolution / 100);

    26 }

    27}

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


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

    , автор Lewis Loflin

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

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

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

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

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

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

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

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


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

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

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

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


    Схема для этой программы.

     

    Разница между униполярными и биполярными шаговыми двигателями

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

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

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


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

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

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

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

    также имеют несколько обмоток, однако помимо того, что концы каждой обмотки соединены с проводами, середина также соединена с третьим проводом.

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

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

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

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

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

    — MECControl

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

    Шаговые двигатели нельзя напрямую подключить к Arduino/Genuino Uno или Mega по нескольким причинам:

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

    Для решения всех этих проблем можно использовать схему, называемую мостом H .

    Одна из самых популярных схем Н-моста основана на интегральной схеме L298. Он содержит два одинаковых Н-моста, что позволяет управлять одним шаговым двигателем, потребляющим до 2А на катушку, при напряжении от 7,5В до 46В постоянного тока.

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

    В магазине MECControl имеется мостовой модуль L298 H. Вы можете подключить модуль напрямую к Arduino/Genuino Uno или Mega без пайки с помощью прилагаемого разъема, а затем управлять шаговым двигателем с помощью MECControl.

    Подключение шаговых двигателей

    Посмотреть обучающее видео

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

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

    Двигатель с четырьмя проводами

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

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

    Двигатель можно подключить к модулю моста Arduino/Genuino Uno или Mega и L298 H, как показано в этом примере:

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

    Входы (IN1, IN2, IN3 и IN4) мостового модуля L298 H могут быть подключены к любому из цифровых контактов вашего Arduino/Genuino Uno или Mega, помеченных 2-13 на Uno и 2-53 на Mega.

    Двигатель с пятью проводами

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

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

    Двигатель можно подключить к модулю моста Arduino/Genuino Uno или Mega и L298 H, как показано в этом примере:

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

    Входы (IN1, IN2, IN3 и IN4) мостового модуля L298 H могут быть подключены к любому из цифровых контактов вашего Arduino/Genuino Uno или Mega, помеченных 2-13 на Uno и 2-53 на Mega.

    Двигатель с шестью проводами

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

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

    Двигатель можно подключить к модулю моста Arduino/Genuino Uno или Mega и L298 H, как показано в следующих примерах:

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

    Входы (IN1, IN2, IN3 и IN4) мостового модуля L298 H могут быть подключены к любому из цифровых контактов вашего Arduino/Genuino Uno или Mega, помеченных 2-13 на Uno и 2-53 на Mega.

    Двигатель с восемью проводами

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

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

    Двигатель можно подключить к модулю моста Arduino/Genuino Uno или Mega и L298 H, как показано в следующих примерах:

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

    Входы (IN1, IN2, IN3 и IN4) мостового модуля L298 H могут быть подключены к любому из цифровых контактов вашего Arduino/Genuino Uno или Mega, помеченных 2-13 на Uno и 2-53 на Mega.

    Подвижные шаговые двигатели

    После того, как ваш шаговый двигатель подключен к Arduino/Genuino Uno или Mega через модуль моста L298 H, используйте команду Connect, чтобы дать ему имя и сообщить MECControl, к каким контактам он подключен:

    Подключите ручной шаговый двигатель к контактам 2, 3, 4, 5

    В этом примере шаговый двигатель с именем «Рука» был подключен через цифровые контакты, помеченные 2, 3, 4 и 5. Контакты не обязательно должны быть последовательными, хотя, если они идут, их также можно указать в виде диапазона:

    Подключите ручной шаговый двигатель к контактам 2-5

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

    Переместить стрелку по часовой стрелке на 10 шагов

    Эта команда перемещает ручной шаговый двигатель по часовой стрелке на 10 шагов.С таким же успехом можно было бы повернуть шаговый двигатель против часовой стрелки:

    .

    Переместить руку против часовой стрелки на 10 шагов

    Вы также можете обратиться к числу, хранящемуся в ранее определенной переменной:

    Перемещение руки против часовой стрелки на StepsToMove Steps

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

    Вы можете сделать это, добавив именованные действия в конец команды Connect:

    Подключение ручного шагового двигателя к контактам 2-5 Действия Влево Вправо

    Теперь эти действия можно использовать с командой Move:

    Переместить руку влево на 10 шагов

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

    Скорость шагового двигателя

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

    Переместить стрелку по часовой стрелке на 200 шагов со скоростью 60 шагов в секунду

    Скорость может быть любой от 0,1 до 1000 шагов в секунду с шагом 0,1.

    Вы также можете ссылаться на скорость, сохраненную в ранее определенной переменной:

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

    Кроме того, вы можете перемещать двигатель в течение заданного периода времени:

    Переместить стрелку по часовой стрелке на 200 шагов за 60 секунд

    Период времени может быть любым от 0.От 1 до 60 секунд с шагом 0,1 секунды.

    Вы также можете обратиться к периоду времени, сохраненному в ранее определенной переменной:

    Переместить стрелку по часовой стрелке на 200 шагов за время секунд

    Отключение шаговых двигателей

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

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

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

    Обучение управлению шаговым двигателем с помощью Arduino Motor Shield

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

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

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

    Монополярный и биполярный

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

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

    Однополярный

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

    Биполярный

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

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

    Источник изображения: Osmtec.com

    Моторный щит Arduino

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

    Мой мотор

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

    Поскольку для этого двигателя требуется питание 12 В, мне пришлось разделить линии питания шилда и моего Arduino Uno, чтобы избежать возможных повреждений, как указано на веб-странице Arduino Motor Shield.Поскольку линии электропередач должны были быть разделены, я больше не мог использовать сетевой блок питания 12 В для прямого подключения к Arduino, поэтому его также пришлось изменить. Его пришлось разделить, чтобы он мог питать как Arduino, так и 6-контактные винтовые клеммы на Arduino Motor Shield. Для этого я отрезал около четырех дюймов от разъема ствола, а затем еще раз такой же длины провода, они были залужены и спаяны вместе с остатком кабеля, который подключался к вилке.

    Определение катушек в двигателе

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

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

    Перемещение двигателя

    Поскольку у меня был подключен двигатель, мне нужно было найти код, который будет работать с моторным щитом, поэтому у меня было примерное представление, с чего начать. Я нашел некоторый код в учебнике Instructables Arduino Motor Shield, который позволил мне раскрутить мой двигатель. Это сработало отлично, но я действительно хотел включить библиотеку Stepper.h в используемый скетч, а в этом примере это не использовалось. По возможности лучше всего использовать официальные библиотеки, поэтому я поискал другой пример и нашел его на форуме Arduino.В этом скетче двигатель должен вращаться на 360 градусов в одном направлении, а затем на 360 градусов в противоположном.

    В этом скетче мне нужно было указать количество шагов на оборот для двигателя, который я использовал, но сначала я должен был это определить. В техпаспорте производителя указан приращение для двигателя как 5,625, так и 11,25 градуса, поэтому я использовал это для определения шагов на оборот — для этого нам нужно разделить 360 на угол. Поскольку этот двигатель также оснащен редуктором и имеет передаточное число 1:64, нам нужно умножить количество оборотов на передаточное число.Вот так:

    360/11,25 х 64 = 2048

    360/5,625 х 64 = 4096

    Для начала я использовал 4098 шагов на оборот в скетче, предполагая, что двигатель имеет угол 5,625 градусов, однако, когда я сделал это, он совершил два полных оборота против часовой стрелки, а затем два оборота по часовой стрелке. Здесь было очевидно, что я выбрал неправильный угол; поскольку он делал два оборота, потому что 5,625 составляет половину от 11, когда это используется в делении, это дает ответ в два раза больше, следовательно, делает два полных оборота.Я изменил количество шагов на оборот на 2048, и на этот раз двигатель сделал один оборот по часовой стрелке, затем один против часовой стрелки. Я также изменил скорость двигателя с двух до пяти, так как при установке на два двигатель двигался слишком медленно.

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

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

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

    Управление направлением вращения шагового двигателя нажатием кнопки Интерфейс с Arduino uno — KT994

    Arduino IDE 1.8.5 (программируемая платформа для Arduino)

    Щелкните для загрузки: https://www.arduino.cc/en/Main/Software 

    • С цифровым управлением как часть разомкнутой системы для использования в задачах удержания или позиционирования
    • В области лазеров и оптики они часто используются для точного позиционирования оборудование, такое как линейные приводы, линейные столики, столики вращения, гониометры и держатели зеркал. Другое использование — упаковочное оборудование и позиционирование пилотных ступеней клапана для систем управления жидкостью.
    • В коммерческих целях шаговые двигатели используются в дисководах для гибких дисков, планшетных сканерах, компьютерных принтерах, плоттерах, игровых автоматах, сканерах изображений, дисководах для компакт-дисков, интеллектуальном освещении, объективах камер, станках с ЧПУ и, в последнее время, в 3D-принтерах

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

                                                                               

    Рабочее напряжение – до 15 В625°, так что у этого мотора 4096 шагов.

    Шаги = Количество шагов в одном обороте * Передаточное отношение.
    шагов = (360°/5,625°) * 64 «Передаточное число» = 64 * 64 = 4096. Это значение заменит его на эскиз Arduino

    2N2222

    2N2222

    от плоской поверхности

    LED

    Схема разделен на 2 части

    1.       Секция кнопок
    2.       Секция привода шагового двигателя

    Шаг 1: Секция кнопок

    Подсоедините 2 отрицательных контакта макетной платы к контакту заземления Arduino3, 9002 положительные рельсы макетной платы к контакту 5v Arduino.

    Начнем с раздела кнопок.

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

    • Подсоедините один конец кнопки к положительной шине
    • Подсоедините другой конец кнопки к земле с помощью резистора 10 кОм.
    • Подключите контакт 3 Arduino к точке пересечения кнопки и резистора.

     

    Шаг 2. Схема драйвера шагового двигателя двигатель, вы можете найти эту информацию в даташитах).

    Разместите транзистор на макетной плате

    Для транзистора pn2222 первый контакт является эмиттером, соедините контакт эмиттера с шиной заземления.

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

    Средний контакт — это база, подключите светодиод к базе транзистора и другой клеммной колодке.

    Подключите один из резисторов 220 Ом к светодиоду и к другой клеммной колодке.

    Подключите провод между резистором и Arduino.

    Повторите этот процесс, пока у вас нет 4 из этих «электронных коммутаторов», подключенных к контактам 5, 6, 7 и 8.


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

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

    • Подсоедините провод между плюсовой шиной и плюсом шагового двигателя.
    • Подсоедините провода, висящие на ветру, к шаговому двигателю.

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

     

    Нажмите, чтобы увидеть код, или скопируйте ссылку, чтобы увидеть код.

    https://drive.google.com/open?id=1z1LA2Qs-Q7I0h-s7LLCamEWak3Hxku2a делать при нажатии кнопки.

    Программа постоянно проверяет, нажата ли кнопка.

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

    Если кнопку нажать еще раз, она снова изменит свое направление.

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

    Он следует последовательности отправки сигнала на контакты Arduino и, в свою очередь, включает и выключает светодиоды и транзисторы, чтобы заставить двигатель двигаться в соответствии с этой последовательностью.

    Проект 034c Arduino Motor Shield R3, униполярный или биполярный шаговый двигатель 5 В / 6 В на Acoptex.com / ACOPTEX.COM

    Основы: проект 034c

    Название проекта: Arduino Motor Shield R3, униполярный или биполярный шаговый двигатель шаговый двигатель 5В/6В

    Теги: Плата двигателя Arduino R3, однополярный или биполярный шаговый двигатель двигатель, 5 В/6 В, Arduino Uno

    Приспособления: steppermotorssketch2, steppermotorssketch3

    Теги: Arduino, Arduino Motor Shield R3, униполярный, биполярный шаговый двигатель 5В/6В

    В этом проекте вам понадобятся следующие детали:

    1.Aruduino Uno R3 1 шт (можно использовать и другую версию Arduino)

    2. Экран двигателя Arduino R3  1 шт.

    3.Arduino IDE (можно скачать отсюда  )

    4. Соединительные кабели

    5. Шаговый двигатель 5В/6В пост. тока 1 шт.

    6. Внешний источник питания постоянного тока двигателя  1 шт.

    Общий

    Мы узнаем, как подключить Arduino Motor Shield R3 к плате Arduino и использовать его с униполярным или биполярным шаговым двигателем 5В/6В.

    Понимание шагового двигателя

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

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

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

    С помощью шагового двигателя вы можете «шагать» точно на заданный угол. Кроме того, шаговый двигатель имеет то преимущество, что имеет удерживающий крутящий момент. Шаговые двигатели могут удерживать свое положение, когда они не движутся.

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

    доступны в двух вариантах: униполярные и биполярные.

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

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

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

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

    Униполярные шаговые двигатели обычно имеют 6 проводов, каждая фаза катушки имеет центральный отвод. Если оба провода центрального отвода (общие) соединены вместе, получается 5-проводная однополярная схема. Чтобы преобразовать униполярный шаговый двигатель в биполярный шаговый двигатель (4 провода), просто оставьте центральные отводы (2 провода) не подключенными.

    Подробнее о них можно прочитать здесь и здесь.

    Мы будем использовать шаговый двигатель Nema 17 DC 6V.

    1. Униполярный шаговый двигатель Nema 17 DC 6V, спецификация

    • Номер детали производителя: 17HM15-0806S
    • Тип двигателя: униполярный шаговый двигатель
    • Угол шага: 0.9 градусов
    • Удерживающий момент: 26 Нсм (36,8 унций на дюйм)
    • Номинальный ток/фаза: 0,8 А
    • Напряжение: 6 В
    • Фазовое сопротивление: 7,5 Ом
    • Индуктивность: 7,5 мГн ± 20% (1 кГц)
    • Размер рамы: 42 x 42 мм
    • Длина корпуса: 39 мм
    • Диаметр вала: Φ5 мм
    • Длина вала: 24 мм
    • D-образный вырез Длина: 15 мм
    • Количество проводов: 6
    • Длина провода: 500 мм
    • Вес: 300 г

    См. дополнительную информацию здесь.

    Понимание платы двигателя Arduino R3

    Плата Arduino Motor Shield позволяет вашей плате Arduino управлять двигателями постоянного тока и шаговыми двигателями, реле и соленоидами.

    Плата Arduino Motor Shield основана на L298, который представляет собой двойной полномостовой драйвер, предназначенный для управления индуктивными нагрузками, такими как реле, соленоиды, двигатели постоянного тока и шаговые двигатели. Он позволяет управлять двумя двигателями постоянного тока с помощью платы Arduino, независимо контролируя скорость и направление каждого из них. Помимо прочего, вы также можете измерить потребляемый ток каждого двигателя.Шилд совместим с TinkerKit (6 разъемов для подключения входов, выходов и линий связи Tinkerkit), что означает, что вы можете быстро создавать проекты, подключая модули TinkerKit к плате.

    Позволяя вам просто обращаться к контактам Arduino, Arduino Motor Shield позволяет очень просто включить двигатель в ваш проект. Это также позволяет вам иметь возможность питания двигателя с отдельным источником питания до 12 В.

    Motor Shield должен питаться только от внешнего источника питания.Поскольку ИС L298, установленная на экране, имеет два отдельных разъема питания, один для логики и один для драйвера питания двигателя. Требуемый ток двигателя часто превышает максимальный номинальный ток USB. Внешнее (не USB) питание может поступать либо от адаптера переменного тока в постоянный (настенная бородавка), либо от аккумулятора. Адаптер можно подключить, вставив штекер 2,1 мм с центральным положительным контактом в разъем питания платы Arduino, на котором установлен моторный щит, или подключив провода, идущие к источнику питания, к винтовым клеммам Vin и GND, соблюдая полярности.Во избежание возможного повреждения платы Arduino, на которой установлен шилд, рекомендуется использовать внешний источник питания, обеспечивающий напряжение от 7 до 12 В. Если вашему двигателю требуется более 9 В, мы рекомендуем вам разделить линии питания платы Arduino, на которой установлен экран. Это возможно, если перерезать перемычку «Vin Connect», расположенную на обратной стороне щитка. Абсолютный предел для Vin на винтовых клеммах составляет 18В.

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

    • Рабочее напряжение от 5 до 12 В
    • Контроллер двигателя L298P, 2 канала — управляет 2 двигателями постоянного тока или 1 шаговым двигателем
    • Максимальный ток 2 А на канал или 4 А всего (с внешним источником питания)
    • Измерение тока 1.65В/А
    • Останов свободного хода и функция торможения

    Сигналы и соединения шагового двигателя Nema 17

    1.Униполярный шаговый двигатель (также может быть биполярным). Используется в проекте

    2. Биполярный шаговый двигатель (тот же производитель, но разные цвета проводов)

    Сигналы и соединения Arduino Motor Shield R3

    Контакты питания:

    Экран может подавать 2 ампера на канал, всего максимум 4 ампера.

    Vin на винтовой клеммной колодке, это входное напряжение двигателя, подключенного к экрану. Внешний источник питания, подключенный к этому контакту, также обеспечивает питание платы Arduino, на которой он установлен. Сняв перемычку «Vin Connect», вы сделаете это выделенной линией питания для двигателя.

    GND Заземление на винтовой клеммной колодке.

    Входные и выходные контакты:

    Этот экран имеет два отдельных канала, называемых A и B,

    , каждый из которых использует 4 контакта Arduino для управления или определения

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

    Вы можете использовать каждый канал отдельно для управления двумя DC

    двигатели

    или объединить их для привода одного униполярного шагового двигателя

    мотор

    .

    Выводы щита, разделенные по каналам, показаны в таблице ниже:

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

    Дополнительные разъемы на щите описаны следующим образом:

    • Винтовая клемма для подключения двигателей и их питания.
    • 2 разъема TinkerKit для двух аналоговых входов (белого цвета), подключенных к A2 и A3.
    • 2 разъема TinkerKit для двух аналоговых выходов (оранжевого цвета посередине), подключенных к ШИМ-выходам на контактах D5 и D6.
    • 2 разъема TinkerKit для интерфейса TWI (белого цвета с 4 контактами), один для входа, другой для выхода.

    Вы можете управлять двумя двигателями постоянного тока, подключив два провода каждого из них к винтовым клеммам (+) и (-) для каждого канала A и B. Таким образом, вы можете управлять его направлением, установив ВЫСОКОЕ или НИЗКОЕ направление (DIR A и DIR B), вы можете управлять скоростью, изменяя значения рабочего цикла PWM A и PWM B. Штыри Brake A и Brake B, если они установлены в HIGH, эффективно тормозят двигатели постоянного тока, а не позволяют им замедляться из-за отключения питания. Вы можете измерить ток, проходящий через двигатель постоянного тока, считав контакты измерения тока (SNS0 и SNS1).На каждом канале будет напряжение, пропорциональное измеренному току, которое может быть считано как обычный аналоговый вход, через функцию AnalogRead() на аналоговом входе A0 и A1. Для вашего удобства оно откалибровано на 3,3 В, когда канал выдает максимально возможный ток, то есть 2 А.

    Электропроводка

    Контакты официального моторного шилда Arduino будут совпадать только с Arduino Uno Rev. 3. Чтобы заставить его работать со старыми версиями Arduino, вам нужно будет обрезать несколько контактов моторного шилда.Однако это совсем не рекомендуется. Вставьте контакты моторного щитка в гнездо Arduino Uno.

    На следующем рисунке показаны необходимые соединения с Arduino Uno:

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

    2. Униполярные шаговые двигатели обычно состоят из 6 проводов, каждая фаза катушки имеет центральный отвод. Если оба провода центрального отвода (общие) соединены вместе, получается 5-проводная однополярная схема. Чтобы преобразовать униполярный шаговый двигатель в биполярный шаговый двигатель (4 провода), просто оставьте центральные отводы (2 провода) не подключенными. Чтобы выяснить, какие два контакта составляют одну катушку, вставьте светодиод в любые два контакта на его гнезде и поверните вал двигателя.Если светодиод загорается, вы нашли одну катушку. Два других контакта должны составлять другую катушку.

    Пошаговая инструкция

    1. Поместите моторный шилд Arduino R3 поверх платы Arduino Uno.
    2. Сделать проводку.
    3. Откройте среду разработки Arduino.
    4. Подключите плату Adruino Uno к компьютеру и выберите правильную плату и COM-порт
    5. Откройте последовательный монитор и установите скорость 9600 бод
    6. Проверьте и загрузите скетч на Adruino Uno

    Сводка

    Мы узнали, как подключить Arduino Motor Shield R3 к плате Arduino и использовать его с униполярным или биполярным шаговым двигателем 5В/6В.

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

Ваш адрес email не будет опубликован.