Site Language

Translate

Danish Dutch English French German

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

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

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

Достоинствами шаговых двигателей по сравнению с простыми являются:

 угол поворота ротора ШД зависит от числа поданных на двигатель пусковых импульсов;

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

 высокая точность позиционирования и повторяемости — качественные ШД имеют точность не хуже 2,5 % от величины шага, при этом данная ошибка не накапливается при последующих шагах;

 ШД может быстро стартовать, останавливаться и выполнять реверс;

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

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

 ШД обеспечивает получение сверхнизких скоростей вращения вала для нагрузки, подведенной непосредственно к валу двигателя, без использования редуктора;

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

Недостатки шаговых двигателей:

 ШД обладает явлением резонанса;

 возможен вариант выпадения двигателя из синхронизации с последующей потерей информации о положении при работе цепи обратной связи;

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

 сложность управления при работе на высоких скоростях (на самом деле эффективная работа шагового двигателя на высоких скоростях возможна);

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

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

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

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

 

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

 

На блок управления ШД (драйвер) подаются сигналы "сделать шаг" и "задать направление". Сигналы представляют собой импульсы 5 В. Такие импульсы можно получить от микроконтроллера Arduino. Для шагового двигателя необходимо отдельное питание — выводы шагового двигателя напрямую к выводам Arduino подключать нельзя. Подключение ШД осуществляется через Motor Shild либо с помощью микросхемы драйвера двигателей — например, L293. Схема подключения представлена на рисунке.

Arduino-библиотека Stepper

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

Набор функций у нее следующий:

 Stepper();

 setSpeed();

 step().

Функция Stepper()

Функция Stepper() создает новый объект класса Stepper, привязанный к одному шаговому двигателю, подключенному к контроллеру Arduino. Конструктор следует использовать при объявлении переменной класса Stepper, обычно в самом начале — вне setup() и loop(). Количество параметров зависит от способа подключения — 2 или 4 выхода используются для управления двигателем.

Синтаксис:

Stepper(steps, pin1, pin2) Stepper(steps, pin1, pin2, pin3, pin4)

Параметры:

 steps — количество шагов в полном обороте используемого двигателя. Если в документации к двигателю указан угол одного шага, то следует разделить 360° на этот угол, что даст нам искомое количество шагов;

 pin1, pin2, pin3, pin4 — выходы Arduino для подключения шагового двигателя. Возвращаемое значение: новый экземпляр объекта класса Stepper.

Функция setSpeed(rpm)

Функция setSpeed(rpm) устанавливает скорость вращения в оборотах в минуту. Эта функция не заставляет двигатель вращаться, а лишь устанавливает скорость вращения, которая будет использована при вызове функции step().

Синтаксис:

Stepper.setSpeed(rpm)

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

Возвращаемого значения нет.

Функция step(steps)

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

Синтаксис:

Stepper.step(steps)

Параметр: steps — количество шагов:

• положительное число — вызывает вращение в одну сторону;

• отрицательное — в противоположную. Возвращаемого значения нет.

Пример использования библиотеки Stepper

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

 

Sketch code

#include <Stepper.h>

const int stepsPerRevolution=200; // количество шагов в полном обороте двигателя

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

int minangle=15; // угол поворота на 1 нажатие (шаг камеры) struct KEYS // структура для хранения статусов клавиш

{

int button; // нажатая кнопка

long millisbutton[7]; // millis для button

};

 

void setup() {;}

void loop() { int valbutton;

// опрос клавиатуры valbutton=analogRead(A0); if(valbutton<1000)

{buttonClick2(buttonClick1(valbutton));}

}

// обработка нажатия кнопки int buttonClick1(int val)

{

if(val>650) {KEYS1.button=1;return 1;}

if(val>600) {KEYS1.button=2;return 2;}

if(val>530) {KEYS1.button=3;return 3;}

if(val>450) {KEYS1.button=4;return 4;}

if(val>300) {KEYS1.button=5;return 5;}

if(val>200) {KEYS1.button=6;return 6;}

return 0;

}

