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

Классическая схема шагового двигателя

Принцип управления 4 обмоточного шагового двигателя заключается в коммутации обмоток двигателя. В инете я нашел три варианта

  1. one phase on – управление запиткой по одной фазе. В этом варианте мы получим самый экономичный режим работв, но и саму малую мощность.
  2. two phase on – управление запиткой двух обмоток сразу в это варианте потребление увеличивается в два раза соответственно и мощность вращения ротора, по оценкам на 40-50%.
  3. one and two phase on – это полушаговый режим работы, в принципе комбинация первого и второго метода.

 

Механизм управления обмотками

one phase on

two phase on

one and two phase on

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

 

Функция управления в режимах one phase on и two-phase-on

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

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

Вспомогательные функции

Задание скорости перемещения шагового двигателя

Режим работы

Основная функция управления

Запуск двигателя, направление и количество шагов

Принцип работы, мы задаем количество шагов, направление и включаем прерывание от таймера Т2. Все остальное происходит автоматически. Для контроля выполнения позиционирования ШД, можно использовать сброс разрешения прерываний для таймера T2.

Если использовать МСС для конфигурации, то функцию прерываний от T2 надо модернизировать следующим образом:

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

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

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

Перед началом работы надо задать режим работы one phase on и two-phase-on и необходимую скорость вращения. Далее для перемещения двигателя на заданное количество шагов используем функцию steping.

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


 


Проект для тестирования



Это может быть интересно


  • ESP8266  процедура получение данных даты и времени от серверов точного времени.ESP8266 процедура получение данных даты и времени от серверов точного времени.
    Эта функция доступна уже в версии 1,6,1. Для многих приложений, необходимо часы реального времени,  если в вашем проекте есть модуль WiFI ESP8266, то легко можно сделать следующим образом. Процедура описывает …
  • Мультимедийная сеть – AVC-LAN TOYOTAМультимедийная сеть – AVC-LAN TOYOTA
    AVC LAN – протокол обмена данными мультимедийных систем автомобиля. Кодирование данных. При кодировании различаться три типа данных : преамбула – её назначение, это сообщение устройствам на шине, что начинается передача данных. бит 0 …
  • OLED RET012864E/REX012864JOLED RET012864E/REX012864J
    RET012864E/REX012864J ОЛЕД индикатор производитель Raystar-Optronics приобретался в http://www.microchip.ua/ к сожалению никакой информации на сайте поставщика нет. Поэтому решил работу с этой версией индикатора на драйвере SSD1305 предоставить на своем сайте. Так как есть ошибки …
  • WiFi ESP8266 – AT команды связанные с функцией Wi-FiWiFi ESP8266 – AT команды связанные с функцией Wi-Fi
    AT команды связанные с функцией Wi-Fi Функции Wi-Fi подключения, запускаться из командной строки Команда Описание  1 AT+CWMODE Проверка, настройка режима работы Wi-Fi (sta/AP/sta+AP), (не рекомендуется для новых проектов). 2 AT+CWMODE_CUR Проверка, …
  • Индикатор температурыИндикатор температуры
    Проект для начинающих, на демо плате BB-2T3D-01. Простой индикатор температуры. Проект никак не задумывался, просто на витрину магазин Ворон нужна была демонстрационная модель на макетной плате, чего нибудь работающего. Остановились на индикаторе температуре. Нужен был какой нибудь выводной …
  • Проект с использованием MCC часть 08Проект с использованием MCC часть 08
    И так создадим проект в котором при помощи двух кнопок мы сможем управлять яркостью светодиодов. При использовании МСС у нас лафа полная, добрые дяди с Microchipa подготовили функции, которыи позволяет …
  • ch-4050 – дифференциальный терморегуляторch-4050 – дифференциальный терморегулятор
    ch-4050 – это не новая модель, это расширенная версия универсального терморегулятора ch-4000. Различия коснулись в появлении новой функции дифференциального регулирования. Это вид регулирования по разности температур измеренного двумя датчиками. Теперь …
  • Контроллер управления светодиодным освещением с дистанционным управлениемКонтроллер управления светодиодным освещением с дистанционным управлением
    Все активнее светодиоды входят в нашу жизнь. Всё эффективнее становится светодиодное освещение. Всё ниже опускаются цены. Всё больше появляется возможностей получения сочных цветов, простоты в управлении. Всё чаще можно увидеть …
  • Стабилизатор тока для светодиодов SN3350Стабилизатор тока для светодиодов SN3350
    SN3350 ближайший аналог ZXLD1350 Как собрать готовый вариант, читайте во второй части – http://catcatcat.d-lan.dp.ua/stabilizator-toka-na-sn3350-chast-2/ 40V  драйвер светодиодов с внутренним ключом  SN3350 – импульсный понижающий преобразователь, разработанный для того, чтобы эффективно управлять одним или группой параллельно-последовательно …
  • Moving average – скользящее среднееMoving average – скользящее среднее
    Скользящая средняя, скользящее среднее (англ. moving average, MA) — общее название для семейства функций, значения которых в каждой точке определения равны среднему значению исходной функции за предыдущий период. Скользящие средние обычно используются с данными временных рядов для сглаживания краткосрочных колебаний …



Tagged with →  
Share →
Translate »

Copyright © Catcatcat 2013-2018. Все права защищены.
Копирование разрешается только с указанием активной ссылки на правообладателя.

e-mail: catcatcat.electronics@gmail.com