Sw-motors.ru

Автомобильный журнал
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как подключить сервомотор к Arduino

Как подключить сервомотор к Arduino. Шаговый двигатель на ардуино — (видео)

Рекомендуем смотреть видео в полноэкранном режиме, в настойках качества выбирайте 1080 HD, не забывайте подписываться на канал в YouTube, там Вы найдете много интересного видео, которое выходит достаточно часто. Приятного просмотра!

С уважением, авторы сайта Компьютерапия

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

Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!

Новые статьи

  • Как подключить лазер к ардуино. Лазерный модуль KY-008 — (видео) — 05/11/2019 17:17
  • Управление погружным насосом на Arduino — (видео) — 17/05/2019 19:27
  • Arduino и датчик ультразвука. Определение расстояния до объекта. — (видео) — 10/04/2019 15:32
  • Arduino в роли вольтметра. Вывод напряжения на LCD дисплей — (видео) — 10/04/2019 15:31
  • Подключаем терморезистор к arduino, получим температуру в градусах по Цельсию и по Фаренгейту — (видео) — 23/03/2019 04:21
  • Как подключить дисплей LCD1602 к Arduino — (видео) — 05/02/2019 21:53

Предыдущие статьи

  • Подключение RGB светодиода к Arduino — (видео) — 10/01/2019 18:48
  • Фоторезистор и светодиоды на Arduino — (видео) — 10/01/2019 18:46
  • Играем ноты на пищалке с Arduino — (видео) — 10/01/2019 18:43
  • Вынос мозга. АЦКИЙ BUZZER — омерзительная пищалка на Arduino Uno — (видео) — 07/01/2019 09:20
  • Новогодняя мини гирлянда в Arduino UNO. Как сделать мини гирлянду в Arduino UNO на светодиодах. — (видео) — 30/12/2018 21:00
  • Скетч — выключатель, светодиод и кнопка в Arduino UNO — (видео) — 13/12/2018 19:00
  • Включение светодиода через кнопку в Arduino UNO — (видео) — 11/12/2018 16:54
  • Управление светодиодом в Arduino UNO — (видео) — 24/11/2018 05:42
  • Установка среды разработки для Arduino UNO и пример программы — (видео) — 24/11/2018 05:37
  • Обзор посылки Arduino UNO R3 — (видео) — 17/11/2018 20:39

Поделиться в соцсетях

Подписаться на канал

ТОП-10 статей

  • Функции даты-времени в VBA. Работа с датой и временем
  • 15 лучших эффектов переходов между слайдами в Power Point
  • Массивы в VBA: как работать с массивами
  • Добавление номеров страниц в колонтитул в Word
  • Регистрация в Ютубе: Создаем свой канал
  • Установка Android Studio, настройка SDK
  • Форматирование и настройка оглавления в Word
  • Сортировка и фильтрация записей в Access
  • Как сделать объявления с отрывными листочками в word. Скачать шаблон объявления
  • Переменные в VBA, значения и типы

Свежие записи

  • Как разбить ячейку в эксель, как сделать нормальную таблицу в Excel — (видео)
  • Как разбить ячейку в эксель, как сделать нормальную таблицу в Excel
  • Создание презентации онлайн в браузере без специальных программ — (видео)
  • Создание презентации онлайн в браузере — google presentations online
  • Как заполнить шаблон excel из экселевской таблицы — (видео)
  • Исправляем ошибку VBA № 5854 слишком длинный строковый параметр в шаблоне word из таблицы excel 255 символов
  • Android Studio: получение JSON из базы данных с помощью PHP. Урок № 4
  • Android Studio: получение JSON из базы данных с помощью PHP Урок № 4 — (видео)
  • Исправляем ошибку VBA № 5854 слишком длинный строковый параметр в шаблоне word из таблицы excel 255 символов — (видео)
  • Как сделать презентацию с телефона на андроид, гугл презентация на телефоне — (видео)

Категории

  • Уроки Word
  • Уроки Excel
  • Уроки PowerPoint
  • Уроки Access
  • Основы Сайтостройения
  • Уроки HTML
  • Уроки Joomla
  • Уроки WordPress
  • Уроки Bootstrap 3
  • Уроки Android
  • Уроки VBA
  • Основы Arduino

