Как подключить шаговый двигатель к arduino uno. Подключение шагового двигателя к Arduino Uno: схема и программа управления

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

Содержание

Что такое шаговый двигатель и принцип его работы

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

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

  • Статор — неподвижная часть с обмотками
  • Ротор — вращающаяся часть с постоянными магнитами
  • Вал — соединен с ротором и передает вращение

Принцип работы шагового двигателя:

  1. На обмотки статора подаются управляющие импульсы тока
  2. Создается магнитное поле, которое взаимодействует с магнитами ротора
  3. Ротор поворачивается на определенный угол (шаг)
  4. При последовательной подаче импульсов происходит вращение вала

Типы шаговых двигателей

Существует несколько основных типов шаговых двигателей:


По конструкции ротора:

  • С постоянными магнитами
  • С переменным магнитным сопротивлением
  • Гибридные

По типу обмоток:

  • Биполярные — имеют две обмотки без центрального отвода
  • Униполярные — имеют обмотки с центральным отводом

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

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

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

  • Arduino Uno или другая совместимая плата
  • Биполярный шаговый двигатель
  • Драйвер шагового двигателя (например, L293D или A4988)
  • Источник питания для двигателя
  • Макетная плата и провода для соединений

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

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

Рассмотрим типовую схему подключения биполярного шагового двигателя к Arduino Uno через драйвер L293D:


  1. Подключите выводы 1, 2, 3 и 4 драйвера L293D к цифровым пинам 8, 9, 10 и 11 Arduino соответственно
  2. Соедините выводы 1А, 2А, 3А и 4А драйвера с выводами обмоток шагового двигателя
  3. Подключите питание драйвера: Vcc1 к 5V Arduino, Vcc2 к внешнему источнику питания двигателя
  4. Соедините GND Arduino, GND драйвера и минус внешнего источника питания

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

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

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

«`cpp const int stepPin = 8; const int dirPin = 9; void setup() { pinMode(stepPin, OUTPUT); pinMode(dirPin, OUTPUT); } void loop() { // Вращение по часовой стрелке digitalWrite(dirPin, HIGH); for(int x = 0; x < 200; x++) { digitalWrite(stepPin, HIGH); delayMicroseconds(500); digitalWrite(stepPin, LOW); delayMicroseconds(500); } delay(1000); // Вращение против часовой стрелки digitalWrite(dirPin, LOW); for(int x = 0; x < 200; x++) { digitalWrite(stepPin, HIGH); delayMicroseconds(500); digitalWrite(stepPin, LOW); delayMicroseconds(500); } delay(1000); } ```

Этот код выполняет следующие действия:


  1. Определяет пины для управления шагом и направлением
  2. Настраивает эти пины как выходы
  3. В бесконечном цикле:
    • Задает направление вращения
    • Генерирует 200 импульсов для поворота на полный оборот
    • Делает паузу и меняет направление

Управление скоростью вращения шагового двигателя

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

«`cpp const int stepPin = 8; const int dirPin = 9; const int speedPin = A0; void setup() { pinMode(stepPin, OUTPUT); pinMode(dirPin, OUTPUT); pinMode(speedPin, INPUT); } void loop() { int speed = analogRead(speedPin); int delayTime = map(speed, 0, 1023, 2000, 50); digitalWrite(dirPin, HIGH); for(int x = 0; x < 200; x++) { digitalWrite(stepPin, HIGH); delayMicroseconds(delayTime); digitalWrite(stepPin, LOW); delayMicroseconds(delayTime); } } ```

В этом примере:

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

Точное позиционирование с помощью шагового двигателя

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


«`cpp const int stepPin = 8; const int dirPin = 9; const int stepsPerRevolution = 200; // Зависит от вашего двигателя void setup() { pinMode(stepPin, OUTPUT); pinMode(dirPin, OUTPUT); Serial.begin(9600); } void loop() { if (Serial.available() > 0) { int angle = Serial.parseInt(); int steps = map(angle, 0, 360, 0, stepsPerRevolution); digitalWrite(dirPin, steps > 0 ? HIGH : LOW); steps = abs(steps); for(int i = 0; i < steps; i++) { digitalWrite(stepPin, HIGH); delayMicroseconds(500); digitalWrite(stepPin, LOW); delayMicroseconds(500); } } } ```

