Главная / Новости / Новости отрасли / Двигатель BLDC с Arduino: руководство по подключению, коду и управлению
Новости отрасли
Наше присутствие охватывает весь земной шар.
Мы предоставляем качественные продукты и услуги клиентам со всего мира.

Двигатель BLDC с Arduino: руководство по подключению, коду и управлению

Как ESC позволяет Arduino управлять двигателем BLDC

Arduino не может напрямую управлять тремя фазами двигателя BLDC — у него нет встроенной токовой мощности или логики коммутации. Эта работа ложится на ESC (электронный регулятор скорости), который находится между Arduino и двигателем и преобразует простой ШИМ-сигнал в синхронизированное трехфазное переключение, которое фактически вращает ротор.

С точки зрения Arduino, ESC выглядит точно так же, как стандартный RC-сервопривод. Он ожидает импульс длительностью примерно от 1000 до 2000 микросекунд, повторяющийся каждые 20 миллисекунд, при этом ширина импульса соответствует положению дроссельной заслонки. Вот почему то же самое Сервобиблиотека используемые для любительских сервоприводов, работают для управления ESC — Arduino вообще не взаимодействует с двигателем, он разговаривает со встроенным микроконтроллером ESC, который осуществляет фактическую коммутацию.

Подключение Arduino к двигателю BLDC через ESC

Три провода двигателя большого сечения подключаются от двигателя BLDC напрямую к трехфазным выходам ESC — порядок разъемов не имеет значения для направления на этом этапе, поскольку замена любых двух проводов просто меняет вращение на противоположное. Питание двигателя (обычно LiPo-батарея, соответствующая номинальному напряжению двигателя) подключается к входным выводам ESC, а не к Arduino.

Со стороны сигнала проще: один провод ШИМ от цифрового контакта Arduino к сигнальному входу ESC, плюс общая земля между Arduino и ESC. Большинство ESC включают в себя BEC (схему устранения батареи) на этом сигнальном разъеме, которая подает регулируемое напряжение 5 В обратно на Arduino — это означает, что отдельный источник питания для платы обычно не требуется, если выход BEC ESC рассчитан на ток, потребляемый Arduino.

Код Arduino для базового управления скоростью

При наличии проводки сам код короткий. Библиотека сервоприводов рассматривает ESC как серводвигатель, и скорость отображается в том же диапазоне 0–180, который библиотека использует для угла:

  • Прикрепите сигнальный контакт ESC, используя ESC.attach(9, 1000, 2000) , явно устанавливая диапазон ширины импульса
  • Считайте потенциометр на аналоговом выводе для ручного управления скоростью.
  • Сопоставьте аналоговое показание 0–1023 с диапазоном 0–180, ожидаемым ESC.
  • Запишите это сопоставленное значение с помощью ESC.write(скорость) внутри основного цикла

Этот шаблон работает, поскольку базовый формат сигнала идентичен формату любительского сервопривода, как описано в Справочник по библиотеке Arduino Servo , который объясняет тайминги импульсов и ограничения на контакты, на которые опирается библиотека.

Включение и калибровка ESC

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

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

Сенсорный и бессенсорный BLDC: почему он меняет настройку Arduino

Все вышеизложенное предполагает наличие бездатчикового двигателя BLDC в сочетании со стандартным ESC — наиболее распространенная установка для любителей и причина, по которой большинство руководств по умолчанию используют ее. ESC определяет положение ротора по противо-ЭДС, генерируемой в фазе отсутствия питания, что хорошо работает, когда двигатель вращается, но означает, что двигателю требуется короткий пусковой режим с разомкнутым контуром, прежде чем ESC сможет зафиксировать синхронизацию BEMF.

В двигатель BLDC с датчиками добавлены три датчика Холла, которые напрямую сообщают о положении ротора, даже при нулевых оборотах в минуту. Это исключает рампу при запуске и обеспечивает более плавное управление на низких скоростях, но это также означает, что ESC или контроллер должны иметь входы датчика Холла — простой ESC без датчиков вообще не имеет для них проводки. Если проект требует точного крутящего момента на низкой скорости или частых запусков и остановок, с самого начала необходимо приобрести двигатель с датчиками и контроллер, совместимый с Холлом, чтобы избежать переделки настройки управления в дальнейшем.

R5 Fast response Brushless DC Motor Controller

От прототипа Arduino до управления двигателем промышленного уровня

ESC с ШИМ-управлением является подходящим инструментом для проверки концепции: он дешев, хорошо документирован и не требует программного обеспечения для настройки. Но у него также есть реальные ограничения: отсутствие обратной связи по току на Arduino, минимальная логика защиты и разрешение управления, привязанное к окну импульсов 1000-2000 микросекунд, которое плохо масштабируется, когда управление крутящим моментом, регулирование скорости с обратной связью или отчетность о неисправностях становятся требованиями.

Когда проект переходит от прототипирования к готовому продукту, следующим обычным шагом становится контроллер, который обменивается данными по цифровой шине, а не по одной линии ШИМ. интерфейс отладки UART-TTL, используемый для настройки контроллеров промышленных двигателей играет здесь роль, аналогичную последовательному монитору Arduino — он позволяет вам считывать параметры и настраивать поведение напрямую, а не гадать только по ширине импульса.

Для команд, переросших хобби-ESC, точка входа в программируемые по шине CAN контроллеры двигателей BLDC компании APT. предлагает тип настраиваемого ограничения тока и диагностики, которые базовый ESC просто не предоставляет. Приложения, требующие более жесткого реагирования — робототехнические манипуляторы, приводные механизмы и все, что связано с быстроменяющейся нагрузкой — лучше обслуживаются быстродействующий контроллер BLDC, созданный для приложений с обратной связью в реальном времени а не хобби ESC с разомкнутым контуром.

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



Заинтересованы в сотрудничестве или есть вопросы?
  • Отправить запрос {$config.cms_name}