Разное

  • О сайте
  • Полезные советы
  • Скачать книги
  • Карта сайта
  • Правила сайта

Видео уроки

  • Уроки Word
  • Уроки Excel
  • Уроки сайтостроения
  • Уроки Joomla 3
  • Уроки Android
  • Уроки WordPress
  • Полезные советы
  • Уроки PowerPoint
  • Основы Arduino

Подпишитесь в соцсетях

  • Группа в Одноклассниках
  • Группа ВКонтакте
  • Страничка в Facebook
  • Канал на YouTube

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.

Управление и подключение шагового двигателя к Ардуино (Arduino)

1Что такое драйвер двигателей и для чего он нужен

Максимальный ток на выводах Arduino слаб (около 50 мА) для такой мощной нагрузки как электромотор (десятки и сотни миллиампер). Поэтому напрямую к выводам Arduino подключать электродвигатель нельзя: есть риск сжечь вывод, к которому подключён двигатель. Для безопасного подключения электродвигателей разных типов к Arduino необходим самодельный или промышленно изготовленный т.н. драйвер двигателей. Драйверы двигателей бывают разные, для их работы часто используются микросхемы типа HG788, L9110S, L293D, L298N и другие. Драйверы двигателей имеют выводы подачи питания, выводы для подключения электродвигателей, а также управляющие выводы.


Различные варианты исполнения драйверов двигателей

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


Технические характеристики Motor Shield L293D

Motor Shield L293D имеет следующие характеристики :

  • Максимальный продолжительный ток в каждом канале: 0,6 А;
  • Допустимый ток нагрузки 600мА на канал, пиковый ток — 1.2A
  • Питание моторов от 4.5 В до 36 В
  • 4-х канальное управление
  • Присутствует защита от перегрева
  • Присутствует контакт для дополнительного питания платы

Разберемся же, из чего состоит этот motor shield. На фотографии ниже вы можете найти цифры, на которые мы будем опираться.

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

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

3. Под цифрой 3 обозначены клемма, к которым нужно подключать электродвигатели. Имеются 4 клемма под названиями: M1, M2, M3, M4. Следовательно, подключить к плате возможно только 4 электромотора.

4. Здесь размещены клемма, через которые вы можете запитать ваш шилд, ведь для работы моторов необходимо большее напряжение, чем напряжение от Arduino. Хотелось бы отметить важный момент, чтобы запитывать Motor Shield L293D иным источником необходимо снять перемычку, которая находится под цифрой 5

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

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

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

Читать еще:  Вакуумная диагностика двигателя что это

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

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

Давайте подключим двигатель по приложенной схеме. Питание драйвера двигателя – 5 В от Arduino, для управления скоростью вращения ротора мотора управляющие контакты подключаем к выводам Ардуино, поддерживающим ШИМ (широтно-импульсную модуляцию).


Схема подключения коллекторного двигателя к Arduino с помощью драйвера двигателей

Должно получиться что-то подобное:


Двигатель подключён к драйверу двигателей и Arduino

Управление двигателем на Ардуино

Коллекторный моторчик может быть рассчитан на разное напряжения питания. Если двигатель работает от 3-5 Вольт, то можно моторчик подключать напрямую к плате Ардуино. Моторы для машинки с блютуз управлением, которые идут в комплекте с редукторами и колесами рассчитаны уже на 6 Вольт и более, поэтому ими следует управлять через полевой (биполярный) транзистор или через драйвер L298N.


Принцип работы и устройство мотора постоянного тока

На схеме показано устройство моторчика постоянного тока и принцип его работы. Как видите, для того, чтобы ротор двигателя начал крутиться к нему необходимо подключить питание. При смене полярности питания, ротор начнет крутиться в обратную сторону. Драйвер двигателей L298N позволяет инвертировать направление вращения мотора fa 130, поэтому его удобнее использовать в своих проектах.

3Скетч для управления коллекторным двигателем

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