Этот код позволяет:

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

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

Для более сложного управления шаговыми двигателями можно использовать специализированные библиотеки, например AccelStepper. Она предоставляет дополнительные возможности, такие как ускорение и замедление. Вот пример использования этой библиотеки:


«`cpp #include AccelStepper stepper(AccelStepper::DRIVER, 8, 9); void setup() { stepper.setMaxSpeed(1000); stepper.setAcceleration(500); } void loop() { stepper.moveTo(1000); while(stepper.distanceToGo() != 0) { stepper.run(); } delay(1000); stepper.moveTo(0); while(stepper.distanceToGo() != 0) { stepper.run(); } delay(1000); } «`

Этот код демонстрирует:

  • Создание объекта AccelStepper для управления двигателем
  • Настройку максимальной скорости и ускорения
  • Перемещение двигателя на заданную позицию с учетом ускорения

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

Шаговые двигатели в сочетании с Arduino находят применение во многих областях:

  • 3D-принтеры и ЧПУ-станки — для точного перемещения рабочих органов
  • Роботы и автоматизированные системы — для управления движением
  • Камеры слежения — для точного позиционирования
  • Астрономические телескопы — для компенсации вращения Земли
  • Производственное оборудование — для точного дозирования и перемещения

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


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

При работе с шаговыми двигателями и Arduino следует учитывать несколько важных моментов:

  1. Правильно подбирайте источник питания — он должен обеспечивать достаточный ток для вашего двигателя
  2. Используйте драйверы, соответствующие характеристикам вашего двигателя
  3. Учитывайте нагрев двигателя при длительной работе — может потребоваться охлаждение
  4. Не превышайте максимальную скорость вращения вашего двигателя
  5. При необходимости используйте микрошаговый режим для более плавного движения
  6. Обратите внимание на механическое крепление двигателя — вибрации могут влиять на точность

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


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

    На главную
    Обзор программ
    Обзор плат
    Проекты на базе:
    Arduino Nano
    Arduino Uno
    Arduino Pro Micro
    Arduino Mega
    Digispark
    Проекты с использованием:
    Потенциометр
    Джойстик
    Кнопка
    Реле
    RGB
    Дисплей
    SD карта
    Электрон.
    ключ
    Энкодер
    Сдвиг. регистор
    Д. температуры
    Д. влажности
    Д. растояния
    Д. газа
    Батарея
    Средства связи:
    Bluetooth
    Android
    GSM
    USB
    I2C (TWI)
    SPI ICSP
    UART
    One Wire
    Парал.
    интерфейс
    Двигатели:
    Шаговый мотор
    Постоянного тока
    Servo
    Еще:
    О нас
    Oбъявление
    Обратная связь
    YouTube канал

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

Регулятор скорости вращения для униполярного шагового двигателя на базе Arduino UNO

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

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

Открыть полностью

Регулятор скорости вращения для биполярного шагового двигателя на базе Arduino Nano

Самодельный димер на базе платы Arduino Nano и драйвера DRV8825

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

Открыть полностью

Привод для жалюзи на базе Arduino UNO и шаговых двигателях 28BYJ-48 5V

Статья о том

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

К данной статье прилагаются два готовых скетча…

Открыть полностью

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

Статья о том, из чего и как своими руками собрать привод на базе Arduino UNO, джойстика и двух униполярных шаговых двигателях 28BYJ-48 5V

Имеется схема и скетч, работающий без библиотек.

Открыть полностью

Автоматическая фокусировка на Arduino и Digispark с датчиком расстояния VL53L0X и драйвером DRW8825.

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

Как объединить две платы Arduino и Digispark, для совместной работы над общей задачей.

Как подключить биполярный шаговый двигатель к Arduino Uno и к Digispark…

Открыть полностью

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

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