void buttonClick2(int val)

{

if(millis()-KEYS1.millisbutton[val]<100) // проверка на дребезг return;

KEYS1.millisbutton[val]=millis(); KEYS1.button=val;

switch(val) { case 1: // left

myStepper.step(stepsPerRevolution*minangle/360*(-1)); break;

case 2: // up break;

case 3: // down break;

case 4: // right myStepper.step(stepsPerRevolution*minangle/360); break;

case 5: // white break;

case 6: // red

// код на нажатие кнопки камеры break;

default: break;

}

}

 


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

Arduino-библиотека AccelStepper

Стандартной библиотеки Stepper вполне достаточно для простого применения с одним двигателем. Библиотека AccelStepper значительно улучшает стандартную библиотеку Stepper, позволяя подключать несколько шаговых двигателей с управляемым ускорением и замедлением. Можно создать несколько объектов AccelStepper, давая уникальное имя каждому двигателю. Библиотеку можно скачать по адресу http://www.open.com.au/mikem/arduino/AccelStepper. 

Плата расширения L293D, ИК-датчик VS1838B, TFT LCD, Модем M590E GSM GPRS, "монитор TFT LCD, датчик движения HC-SR501, ИК-пульт дистанционного управления, Радиомодуль NRF24L01, SD Card Module, Звуковой модуль, 5-axis stepper motor driver, Шаговый двигатель, Модем M590E GSM GPRS, 5-axis stepper motor driver, Часы реального времени DS 3231/DS 1307, терморегулятор W1209 DC, Релейный модуль, датчик движения HC-SR501, Модуль Wi-Fi ESP8266-12E, датчик движения HC-SR501, Передатчик и приемник в диапазоне RF 433 Mhz, Блок питания, L293D, Микросхема контроллера коллекторного электродвигателя, ИК-пульт дистанционного управления, Датчики контроля температуры, Радиомодуль NRF24L01, OKI 120A2, Rotary Encoder, SD Card Module, Беспроводной пульт дистанционного управления, Микросхема контроллера коллекторного электродвигателя, Модуль Bluetooth HC-06,, Модем M590E GSM GPRS, Часы реального времени DS 3231/DS 1307, Mini 360 на схеме LM2596, MP3-TF-16P, L293D, Модуль LCD монитора, Инфракрасные датчики расстояния, Часы реального времени, USB Host Shield, HC-SR501, Cветочувствительный датчик сопротивления, блок питания Mini 360 на схеме LM2596, ЖК-дисплей TFT дисплей, Контроллер L298N, HC-SR501, Модуль MP3 Player WTV020, GSM GPRS, Сервоприводы, Модем M590E GSM GPRS, Часы реального времени DS 3231/DS 1307, Модуль Wi-Fi ESP8266-12E, Инфракрасные датчики расстояния, Card Module, Ультразвуковые дальномеры HC-SR04, Блок питания, Карта памяти SD, Mini 360, Ethernet shield, L293D, блок питания Mini 360 на схеме LM2596, Радиомодуль, датчик температуры DS18B20, ИК-пульт дистанционного управления, USB конвертер UART, ИК-пульт, Антена для модуля WiFi, Ethernet shield, Модуль блока питания XL6009, Микросхема контроллера коллекторного электродвигателя, Модуль качества воздуха MQ-135, Микросхема контроллера коллекторного электродвигателя, ИК-пульт дистанционного управления, SD Card Module, Радиомодуль NRF24L01, двигатель OKI, 5-axis stepper motor driver, L293D, TB6560, Драйвер шагового двигателя TB6600, Шаговый двигатель, Модуль камеры, Блок питания, L293D, блок питания Mini 360 на схеме LM2596, 5axis mach3 interface, Карта памяти SD, Ethernet shield, Контроллер L298N, датчик движения HC-SR501, Модуль Wi-Fi ESP8266-12E, Модуль LCD монитора LCD1602, Шаговый двигатель OKI 120A2, Шаговый двигатель, Шаговый двигатель.