int Speed = 0; const int IA1 = 5; // Управляющий вывод 1 const int IA2 = 6; // Управляющий вывод 2
void setup() <
pinMode(IA1, OUTPUT); pinMode(IA2, OUTPUT); Serial.begin(9600);
> void loop() <
if (Serial.available() > 0) < String s = Serial.readString(); Speed = s.toInt(); // преобразуем считанную строку в число >if (Speed > 0) < // если число положительное, вращаем в одну сторону analogWrite(IA1, Speed); analogWrite(IA2, LOW); >else < // иначе вращаем ротор в другую сторону analogWrite(IA1, LOW); analogWrite(IA2, -Speed); >
>
Максимальная скорость вращения – при наибольшем значении напряжения, которое может выдать драйвер двигателя. Мы можем управлять скоростью вращения, подавая напряжения в диапазоне от 0 до 5 Вольт. Так как мы используем цифровые ножки с ШИМ, напряжение на них регулируется командой analogWtirte(pin, value), где pin – номер вывода, на котором мы хотим задать напряжение, а аргумент value – коэффициент, пропорциональный значению напряжения, принимающий значения в диапазоне от 0 (напряжение на выводе равно нулю) до 255 (напряжение на выводе равно 5 В).

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

Подключимся с помощью любой терминалки к порту, передадим число «100» – двигатель начнёт вращаться со средней скоростью. Если подадим «минус 100», то он начнёт вращаться с той же скоростью в противоположном направлении.


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

А вот так выглядит подключение подключение коллекторного двигателя к Arduino в динамике:

Как подключить моторчик к Arduino

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • мотор постоянного тока (Motor DC);
  • транзистор полевой/биполярный;
  • драйвер двигателей L298N;
  • провода «папа-папа», «папа-мама».

Перед выбором способа управления двигателем от Arduino Uno r3, уточните на какое напряжение рассчитан ваш моторчик. Если питание требуется более 5 Вольт, то следует использовать транзистор или драйвер. Распиновка транзисторов может отличаться от приведенного примера (следует уточнить распиновку для своего типа). Драйвер L298N позволит не только включать мотор, но и изменять направление вращения.

Скетч. Подключение мотора напрямую


Схема. Управление моторчиком от Ардуино напрямую
Подключение мотора к Ардуино напрямую — самый простой вариант включения вентилятора на Arduino или машинки. Команда для включения двигателя не отличается, от команды при подключении светодиода к микроконтроллеру. Функция digitalWrite включает/выключает подачу напряжения на цифровой порт, к которому подключен двигатель постоянного тока. Соберите схему и загрузите программу.

Пояснения к коду:
  1. для подключения мотора без драйвера можно использовать любой порт;
  2. если двигатель не включается, то, возможно, не хватает силы тока на цифровом выходе, подключите двигатель через транзистор к порту 3,3V или 5V.

Скетч. Подключение мотора через транзистор

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


Подключение FA-130 мотора постоянного тока — Motor DC Arduino void setup() < pinMode(13, OUTPUT); // объявляем пин 13 как выход >void loop() < digitalWrite(13, HIGH); // включаем мотор delay(1000); // ждем 1 секунду digitalWrite(13, LOW); // выключаем мотор delay(1000); // ждем 1 секунду >

Пояснения к коду:
  1. при необходимости можно подключить два мотора FA-130 к Ардуино;
  2. в зависимости от характеристик, двигатель подключается к 3,3 или 5 Вольтам.

Скетч. Подключение мотора через драйвер


Схема подключения двух моторов через драйвер l298n
Подключение мотора к Ардуино через драйвер L298N или Motor Shield L293D позволит менять направление вращения ротора. Но для использования данных модулей потребуется установить соответствующие библиотеки для Ардуино. В примере мы использовали схему подключения двигателя с помощью модуля L298N. Соберите схему, как на картинке ниже и загрузите следующий скетч с использованием.

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

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

Нужно присоединить источник питания. + подключается к пину 4 на плате L298N, минус (GND) – к 5 пину. Затем нужно соединить выходы с L298N и пины на Ардуино, причем некоторые из них должны поддерживать ШИМ-модуляцию. На плате Ардуино они обозначены

. Выходы с L298N IN1, IN2, IN3 и IN4 подключить к D7, D6, D5 и D4 на Ардуино соответственно. Подключение всех остальных контактов представлено на схеме.

Направление вращения задается с помощью сигналов HIGH и LOW на каждый канал. Двигатели начнут вращаться, только когда на 7 пине для первого мотора и на 12 пине для второго на L298N будет сигнал HIGH. Подача LOW останавливает вращение. Чтобы управлять скоростью, используются ШИМ-сигналы.

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

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

