Vikupautomsk.ru

Выкуп Авто МСК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Шаговый двигатель и Arduino — основы

Шаговый двигатель и Arduino — основы

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

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

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

Необходимые элементы

Для данного проекта нам понадобятся:

1 шаговый двигатель с напряжением питания 5 вольт

1 монтажная плата

1 Arduino Uno R3 (или другая плата от Arduino)

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

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

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

Скетч Arduino

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

Пример — шаговый двигатель

Stepper motor(512, in1Pin, in2Pin, in3Pin, in4Pin);

// эта строка для Arduino Leonardo. Генерируется задержка в серийном мониторе

int steps = Serial.parseInt();

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

После подключения библиотеки ‘Stepper’ инициализируются управляющие пины от ‘in1’ до ‘in4’.

Для объявления данных пинов с использованием библиотеки шаговых двигателей, используется следующая команда:

Stepper motor(768, in1Pin, in2Pin, in3Pin, in4Pin);

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

После этого налаживается связь по серийному протоколу и в результате плата Arduino может получать команды из окна серийного монитора в Arduino IDE.

Следующая команда устанавливает скорость вращения ротора шагового двигателя:

Функция ‘loop’ очень простая. Функция ожидает, пока придет команда из серийного монитора и преобразовывает текст в виде числового значения в переменную типа int с помощью ‘parseInt’. После этого подается сигнал на двигатель для его вращения на указанное количество шагов.

Полезная информация о шаговых двигателях

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

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

Двигатель, который мы используем имеет 48 шагов, но в нем также установлен редуктор 1:16. В результате мы получаем 16×48=768 шагов.

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

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

С чем еще можно поэкспериментировать

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

Читать еще:  Hyundai i30 свист при запуске двигателя

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

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

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

2 Схемы

Принципиальные электросхемы, подключение устройств и распиновка разъёмов

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

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

Схема драйвера шагового двигателя

Схема драйвера шагового двигателя не содержит дорогих деталей и программируемых контроллеров. Работа может регулироваться в широком диапазоне с помощью потенциометра PR1. Есть изменение направления вращения двигателя. Катушки шагового двигателя переключаются с помощью четырех МОП-транзисторов T1-T4. Применение в блоке транзисторов большой мощности типа BUZ10 позволит подключить двигатели даже с очень большим током.

Особенности схемы и детали

  • управление четырехфазным шаговым двигателем
  • плавная регулировка скорости вращения в пределах всего диапазона
  • изменение направления вращения мотора
  • возможная остановка двигателя
  • блок питания 12 В постоянного тока

Детали — IC1: 4070, IC2: 4093, IC3: 4027, T1-T4: BUZ10, BUZ11

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

Блок, собранный из проверенных компонентов, не требует настройки и запускается сразу после подачи питания. Со значениями элементов, указанными на схеме, позволяет работать двигателю 5,25” и выполняет изменение скорости вращения в интервале от 40 об./мин. до 5 об./мин.

Биполярный контроллер шаговых двигателей

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

Принципиальную схему можно разделить на следующие блоки:

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

Контроллер должен питаться постоянным напряжением, хорошо отфильтрованным, желательно стабилизированным.

Теперь пару слов про H-мосты, которые будут работать с этим драйвером. Они должны принимать на своих входах все возможные логические состояния (00, 01, 10, 11), без риска какого-либо повреждения. Просто в некоторых конфигурациях мостов построенных из дискретных элементов, запрещается одновременное включение двух входов — их естественно нельзя использовать с этим контроллером. Мосты выполненные в виде интегральных микросхем (например L293, L298), устойчивы к этому.

И в завершение третий вариант контроллера, на микросхемах STK672-440, имеющий все необходимые защиты и функции смотрите по ссылке.

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

Настройка тока на драйверах шагового двигателя

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

Шаг — угол шага бывает 1,8 град (200 шагов), 5.625 Градусов (64 шага), 7.2 градуса (50 шагов)

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

Читать еще:  Атмосферный или турбированный двигатель что лучше выбрать

Количество фаз — количество контактов/проводов у шагового двигателя

  1. Биполярный двигатель — это наиболее простая конфигурация с 4 — мя выводами.
  2. Униполярный двигатель (5 или 6 контактов). Позволяет легко изменить магнитные полюса. Запитав сначала один вывод обмотки, а затем другой — мы изменяем магнитные полюса. Основным недостатком является то, что каждый раз, используется только половина доступных катушечных обмоток.
  3. 8-выводной шаговый двигатель может быть подключен любым из возможных способов:
    • 5 или 6-выводной униполярный,
    • биполярный с последовательно соединенными обмотками,
    • биполярный с параллельно соединенными обмотками,
    • биполярный с одним подключением на фазу для приложений с малым потреблением тока

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

Схема соединений шагового двигателя и Arduino

Скетч управления поворотом шагового двигателя с помощью кнопок.

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

Схема подключения шаговый двигатель -EasyDriver -Arduino

Схема подключения шаговый двигатель -EasyDriver -Arduino

Программа для вращения шагового двигателя — EasyDriver и Arduino

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

digitalWrite(dirpin, LOW); // Устанавливаем направление

Галерея схем подключения шагового двигателя к ардуино

    Похожие записи

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

Для отправки комментария вам необходимо авторизоваться.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать еще:  Двигатель 406 газель плохое давление масла

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

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

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

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

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

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

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

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

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

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

Функция 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().

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

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

Функция step(steps)

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

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

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

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

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

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

  • Sketch code

Sketch code

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

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

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

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

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

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

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