All Vintage Vinyl Records VinylSU.xyz

1.png2.png3.png4.png5.png

РУБИКОН Группа «Мозаика», ИЕРОГЛИФ ГРУППА «ПИКНИК», В ПОЛЁТ ГРУППА «ТЯЖЕЛЫЙ ДЕНЬ», Группа «Алиса», Бенни Гудмен, Равноденствие ГРУППА «АКВАРИУМ», Элтон Джон Твоя песня, Демон Группа «Август», Deep Purple – The House Of Blue Light, «Лед Зеппелин» Led Zeppelin, «Акцепт», Doors, «Металлика», АНСАМБЛЬ „UB 40", группа «Зоопарк», рок-группа «ЗОДИАК», «Браво», «Кино», Rolling Stones «Роллинг стоунз», РОК-ГРУППА «МАШИНА ВРЕМЕНИ»,«Кокто твинз», Группа «ДИАЛОГ», Bill Evans, Джимми Лансфорд, Флетчера Хендерсона, Дюк Эллингтон, Каунт Бейси, АНСАМБЛЬ "THE MOODY BLUES", Элвис Пресли, "Юнона" и "Авось" , Дж. Верди Реквием G.Verdi Requiem Mass, Элтон Джон, Реджинальд Кеннет Дуайт, АББА, ABBA, “Deep Purple”, «ЧЕЛОВЕК С БУЛЬВАРА КАПУЦИНОВ», “Rolling Stone”, Instrumrutal rock group Zodiac,‘‘Long Tall Ernie and The Shakers”, “The Beatles”, "Tom Fcgerty and The Blue Velvets", "Creedruce Clearwater Revival","Greru River" "Bayou Country", "Willy and The Poorboys", Varnishing Day Songs on Ilya Reznik's lirics , Leo Sayer ЛЕО СЕЙЕР, Boney M,"Waiting For The Sun", Doors «ДОРЗ», "Piper At The Gates Of Dawn", Led Zeppelin ? «ЛЕД ЗЕППЕЛИН», Rolling Stones , "Юнона" и "Авось" Опера Либретто, «РОЛЛИНГ СТОУНЗ», Modern talking,"Aftermath", «ДОМ ГОЛУБОГО СВЕТА», "Out Of Our Heads", Ricchi E Poveri, PINK FLOYD «Пинк Флойд», Vladimir Kuzmin, ПОЛ МАККАРТНИ Paul McCartney, «TWruTY FLIGHT ROCK», Creedruce Clearvater revival Traveling band,«LAWDY. MISS CLAWDY», «BRING IT ON HOME TO ME», Light My Fire,«DON'T GET AROUND MUCH ANY MORE», МУЗЫКАЛЬНЫЙ ТЕЛЕТАЙП-3,«I'М GONNA BE A WHEEL SOME DAY», МОДЕРН ТОКИНГ,«AINT THAT A SHAME», «THAT'S ALL RIGHT (МАМА)», АНСАМБЛЬ UB 40, «JUST BECAUSE», МИГЕЛЬ РАМОС, «SUMMERTIME», "АНСАМБЛЬ "THE MOODY BLUES", «CRACKIN UP», ТНЕ СОММОDORES, «MIDNIGHT SPECIAL», АННА ГEРМАН, Deep Purple «ДИП ПЁРПЛ», „Deep Purple in Rock", Андрей Миронов, Олег Табаков, Михаил Боярский, Николай Караченцов, Альберт Филозов, Олег Анофриев, Игорь Кваша, Леонид Ярмольник, ИЛЬЯ РЕЗНИК , Резанов Николай Петрович, ВЛАДИМИР ВЫСОЦКИЙ, Роджер Уотерс, АЛЕКСАНДР РОЗЕНБАУМ, Ричард Райт и Ник Мэйсон, ВЛАДИМИР КУЗЬМИН, Элвис Аарон Пресли, Leo Sayer, АДРИАНО ЧЕЛЕНТАНО, Билл Эванс, Клаудия Мори....

и это еще не конец.

С уваженим Dron!