В качестве пульта подойдет любой ANDROID телефон с наличием Bluetooth.

Открыть полностью

Лучший эмулятор Arduino UnoArduSim V2.6. Первая серия.

Набор из 9 простых скетчей, которые использовались в этой серии.

В этой серии рассмотрены принципы работы таких модулей как: светодиод, кнопка, потенциометр, Serial порт, программный Serial порт, 4 фазный шаговый двигатель, 2 фазный шаговый двигатель и DC Motor.

Открыть полностью

Регулятор скорости вращения для униполярного шагового двигателя на базе Didgispark

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

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

Открыть полностью

Arduino управление шаговыми двигателями по Bluetooth при помощи Android смартфона

Статья о том как написать код для электрического привода, для слайдера под видеокамеру, с управлением по Bluetooth, на базе Arduino Nano, драйверов DRV8825 и Bluetooth модуля HC-05.

Открыть полностью

Управление биполярным шаговым двигателем при помощи инкрементального энкодера

Статья о том как подключить инкрементальный энкодер EC11 к Arduino, как управлять биполярным шаговым двигателем при помощи энкодера, как проверить инкрементный энкодер, как подключить драйвер шагового двигателя drw8825 к Arduino.

Открыть полностью

Плавный пуск и остановка биполярного шагового двигателя. Спец драйвер на Digispark Attiny85.

Статья о том, как организовать плавный пуск биполярного шагового двигателя, путём совмещения драйвера шагового двигателя с платой Didispark Attiny85, которая выступает в роли посредника между платой Arduino и драйвером шагового двигателя A4988 или DRW8825

Открыть полностью

ЧПУ станок для намотки трансформаторов на Arduino и Digispark.

Инструкция по управлению ЧПУ станком для намотки трансформаторов на Arduino.

А также материалы, для самостоятельной сборки ЧПУ станка, для намотки трансформаторов на Arduino.

Открыть полностью

ЧПУ станок для намотки трансформаторов с укладчиком провода, и автоматическим натяжением провода на Arduino и Digispark.

Материалы, для самостоятельной сборки ЧПУ станка для намотки трансформаторов на Arduino, с укладчиком провода, и с автоматическим натяжением провода.

А также инструкция, по управлению ЧПУ станком, для намотки трансформаторов на Arduino и Digispark.

Открыть полностью

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Код

Приложения 

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

Видео сборки и вывода

 

Сколько шаговых двигателей можно запустить на одном Arduino Uno? Идеи как бегать 9?

Я учусь в средней школе и плохо знаком с Arduino. Я только что научился настраивать и программировать шаговый двигатель на моем Arduino Uno, просматривая видео на YouTube. Я хочу настроить 9 шаговых двигателей, чтобы все они работали одновременно и с одинаковой скоростью вращения для научного проекта, над которым я работаю. Сейчас у меня есть Arduino Uno с макетной платой 830, драйвером шагового двигателя ULN2003 и шаговым двигателем 28BYJ-48. Я думаю, мне нужно будет использовать что-то другое, потому что я вижу, что у моего драйвера не более одного набора вилок для проводов. У меня есть бюджет на мой научный проект, поэтому мне разрешено покупать новое оборудование. Но я не понимаю, что мне нужно для запуска 9. Если кто-нибудь может помочь предложить лучший и самый простой способ сделать это, я был бы очень рад. Я чувствую, что когда у меня есть оборудование, я могу попытаться понять, как его собрать и понять код. Спасибо за помощь!

  • arduino-uno
  • arduino-mega
  • шаговый двигатель

2

Вы можете использовать 4 N-Channel MOSFET, получить лавинные номинальные логические уровни. Получите что-то в диапазоне тока 5А или выше (ниже RDson). Ваши двигатели потребляют 240 мА каждый. Чем выше номинальная сила тока МОП-транзистора, тем холоднее будет работать МОП-транзистор. Я твердо верю, что вместо радиаторов используется кремний. В маленьком это не так дорого, и у вас нет хлопот с радиатором.

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

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

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

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

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