Бесколлекторный двигатель ардуино обороты - Авто Журнал
Aklaypart.ru

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

Бесколлекторный двигатель ардуино обороты

Запуск бесколлекторного двигателя arduino

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

  1. Обзор бесколлекторных моторов для Arduino
  2. Необходимые компоненты
  3. Управление мотором от жёсткого диска
  4. Схема управления двигателем через Arduino
  5. Контроллеры бесколлекторных моторов (ESC регуляторы)
  6. Зачем нужен контроллер ESC
  7. Кодирование Ардуино
  8. Система arduino
  9. Крепеж двигателя
  10. Видео, демонстрирующее работу схемы

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

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

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

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

Компоненты контроллера

  • 3 штуки резисторы 1 кОм
  • 3 транзистора Дарлингтона TIP122
  • 3 диода 1N4004
  • 1 аккумулятор с напряжением от 5 до 12 В

Соедините всё как показано на рисунках.

Тут подшипник 22х8 в середине — он не из винчестера, лежит просто для сравнения.

Отсутствие датчика

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

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

Контроллеры обладают следующими свойствами:

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

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

Контроллеры обладают множеством программных настроек:

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

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

Некоторые термины, используемые в тематике BLDC и ESC

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

Читать еще:  Что такое асинхронный режим синхронного двигателя

Braking (торможение) – определяет насколько быстро BLDC двигатель может остановить свое вращение. Это особенно актуально для летающих средств (дронов, геликоптеров и т.д.) поскольку они вынуждены часто изменять количество оборотов двигателя в минуту чтобы маневрировать в воздухе.

Soft Start (плавный пуск, старт) – эта способность особенно важна для BLDC двигателей когда вращающий момент от него на исполнительный механизм (колесо, винт и т.д.) передается через механизм передач, обычно состоящий из шестерен. Плавный пуск означает, что двигатель не начнет сразу вращаться с максимальной скоростью, а будет увеличивать свою скорость вращения постепенно независимо от того, с какой скоростью нарастает управляющее воздействие. Плавный пуск значительно снижает износ шестерен, входящих в передаточный механизм.

Motor Direction (направление вращения двигателя) – обычно направление вращения BLDC двигателей не изменяется в процессе эксплуатации, однако во время сборки и тестирования работы изделия может потребоваться изменение направления вращения двигателя, обычно это можно сделать просто поменяв местами любые два провода двигателя.

Low Voltage Stop (остановка при низком напряжении питания) . Обычно BLDC двигатели калибруют так, чтобы при одинаковом уровне управляющего воздействия скорость его вращения была постоянной. Однако этого трудно достигнуть потому что со временем напряжение питающей батареи уменьшается. Чтобы предотвратить это обычно контроллеры ESC программируют таким образом чтобы они останавливали работу BLDC двигателя когда напряжение питающей батареи опускается ниже определенной границы. Особенно эта функция полезна при использовании BLDC двигателей в дронах.

Response time (время отклика, время реакции, время ответа) . Означает способность двигателя быстро изменять скорость вращения при изменении управляющего воздействия. Чем меньше время реакции, тем лучше контроль над двигателем.

Advance (движение вперед) . Эта проблема является своеобразной «ахиллесовой пятой» для BLDC двигателей. Все BLDC двигатели имеют хотя бы небольшой подобный баг. Эта проблема вызвана тем, что когда катушка статора запитана ротор движется вперед поскольку на нем есть постоянный магнит. И когда управляющее напряжение с этой катушки снимают (чтобы подать его на следующую катушку) ротор продвигается вперед немного дальше чем предусмотрено логикой функционирования двигателя. Это нежелательное продвижение двигателя вперед в англоязычной литературе называют “Advance” и оно может приводить к нежелательным вибрациям, нагреву и шуму при работе двигателя. Поэтому хорошие контроллеры ESC стараются по возможности устранить этот эффект в работе BLDC двигателей.

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

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

Читать еще:  Характеристика двигателя м20 б20

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

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

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

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

Работа регулятора

Включение

После включения двигатель издает 1 короткий сигнал (если звук не отключен), включается и постоянно светится светодиод. Регулятор готов к работе.

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

Запуск

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

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

Во время работы регулятор выдает данные об оборотах двигателя, токе, напряжении батарей через порт UART в формате:

Данные выдаются с периодичностью примерно 1 секунда. Скорость передачи по порту 9600.

Настройка регулятора

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

Регулятор воспринимает следующие команды (в разных версиях прошивки набор настроек и команд может отличаться):

Читать еще:  Громко работает двигатель шевроле лачетти

h — вывод списка команд; ? — вывод настроек; c — калибровка задающего сигнала; d — сброс настроек к заводским настройкам.

команда «?» выводит в терминал список всех доступных настроек и их значение. Например: Изменить нужную настройку можно командой следующего формата:

pwm.start=15

Если команда была дана корректно, настройка будет применена и сохранена. Проверить текущие настройки после их изменения можно командой «?«.

Измерения аналоговых сигналов (напряжение, ток) выполняются с помощью АЦП микроконтроллера. АЦП работает в 8-ми битном режиме. Точность измерения занижена намеренно для обеспечения приемлемой скорости преобразования аналогового сигнала. Соответственно, все аналоговые величины регулятор выдает в виде 8-ми битного числа, т.е. от 0 до 255.

Список настроек, их описание:

ПараметрОписаниеЗначение
motor.typeТип мотора0-Sensorless; 1-Sensored
motor.magnetsКол.во магнитов в роторе двигателя. Изпользуется только для расчета оборотов двигателя.0..255, шт.
motor.angleУгол опережения фазы. Используется только для Sensorless двигателей.0..30, градусов
motor.start.typeТип старта. Используется только для Sensorless двигателей.0-без определения положения ротора; 1-с определением положения ротора; 2-комбинированный;
motor.start.timeВремя старта.0..255, мс
pwmЧастота PWM16, 32, КГц
pwm.startЗначение PWM (%) для старта двигателя.0..50 %
pwm.minЗначение минимального значения PWM (%), при котором двигатель вращается.0..30 %
voltage.limitНапряжение батареи, при котором следует ограничивать мощность, подаваемую на двигатель. Указывается в показаниях ADC.0..255*
voltage.cutoffНапряжение батареи, при котором следует выключать двигатель. Указывается в показаниях ADC.0..255*
current.limitТок, при котором следует ограничивать мощность, подаваемую на двигатель. Указывается в показаниях ADC.0..255**
current.cutoffТок, при котором следует выключать двигатель. Указывается в показаниях ADC.0..255**
system.soundВключить/выключить звуковой сигнал, издаваемый двигателем0-выключен; 1-включен;
system.inputЗадающий сигнал0-потенциометр; 1-RC сигнал;
system.damperДемпфирование входного сигнала0..255, условные единицы
system.deadtimeЗначение Dead Time для ключей в микросекундах0..2, мкс

* — числовое значение 8-ми битного аналого цифрового преобразователя. Рассчитывается по формуле: ADC = (U*R6/(R5+R6))*255/5 Где: U — напряжение в Вольтах; R5, R6 — сопротивление резисторов делителя в Омах.

** — числовое значение 8-ми битного аналого цифрового преобразователя. Рассчитывается по формуле: ADC = U*255/5 Где: U — напряжение датчика тока в Вольтах, соответствующее требуемому току.

Фьюзы микроконтроллера должны быть выставлены на работу с внешним кварцем. Строка для программирования фьюзов с помощью AVRDUDE:

-U lfuse:w:0xFF:m -U hfuse:w:0xDC:m

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