Читать еще:  Что такое техобслуживание двигателя

Советы для начинающих. Arduino и шаговый двигатель Nema 17

Перед началом очередного проекта на Arduino, было решено использовать шаговый двигатель Nema 17.

Почему именно Nema 17? В первую очередь, из-за отличного соотношения цена/качество.

Перед подключением Nema 17, за плечами был определенный опыт работы с шаговиком 24byj48 (даташит). Управлялся он и с помощью Arduino, и с помощью Raspberry pi, проблем не возникало. Основная прелесть этого двигателя — цена (около 3 долларов в Китае). Причем, за эту сумму вы приобретаете двигатель с драйвером в комплекте. Согласитесь, такое можно даже и спалить, не особо сожалея о содеянном.

Теперь появилась задача поинтереснее. Управлять шаговым двигателем Nema 17 (даташит). Данная модель от оригинального производителя реализуется по цене около 40 долларов. Китайские копии стоят раза в полтора-два дешевле — около 20-30 долларов. Очень удачная модель, которая часто используется в 3D принтерах и CNC-проектах. Первая возникшая проблема — как подобрать драйвер для этого двигателя. Силы тока на пинах Arduino для питания не хватит.

Общие принципы работы шаговых двигателей

Внешний вид шагового двигателя 28-BYJ48 (купить на AliExpress) представлен на следующем рисунке:

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

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


Как можно видеть из рисунка, двигатель имеет однополярную катушку с 5 выводами. Но фактически это 4 катушки, на которые нужно подавать питание в определенной последовательности. На красные провода необходимо подать +5V, на остальные 4 провода необходимо подать землю чтобы запустить в работу соответствующую катушку. Мы будем использовать плату Arduino чтобы подавать питание на эти катушки в определенной последовательности и тем самым заставлять двигатель вращаться. Более подробно ознакомиться с принципами работы шаговых двигателей можно в статье про подключение шагового двигателя к микроконтроллеру AVR.

Так почему же этот двигатель называется 28-BYJ48? Честно говоря, мы не знаем точного ответа на этот вопрос. Некоторые наиболее важные технические характеристики этого шагового двигателя приведены на следующем рисунке.

На первый взгляд от такого количества характеристик может закружиться голова, но давайте попробуем выделить из них самые важные, те, которые нам понадобятся для дальнейшей работы. Во-первых, мы знаем, что это шаговый двигатель 5V, поэтому необходимо подавать на красный провод 5V. Также мы знаем что это четырехфазный шаговый двигатель поскольку в нем четыре катушки. Передаточное число этого двигателя — 1: 64. Это означает, что вал, который вы видите снаружи, сделает одно полное вращение в том случае, когда двигатель внутри сделает 64 оборота. Это происходит благодаря шестерням, которые включены между двигателем и выходным валом. Эти шестерни помогают в увеличении крутящего момента.

Еще одним важным показателем, который нам следует знать, является угол шага: 5.625°/64. Это значит что когда двигатель сделает последовательность в 8 шагов он будет поворачиваться на 5.625° при каждом шаге и за один полный оборот он сделает 64 шага (5.625*64=360).

Расчет шагов на оборот для шагового двигателя

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

В Arduino для управления двигателем мы будем использовать 4-шаговую последовательность, поэтому угол шага будет составлять 11.25°. Поскольку изначально он равен 5.625°(приведен в даташите), то для 8 шаговой последовательности получим 11.25° (5.625*2=11.25).

Справедлива следующая формула:

Количество шагов за оборот = 360 / угол шага.

В нашем случае 360/11.25 = 32 шага за оборот.

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

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

ДОКУМЕНТАЦИЯ

Документация

Инициализация

Библиотека поддерживает два типа драйверов:

  • STEPPER2WIRE – специализированный 2-х проводной драйвер для шагового мотора с протоколом STEP-DIR, например A4988, DRV8825, TMC2208 и прочие.
  • STEPPER4WIRE и STEPPER4WIRE_HALF – 4-х проводной драйвер, т.е. полномостовой (например L298N) или транзисторная сборка (например ULN2003). STEPPER4WIRE управляет мотором в полношаговом режиме (выше скорость и момент).
  • STEPPER4WIRE_HALF – в полушаговом (меньше скорость и момент, но больше шагов на оборот и выше точность).

При инициализации указывается тип драйвера, количество шагов на оборот и пины:

  • GStepper stepper(steps, step, dir); // драйвер step-dir
  • GStepper stepper(steps, step, dir, en); // драйвер step-dir + пин enable
  • GStepper stepper(steps, a1, a2, b1, b2); // драйвер 4 пин
  • GStepper stepper(steps, a1, a2, b1, b2, en); // драйвер 4 пин + enable
  • GStepper stepper(steps, a1, a2, b1, b2); // драйвер 4 пин полушаг
  • GStepper stepper(steps, a1, a2, b1, b2, en); // драйвер 4 пин полушаг + enable

Где steps – количество шагов на один оборот вала для расчётов с градусами, step , dir , a1 , a2 , b1 , b2 – любые GPIO на МК, en – пин отключения драйвера EN, любой GPIO на МК. Пин en опциональный, можно не указывать.

Работа схемы

Схема устройства представлена на следующем рисунке.


Чтобы подавать питание на соответствующие катушки шагового двигателя мы будем использовать цифровые контакты 8, 9, 10 и 11 платы Arduino, к которым подключены соответствующие контакты драйвера двигателей ULN2003. Потенциометр, с помощью которого мы будем управлять вращением шагового двигателя, подключен к аналоговому контакту A0 платы Arduino.

Драйвер мотора запитывается от контакта 5V платы Arduino. Но если вы будете подсоединять какую-нибудь нагрузку к шаговому двигателю, то вам потребуется внешний источник питания для драйвера мотора. Мы в нашем примере эксплуатируем шаговый двигатель без нагрузки, поэтому нам хватило питания от платы Arduino. И не забудьте соединить землю платы Arduino с землей драйвера мотора.

Читать еще:  Что такое ионный ракетный двигатель

Объяснение программы для платы Arduino

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

Номер шагаКонтакты, на которое подается питаниеКатушки, на которое подается питание
Шаг 18 и 9A и B
Шаг 29 и 10B и C
Шаг 310 и 11C и D
Шаг 411 и 8D и A

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

Мы напишем программу, в которой необходимое количество шагов для двигателя мы будем вводить в мониторе последовательного порта (serial monitor) платы Arduino. Полный текст программы приведен в конце статьи, здесь же мы рассмотрим наиболее важные его фрагменты.

Как мы рассчитали ранее, полное число шагов для полного оборота нашего шагового двигателя, равно 32, пропишем это в следующей строчке кода:

#define STEPS 32

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

Stepper stepper (STEPS, 8, 10, 9, 11);

Примечание: последовательность номеров контактов, указанная в приведенной команде (8,10,9,11) – специально упорядочена таким образом чтобы подавать питание на катушки шагового двигателя в правильном порядке. Если вы измените номера контактов, к которым подключен шаговый двигатель, то вы соответствующим образом должны их упорядочить для подачи в приведенную команду.

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

Для двигателя 28-BYJ48 скорость вращения можно установить в диапазоне от 0 до 200.

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

Количество шагов, которое должен сделать двигатель, определяется переменной “val”. Поскольку мы имеем 32 шага (для оборота) и передаточное число 64 мы должны сделать 2048 (32*64=2048) “шагов” в этой команде для совершения одного полного оборота двигателя.

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

А один шаг против часовой стрелки:

В нашей программе мы будем считывать значение на аналоговом контакте A0 платы Arduino и сравнивать его с предыдущим значением (Pval). Если оно увеличилось, то мы будем делать 5 шагов двигателем по часовой стрелке, а если уменьшилось – то 5 шагов двигателем против часовой стрелки.

potVal = map(analogRead(A0),0,1024,0,500); if (potVal>Pval) stepper.step(5); if (potVal stepper.step(-5); Pval = potVal;

БИБЛИОТЕКА GYVERSTEPPER

GyverStepper v1.5

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

  • Поддержка 4х фазных (шаг и полушаг) и STEP-DIR драйверов
  • Автоматическое отключение питания при достижении цели
  • Режимы работы: Вращение с заданной скоростью
  • Следование к позиции с ускорением и ограничением скорости
  • Следование к позиции с заданной скоростью (без ускорения)
  • Быстрый алгоритм управления шагами
  • Два алгоритма плавного движения:
      Модифицированный планировщик из библиотеки AccelStepper: максимальная плавность и скорость до 7’000 шагов/секс ускорением (для активации пропиши дефайн SMOOTH_ALGORITHM )
  • Мой планировщик обеспечивает максимальную производительность: скорость до 30’000 шагов/сек с ускорением (активен по умолчанию). Т.е. на небольшой скорости экономит кучу процессорного времени для других задач.

    Поддерживаемые платформы: все Arduino (используются стандартные Wiring-функции)

    Версия 1.1: добавлена возможность плавно менять скорость в режиме KEEP_SPEED. Добавлены примеры multiStepper и accelDeccelButton Версия 1.2: добавлена поддержка ESP и других Ардуино-совместимых плат Версия 1.3: исправлена логика setTarget(val, RELATIVE) Версия 1.4: добавлена задержка между STEP HIGH и STEP LOW

    Работа проекта

    Когда вы сделаете все необходимые соединения в схеме данного проекта у вас должна получиться примерно следующая конструкция:

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

    Подключение шагового двигателя 28BYJ-48-5V к Arduino. Часть 1.

    В этой статье мы подключаем шаговый двигатель 28BYJ-48-5V к плате Arduino через драйвер шагового двигателя на безе микросхемы ULN2003.

    Для подключения понадобится:

    • Плата Arduino купить плату Arduino =>>
    • Шаговый двигатель 28BYJ-48 купить шаговый двигатель RKP-28BYJ-48-5V =>>
    • Драйвер для шагового двигателя купить драйвер на микросхеме ULN2003A =>>
    • Коммутационные провода купить провода и шлейфы папа-мама =>>
    • Источник питания для Arduino купить блок питания LJY-186 9V 1A для Arduino =>>
    • Корпус для Arduino купить корпус для платы Arduino =>>

    Для реализации проекта подключения необходимо установить библиотеку Stepper_28BYJ в среду разработки Ардуино IDE.

    Библиотека Stepper_28BYJ это оптимальная библиотека, написанная на основе стандартной общей библиотеки Stepper являющейся частью среды Arduino IDE. Она была созданна конкретно для этого шагового двигателя 28BYJ-48-5V и учитывающая все его индивидуальные параметры.

    Установить библиотеку Stepper_28BYJ в среду Arduino IDE Вам поможет статья «Установка библиотек в Arduino IDE» =>>

    Сборка и подключение:

    Внимание!
    Для драйвера на основе микросхемы ULN2003 DARLINGTON и соответственно мотора 28BYJ-48-5V, который получает питание от драйвера рекомендуется подавать питание от внешнего источника, в нашем случае (только для осуществления программирования) коммутируем подачу питания непосредственно от контроллера Ардуино (мотор работает без нагрузки и непродолжительное время) через контакты (Vin) для (+) и (GND) для (-).

    Драйвер управляется через четыре управляющих входа обозначенные как (IN1, IN2, IN3, IN4), именно к ним необходимо подключить соответственно выходы (Pin) с номерами 8 Pin, 9 Pin, 10 Pin и 11 Pin на плате контроллера Ардуино (как это показано на изображении ниже).

    Схема подключения на примере платы контроллера Arduino UNO R3, модуля драйвера ULN2003 и шагового двигателя 28BYJ-48-5V.

    Загружаем скетч:

    Для загрузки скетча необходимо в среде разработки Ардуино IDE нажать вкладку новый проект и в открывшиеся окошко поместить скетч приведенный ниже:

    Скетч, который необходимо загрузить в контроллер через среду разработки Ардуино IDE:

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

    Если по каким либо причинам Вы не смогли самостоятельно разобраться в подключении или программировании шагового двигателя 28BYJ-48, обратитесь к сотрудникам магазина робототехники и мехатроники — Robot-Kit.ru.

    Наш сайт: www.Robot-kit.ru
    Электронная почта: mos@robot-kit.ru

    У нас Вы найдете необходимую поддержку и помощь.

    голоса
    Рейтинг статьи
  • Ссылка на основную публикацию
    ВсеИнструменты
    Adblock
    detector