Как вы уже знаете из прошлых постов, у нас в компании есть DIY-движение. В свободное от работы время коллеги занимаются фрезеровкой печатных плат в домашних условиях, делают тепловизор на FLIR Lepton, а также решают семейные разногласия с помощью 4 контроллеров и 2 умных часов. Продолжим серию увлекательный историй! Сегодня я расскажу, как сделать контроллер к трехфазному двигателю электровелосипеда своими руками. Целью создания такого контроллера было:
- Изучение работы трехфазного мотора под управлением контроллера.
- Большинство контроллеров для электровелосипедов, представленных на рынке, — китайские. Они хоть и относительно дешевые (около 2.000 руб в зависимости от мощности), но являются неведомой коробкой, в которой неизвестно что происходит. И сразу к ней возникает очень много вопросов — экономично ли она потребляет и распределяет ток, какой у нее запас мощности, почему так сильно перегревается, преждевременно срабатывает защита по току и т.д.
В тоже время на рынке представлены европейские качественные контроллеры для электробайков. Они оснащаются расширенными функциями, работают на разных напряжениях и токах и их можно программировать. Устанавливаются они на сверхмощные электровелосипеды. Но цена у них кусается — 10-20 тыс. рублей.
В итоге я решил пойти своим путем: разобраться в устройстве контроллера, сделать его прототип, а затем попытаться сделать контроллер качественнее китайского контроллера. На текущий момент проект у меня в разработке только и на уровне прототипа, готового варианта пока нет. Буду рад услышать ваши комментарии и советы.
Применение
В электровелосипедах используются трёхфазные бесщёточные электродвигатели с датчиками Холла. Стоит отметить, что применение подобных трёхфазных двигателей достаточно обширно:
- Бытовая техника
- Оргтехника
- Электротранспорт
- Промышленность
Устройство двигателя
Для разработки контроллера необходимо разобраться с принципом работы самого электродвигателя.
Электродвигатель состоит из фазных обмоток, магнитов и датчиков Холла, отслеживающих положение вала двигателя.
Конструктивно электродвигатели делятся на два типа: инраннеры и аутраннеры.
У инраннеров магнитные пластины крепятся на вал, а обмотки располагаются на барабане (статоре), в этом случае в движение приводится вал. В случае аутраннера всё наоборот: на валу — фазные обмотки, а в барабане — магнитные пластины. Это приводит в движение барабан.
Так как у велосипеда колесо крепится валом на раму, то здесь применителен тип аутраннера.
На этой картинке условно представлены три фазы с обмотками, соединёнными между собой. В реальности обмоток намного больше, они располагаются равномерно с чередованием по фазам по окружности двигателя. Чем больше обмоток — тем плавнее, чётче, эластичнее работает двигатель.
В двигатель устанавливаются три датчика Холла. Датчики реагируют на магнитное поле, тем самым определяя положение ротора относительно статора двигателя. Устанавливаются с интервалами в 60 или 120 электрических градусов. Эти градусы относятся к электрическому фазному обороту двигателя. Необходимо учитывать, что чем больше в двигателе обмоток на каждую фазу, тем больше происходит электрических оборотов за один физический оборот мотор-колеса.
Обмотки трёх фаз в большинстве случаев соединяются между собой по двум схемам: звезда и треугольник. В первом случае ток проходит от одной из фаз к другой, во втором — по всем трём фазам в разной степени. Иногда эти две схемы подключения комбинируют в одном двигателе, например в электромобилях. При старте и наборе скорости идёт соединение фаз по звезде: она даёт больший момент при относительно низких оборотах; далее, после набора скорости, происходит переключение на треугольник, в результате количество оборотов увеличивается, когда уже не нужен большой крутящий момент. По сути, получается условно автоматическая коробка передач электродвигателя.
Цикл работы
Чтобы привести в движение трёхфазный двигатель, нужно рассмотреть цикл его работы за электрический оборот. Итак, имеем три фазы — A, B, C. Каждая из фаз получает положительную и отрицательную полярности в определённый момент времени. Поочерёдно по шагам пропускается ток от «плюса» одной фазы к «минусу» другой фазы. В итоге получается шесть шагов = три фазы × две полярности.
A+, A–, B+, B–, C+, C–
Рассмотрим эти шесть шагов цикла. Предположим, что положение ротора установлено в точке первого шага, тогда с датчиков Холла мы получим код вида 101, где 1 — фаза А, 0 — фаза B, 1 — фаза С. Определив по коду положение вала, нужно подать ток на соответствующие фазы с заданными полярностями. В результате вал проворачивается, датчики считывают код нового положения вала — и т. д.
В таблице указаны коды датчиков и смена комбинаций фаз для большинства электродвигателей. Для обратного хода колеса (реверса) достаточно перевернуть знаки полярности фаз наоборот. Принцип работы двигателя довольно прост.
Цикл двигателя представлен в gif-анимации.
Транзисторы и Н-мост
Но чтобы поочерёдно подавать ток на каждую из фаз и менять их полярность, необходимы транзисторы. Ещё нам нужна передача больших токов, высокая скорость переключения и чёткость открытия/закрытия затворов. В данном случае удобнее управлять затворами по напряжению, а не по току. Поэтому оптимальны полевые (MOSFET) транзисторы. Чаще всего их используют в контроллерах. Очень редко можно встретить комбинированный вариант транзисторов.
Для переключения фаз со сменой их полярностей используют классическую схему Н-моста (H-Bridge) из полевых транзисторов.
Он состоит из трёх пар транзисторов. Каждая из пар подключается к соответствующей фазе обмотки двигателя и обеспечивает подачу тока со значением (+ или –). Транзисторы, отвечающие за включение фазы с положительным значением, называют верхними ключами. С отрицательным — нижними. Для каждого шага открывается пара ключей: верхний одной фазы и нижний соседней фазы. В результате ток проходит от одной фазы к другой и приводит электродвигатель в движение.
Из схемы видно, что мы не можем включить одновременно верхний и нижний ключ у одной и той же фазы: произойдёт короткое замыкание. Поэтому очень важно быстрое переключение верхних и нижних ключей, чтобы в переходных процессах не появилось замыкание. И чем качественнее и быстрее мы обеспечим переключения, тем меньше у нас будет потерь и нагрева/перегрева транзисторов H-моста.
Для запуска остаётся обеспечить управление затворами ключей H-моста. Для управления H-мостом нужно:
- Считать показания датчиков Холла.
- Определить, в каком положении какую пару ключей включать.
- Передать сигналы на соответствующие затворы транзисторов.
Прототип на Ардуино
Под рукой у меня была Arduino UNO, и я решил собрать контроллер на её основе.
Первым делом я подал на датчики Холла питание 5 вольт от Ардуино (его достаточно для датчиков). Сигнальные провода от датчиков подключил на цифровые пины Ардуино, написав простейшую программу для считывания и обработки сигналов с датчиков.
//Пины ключей Н-мостов const int TRAplus = 8; const int TRAminus = 9; const int TRBplus = 10; const int TRBminus = 11; const int TRCplus = 12; const int TRCminus = 13; //датчики холла const int HallA = 3; const int HallB = 1; const int HallC = 0; boolean vala; boolean valb; boolean valc; boolean pvala; boolean pvalb; boolean pvalc; int pHall; int turns; void setup() { //Установка пинов ключей на выход pinMode(TRAplus, OUTPUT); pinMode(TRAminus, OUTPUT); pinMode(TRBplus, OUTPUT); pinMode(TRBminus, OUTPUT); pinMode(TRCplus, OUTPUT); pinMode(TRCminus, OUTPUT); //Вывод данных через серийный порт Serial.begin(9600); } void loop() { //Считываем датчики Холла и записываем их значение в val vala = digitalRead(HallA); valb = digitalRead(HallB); valc = digitalRead(HallC); //Счётчик оборотов колеса. Необходима доработка if(vala && !pvala) { if(pHall == HallC) // или HallB в обратную сторону turns++; pHall = HallA; } if(valb && !pvalb) { if(pHall == HallA) // или HallC в обратную сторону turns++; pHall = HallB; } if(valc && !pvalc) { if(pHall == HallB) // или HallA в обратную сторону turns++; pHall = HallC; } digitalWrite(TRAplus, (vala && !valb) ? HIGH : LOW); //если vala==HIGH и valb==LOW, тогда записать HIGH, иначе LOW digitalWrite(TRAminus, (valb && !vala) ? HIGH : LOW); digitalWrite(TRBplus, (valb && !valc) ? HIGH : LOW); digitalWrite(TRBminus, (valc && !valb) ? HIGH : LOW); digitalWrite(TRCplus, (valc && !vala) ? HIGH : LOW); digitalWrite(TRCminus, (vala && !valc) ? HIGH : LOW); pvala = vala; pvalb = valb; pvalc = valc; Serial.print(vala); Serial.print(valb); Serial.println(valc); //Serial.println(turns/3); }
Затем собрал Н-мост из полевых NPN-транзисторов. Подвёл к мосту независимое питание на 12 вольт. Но при отладке, чтоб убедиться в работоспособности, я подключил напрямую шесть пинов 5V из Ардуино на затворы H-моста. У большинства полевых транзисторов затвор работает на 20 вольт. Так делать нельзя, потому что Н-мост будет плохо работать и перегреваться. Но для кратковременных тестов это пойдёт. Кое-как, с сильными перегревами и страшными звуками, вибрациями и толчками колесо медленно закрутилось. Начало положено.
Мостовые драйверы
Далее предстояла работа над напряжением 20 вольт на управление затворами. Для этого существуют мостовые драйверы транзисторов, они обеспечивают стабильные импульсы в 20 вольт на затвор и высокую скорость отклика. Сначала у меня были популярные драйверы для маломощных моторов L293D.
Для управления затворами его достаточно, к тому же их очень просто использовать. Один такой драйвер может обеспечить питанием две пары ключей. Поэтому я взял две штуки L293D. Собрал контроллер с этими драйверами, и колесо начало крутиться существенно плавнее, посторонних звуков стало меньше, нагрев транзисторов уменьшился. Но при увеличении оборотов синхронизация с контроллером пропадала, появлялся посторонний звук, колесо дёргалось, вибрировало и полностью останавливалось.
В это же время я наткнулся на два варианта мостовых драйверов:
- HIP4086
- IR2101
Что касается HIP4086, то это полноценный мостовой драйвер, предназначенный для трёхфазного электродвигателя. Мне он показался несколько замороченным, и мои попытки использовать его в контроллере не увенчались успехом: он у меня так и не заработал. Углублённо разбираться в причинах не стал.
А взял я IR2101 — полумостовой драйвер, обеспечивающий работу нижнего и верхнего ключей для одной фазы. Несложно догадаться, что таких драйверов нужно три. К слову, драйвер очень прост в использовании, его подключение происходит безболезненно и легко. Получилась такая схема:
Печатная плата
И готовый результат
Собрал контроллер с этим драйвером и запустил двигатель. Ситуация с работой электродвигателя кардинально не поменялась, симптомы остались те же, как и в случае с драйвером L293D.
Аппаратное прерывание
И тут я понял, в чём дело: Ардуино не успевает обрабатывать показания датчиков Холла! Поэтому необходимо было использовать пины Ардуино с аппаратным прерыванием. Так как у Ардуино УНО таких пинов всего два, а под датчики нужно три пина, надо взять Ардуино Леонардо или Искра Нео, где таких пинов — четыре штуки.
Переписав программу под прерывания и подключив Искру Нео вместо УНО, я повторил испытания.
//Пины ключей Н-мостов const int TAH = 8; //T — транзистор, А — фаза (синяя), Н — верхний ключ полумоста const int TAL = 9; //T — транзистор, А — фаза (синяя), L — нижний ключ полумоста const int TBH = 10; //T — транзистор, B — фаза (зелёная), H — верхний ключ полумоста const int TBL = 11; //T — транзистор, B — фаза (зелёная), L — нижний ключ полумоста const int TCH = 12; //T — транзистор, C — фаза (жёлтая), H — верхний ключ полумоста const int TCL = 13; //T — транзистор, C — фаза (жёлтая), L — нижний ключ полумоста //------------------------------------------------------------------------------------------------ //датчики холла int HallA = 3; //пин 1 (с прерыванием) int HallB = 1; //пин 2 (с прерыванием) int HallC = 0; //пин 3 (с прерыванием) //------------------------------------------------------------------------------------------------ volatile boolean vala; volatile boolean valb; volatile boolean valc; //------------------------------------------------------------------------------------------------ void setup() { //Установка пинов ключей на выход pinMode(TAH, OUTPUT); pinMode(TAL, OUTPUT); pinMode(TBH, OUTPUT); pinMode(TBL, OUTPUT); pinMode(TCH, OUTPUT); pinMode(TCL, OUTPUT); //Считывание датчиков Холла vala = digitalRead(HallA); valb = digitalRead(HallB); valc = digitalRead(HallC); //Аппаратное прерывание на пинах датчиков Холла attachInterrupt (digitalPinToInterrupt(HallA), changeA, CHANGE); attachInterrupt (digitalPinToInterrupt(HallB), changeB, CHANGE); attachInterrupt (digitalPinToInterrupt(HallC), changeC, CHANGE); //LOW вызывает прерывание, когда на порту LOW //CHANGE прерывание вызывается при смене значения на порту с LOW на HIGH, и наоборот //RISING прерывание вызывается только при смене значения на порту с LOW на HIGH //FALLING прерывание вызывается только при смене значения на порту с HIGH на LOW } void Fases() { digitalWrite(TAH, (vala && !valb) ? HIGH : LOW); digitalWrite(TAL, (valb && !vala) ? HIGH : LOW); digitalWrite(TBH, (valb && !valc) ? HIGH : LOW); digitalWrite(TBL, (valc && !valb) ? HIGH : LOW); digitalWrite(TCH, (valc && !vala) ? HIGH : LOW); digitalWrite(TCL, (vala && !valc) ? HIGH : LOW); void changeA() { vala = digitalRead(HallA); Fases(); } void changeB() { valb = digitalRead(HallB); Fases(); } void changeC() { valc = digitalRead(HallC); Fases(); } void loop() { }
Колесо наконец-то заработало чётко, без вибраций, шумов, отлично стало набирать обороты без рассинхронизации. Прототип оказался жизнеспособным. Но это ещё не полноценный контроллер, поскольку в нём не было обвязки с защитами и обеспечением качественного ШИМ-сигнала.
Прототип на базе микросхемы MC33035
Параллельно с разработкой контроллера на Ардуино я рассматривал альтернативные варианты логической части контроллера. И это привело меня к микросхеме MC33035. Это старая разработка от Motorola, сейчас её выпускает ON Semiconductor. Создана специально для мощных трёхфазных двигателей.
Данная микросхема:
- Отвечает за всю логическую часть контроллера
- Считывает показания с датчиков Холла
- Определяет положения вала
- Выдаёт сигналы для затворов Н-моста на их драйверы
- Имеет возможность подключения индикатора ошибок, перегрева
- Обрабатывает и передает ШИМ-сигнал (PWM)
- Осуществляет реверс (обратный ход колеса)
Одним словом, микросхема содержит всё необходимое для управления электродвигателем. Её стоимость очень низкая: на Алиэкспрессе — около 50 рублей. Для сборки полноценного контроллера на её основе потребуется микросхема MC33035, полумостовые драйверы и Н-мост из полевых транзисторов. Я также собрал контроллер на этой микросхеме. Работает отлично, стабильно, колесо крутится как надо на различных оборотах. Но функционал микросхемы ограничен, если необходимо наворотить различные функции, вывод на дисплей скорости, одометр, расход батареи, то опять же возникает необходимость дополнительно подключить Ардуино или что-то аналогичное.
Схема с MC33035
Печатная плата
Готовый вариант
Итог
Главное преимущество контроллера на базе MC33035 — это простота в использовании. Просто покупаете микросхему, собираете Н-мост, спаиваете всё на плату с небольшой обвязкой — и контроллер готов. Если нужно просто запустить двигатель с ШИМ-сигналом и управлять им — оптимальный вариант.
Контроллер на базе Ардуино — вариант сложнее, понадобится писать логику, обеспечивать дополнительные защиты контроллера. Но для экспериментов, прототипов, дополнительного функционала, использования различных режимов работы двигателя — подходящий вариант. Поэтому я решил пока отложить MC33035 и продолжить работу с Ардуино.
Планы на будущее контроллера
Продолжая работу над контроллером, планирую сделать следующее:
- IGBT-транзисторы для H-моста вместо полевых транзисторов.
- Обвязку с защитами по току, перегреву и т. п.
- Полноценный круиз-контроль с возможностью выставлять необходимую скорость движения.
- Расходомер. Когда задаётся необходимое расстояние, а контроллер, исходя из этого значения и заряда аккумулятора, дозирует разряд аккумулятора на всём протяжении маршрута так, чтобы зарядки хватило.
- Цена: $ 38.99
Нестандартное использование бесколлекторного мотора, в любительских целях. Мотор 3660 мощный, позволяет устанавливать патроны на вал 5 мм. Профильное назначение — двигатель для р/у машинок и прочей техники в масштабе 1:10, 1:8. За подробностями под кат Приветствую! Сегодня будет немного рукоблудства на тему необычного использования модельных двигателей.Содержание и быстрая навигация по тексту:Введение и общая информацияХарактеристики комплектаПосылка, упаковка, комплект поставкиВнешний вид двигателя GoolRC 3660Внешний вид ESC контроллераВнешний вид сервомашинкиИспользование и способ подключенияЗаключениеВведение и общая информацияНаверх ▲Бесколлекторный (или вентильный) двигатель — это разновидность электродвигателя переменного тока, у которого коллекторно-щеточный узел заменен бесконтактным полупроводниковым коммутатором, управляемым датчиком положения ротора. Иногда можно встретить такую аббревиатуру: BLDС — это brushless DC motor. Для простоты буду называть его двигатель-бесколлекторник или просто БК. Бесколлекторные двигатели достаточно популярны из-за своей специфики: отсутствуют расходные материалы типа щеток, отсутствует угольная/металлическая пыль внутри от трения, отсутствуют искры (а это огромное направление взрыво и огне безопасных приводов/насосов). Используются начиная от вентиляторов и насосов заканчивая высокоточными приводами. Основное применение в моделизме и любительских конструкциях: двигатели для радиоуправляемых моделей. Общий смысл этих двигателей — три фазы и три обмотки (или несколько обмоток соединенных в три группы) управление которыми осуществляется сигналом в виде синусоиды или приближенной синусоиды по каждой из фаз, но с некоторым сдвигом. На рисунке простейшая иллюстрация работы трехфазного двигателя. Соответственно, одним из специфичных моментов управления БК двигателями является применение специального контроллера-драйвера, который позволяет регулировать импульсы тока и напряжения по каждой фазе на обмотках двигателя, что в итоге дает стабильную работу в широком диапазоне напряжений. Это так называемые ESC контроллеры. БК моторы для р/у техники бывают различных типоразмеров и исполнения. Одни из самых мощных это серии 22 мм, 36 мм и 40/42 мм. По конструкции они бывают с внешним ротором и внутренним (Outrunner, Inrunner). Моторы с внешним ротором по факту не имеют статичного корпуса (рубашки) и являются облегченными. Как правило, используют в авиамоделях, в квадракоптерах и т.п. Двигатели с внешним статором проще сделать герметичными. Подобные применяют для р/у моделей, которые подвергаются внешним воздействиям тип грязи, пыли, влаги: багги, монстры, краулеры, водные р/у модели). Например, двигатель типа 3660 можно запросто установить в р/у модель автомобиля типа багги или монстра и получить массу удовольствия. Также отмечу различную компоновку самого статора: двигатели 3660 имеют 12 катушек, соединенных в три группы. Это позволяет получить высокий момент на валу. Выглядит это примерно так. Соединены катушки примерно вот так Если разобрать двигатель и извлечь ротор, то можно увидеть катушки статора. Вот что внутри 3660 серии еще фото Любительское применение подобным двигателей с высоким моментом — в самодельных конструкциях, где требуется малогабаритный мощный оборотистый двигатель. Это могут быть вентиляторы турбинного типа, шпиндели любительских станков и т.п. Так вот, с целью установки в любительский станок для сверления и гравировки был взят набор бесколлекторного двигателя вместе с ESC контроллером GoolRC 3660 3800KV Brushless Motor with ESC 60A Metal Gear Servo 9.0kg Set Плюсом в наборе был сервопривод на 9 кг, что очень удобно для самоделок. Общие требования при выборе мотора были следующие: — Количество оборотов/вольт не менее 2000, так как планировалось использование с низковольтными источниками (7.4…12В). — Диаметр вала 5мм. Рассматривал варианты с валом 3.175 мм (это серия 24 диаметра БК двигателей, например, 2435), но тогда бы пришлось докупать новый патрон ER11. Есть варианты еще мощнее, например, двигатели 4275 или 4076, с валом 5 мм, но они соответственно дороже.Характеристики комплектаНаверх ▲Характеристики бесколлекторного мотора GoolRC 3660: Модель: GoolRC 3660 Мощность: 1200W Рабочее напряжение: до 13V Предельный ток: 92A Обороты на вольт (RPM/Volt): 3800KV Максимальные обороты: до 50000 Диаметр корпуса: 36mm Длина корпуса: 60mm Длина вала: 17mm Диаметр вала: 5mm Размер установочных винтов: 6 шт * M3 (короткие, я использовал М3*6) Коннекторы: 4mm позолоченные «бананы» male Защита: от пыли и влагиХарактеристики ESC контроллера: Модель: GoolRC ESC 60A Продолжительный ток: 60A Пиковый ток: 320A Применяемый аккумуляторные батареи: 2-3S Li-Po / 4-9S Ni-Mh Ni-Cd BEC: 5.8V / 3A Коннекторы (Вход): T plug male Коннекторы (вызод.): 4mm позолоченные «бананы» female Размеры: 50 х 35 х 34mm (без учета длины кабелей) Защита: от пыли и влагиХарактеристики сервомашинки: Рабочее напряжение: 6.0V-7.2V Скорость поворота (6.0V): 0.16sec/60° без нагрузки Скорость поворота (7.2V): 0.14sec/60° без нагрузки Момент удержания (6.0V): 9.0kg.cm Момент удержания (7.2V): 10.0kg.cm Размеры: 55 х 20 х 38mm (Д * Ш * В)Параметры комплекта: Размер упаковки: 10.5 х 8 х 6 см Масса упаковки: 390 гр Фирменная упаковка с логотипом GoolRCСостав комплекта: 1 * GoolRC 3660 3800KV Motor 1 * GoolRC 60A ESC 1 * GoolRC 9KG Servo 1 * Информационный листок Размеры для справки и внешний вид двигателя GoolRC 3660 с указанием основных моментовПосылка, упаковка, комплект поставкиНаверх ▲ Теперь несколько слов о самой посылке. Посылка пришла в виде небольшого почтового пакета с коробкой внутри Доставлялась альтернативной почтовой службой, не почтой России, о чем и гласит транспортная накладная В посылке фирменная коробочка GoolRC Внутри комплект бесколлекторного двигателя типоразмера 3660 (36х60 мм), ESC-контроллера для него и сервомашинки с комплектом Теперь рассмотрим весь комплект по отдельным составляющим. Начнем с самого главного — с двигателя.Внешний вид двигателя GoolRC 3660Наверх ▲ БК двигатель GoolRC представляет собой цилиндр из алюминия, размеры 36 на 60 мм. С одной стороны выходят три толстых провода в силиконовой оплетке с «бананами», с другой стороны вал 5 мм. Ротор с двух сторон установлен на подшипниках качения. На корпусе присутствует маркировка модели Еще фотография. Внешняя рубашка неподвижная, т.е. тип мотора Inrunner. Маркировка на корпусе С заднего торца видно подшипник Заявлена защита от брызг и влаги Выходят три толстых, коротких провода для подключения фаз: u v w. Если будете искать клеммы для подключения — это бананы 4 мм Провода имеют термоусадку разного цвета: желтый, оранжевый и синий Размеры мотора: диаметр и длина вала совпадают с заявленными: Вал 5х17 мм
Габариты корпуса двигателя 36х60 мм Сравнение с коллекторным 775 двигателем Сравнение с б/к шпинделем на 300Вт (и ценой около $100). Напоминаю, что у GoolRC 3660 заявлена пиковая мощность 1200Вт. Даже если использовать треть мощности, все равно это дешевле и больше, чем у этого шпинделя Сравнение с другими модельными двигателями Для корректной работы двигателя потребуется специальный ESC контроллер (который есть в комплекте)Внешний вид ESC контроллераНаверх ▲ ESC контроллер — это плата драйвера двигателя с преобразователем сигнала и мощными ключами. На простых моделях вместо корпуса используется термоусадка, на мощных — корпус с радиатором и активным охлаждением. На фото контроллер GoolRC ESC 60A по сравнению с «младшим» братом ESC 20A Обратите внимание: присутствует тумблер выключения-выключения на отрезке провода, который можно встроить в корпус устройства/игрушки Присутствует полный комплект разъемов: входные Т-коннекторы, 4 мм бананы-гнезда, 3-пиновый вход управляющего сигнала Силовые бананы 4 мм — гнезда, маркируются аналогично по цветам: желтый, оранжевый и синий. При подключении перепутать можно только умышленно Входные Т-коннекторы. Аналогично перепутать полярность можно если вы очень сильный))))) На корпусе присутствует маркировка с названием и характеристиками, что очень удобно Охлаждение активное, работает и регулируется автоматически. Для оценки размеров приложил PCB rullerВнешний вид сервомашинкиНаверх ▲ В наборе также присутствует сервомашинка GoolRC на 9 кг. Плюс как и для любой другой сервомашинки в комплекте идет набор рычагов (двойной, крест, звезда, колесо) и крепежная фурнитура (понравилось, что есть проставки из латуни) Макрофото вала сервомашинки Пробуем закрепить крестообразный рычаг для фотографии На самом деле интересно проверить заявленные зарактеристики — это металлический комплект шестерен внутри. Разбираем сервомашинку. Корпус сидит на герметике по кругу, а внутри присутствует обильная смазка. Шестерни и правда металлические. Фото платы управления сервойИспользование и способ подключенияНаверх ▲ Для чего все это затевалось: для того, чтобы попробовать БК двигатель как сверлилку/гравировалку. Все таки заявлена пиковая мощность 1200Вт. Я выбрал проект сверлильного станка для подготовки печатных плат на thingiverse. Там есть множество проектов для изготовления светильного настольного станка. Как правило, все эти проекты малогабаритные и предназначены для установки небольшого двигателя постоянного тока. Я выбрал один из популярных проектов и доработал крепление в части держателей двигателя 3660 (родной двигатель был меньше и имел другие размеры креплений) Привожу чертеж посадочных мест и габаритов двигателя 3660 В оригинале стоит более слабый двигатель. Вот эскиз крепления (6 отверстий для М3х6) Скрин из программы для печати на принтере Заодно напечатал и хомут для крепления сверху Мотор 3660 с установленным цанговым патроном типа ER11 Для подключения и проверки БК мотора потребуется собрать следующую схему: источник питания, сервотестер или плата управления, ESC-контроллер двигателя, двигатель. Я использую самый простой сервотестер, он также дает нужный сигнал. Его можно использовать для включения и для регулировки оборотов двигателя При желании можно подключить микроконтроллер (Ардуино и т.п.). Привожу схему из интернета с подключением аутраннера и 30А контроллера. Скетчи найти не проблема. Соединяем все, по цветам. Источник показывает, что холостой ток контроллера небольшой (0.26А) Теперь сверлильный станок. Собираем все и крепим на стойку Для проверки собираю без корпуса, потом допечатаю корпус, куда можно установить штатный выключатель, крутилку сервотестера Еще одно применение подобного 3660 БК двигателя — в качестве шпинделя станков для сверления и фрезеровки печатных плат Про сам станок обзор доделаю чуть позже. Будет интересно проверить гравировку печатных плат с помощью GoolRC 3660ЗаключениеНаверх ▲ Двигатель качественный, мощный, крутящий момент с запасом подойдет под любительские цели. Конкретно живучесть подшипников при боковом усилии при фрезеровки/гравировки покажет время. Определенно существует выгода применения модельных двигателей в любительских целях, а также простота работы и сборки конструкций на них по сравнению с шпинделями для ЧПУ, которые дороже и требуют специального оборудования (источники питания с регулировкой оборотов, драйверы, охлаждение и т.п.). При заказе пользовался купоном SALE15 со скидкой 5% на все товары магазина. Спасибо за внимание!Основная задача блока управления бесколлекторным двигателем — переключать обмотки статора в зависимости от положения ротора.
В двигателе постоянного тока эту задачу выполняет коллектор — диск на роторе с контактными площадками, по которому скользят токопроводящие графитовые щетки и переключают обмотки.В асинхронном двигателе знать положение ротора не нужно, но для регулировки скорости нужно менять частоту переключения обмоток (или работать от сети со стандартной частотой 50Гц) Я начинал изучение схемотехники драйвера бесколлекторного двигателя по апноте Atmel «AVR492: Управление бесколлекторным электродвигателем постоянного тока с помощью AT90PWM3» Она есть на русском языке. Немного пояснений: «Для управления БКЭПТ используется силовой каскад, состоящих из 3 полумостов. Схема силового каскада показана на рисунке 4.»Здесь силовой каскад — это 6 транзисторов, схематично показанных ключами CmdSW, полумост — пара транзисторов, соединенных последовательно между «+» и «-» питания, например CmdSW1, CmdSW2. A, B, C — выводы обмоток двигателя, соединение обмоток между собой как у асинхронных двигателей. Эта схема позволяет току протекать между фазами A, B, C в любом направлении. Например если замкнуть ключ CmdSW1 и CmdSW4, то ток потечет от вывода A к выводу B, а если замкнуть CmdSW3 и CmdSW2 — от вывода В к выводу A. А если замкнуть CmdSW1 и CmdSW2 — получится короткое замыкание с выгоранием транзисторов, так что управлять транзисторами нужно осторожно. Кстати для управления коллекторым двигателем с реверсом нужно 2 полумоста, без реверса — 1 транзистор. Для регулирования силы тока в фазе используют широтно-импульсную модуляцию (ШИМ). Например часть времени открывают ключи CmdSW1, CmdSW4 и ток начинает течь от «A» к «B», затем закрывают CmdSW1 и открывают CmdSW2 и за счет индуктивности обмоток ток продолжить течь по кольцу A-B-CmdSW4-«земля»-CmdSW2. Кстати в транзисторы встроены диоды, проводящие ток в обратном направлении. Так что если во второй фазе ШИМ разомкнуть все транзисторы, то в обмотке начнет расти напряжение и через эти диоды энергия из обмоток начнет возвращаться в сеть. Эта схема из 6 транзисторов называется трехфазным инвертором и применяется для преобразования постоянного тока в трехфазный переменный для питания как бесколлекторных, так и асинхронных двигателей. Для бесколлекторных двигателей применяются низковольтные полевые транзисторы (MOSFET), для асинхронных двигателей — высоковольтные биполярные транзисторы с изолированным затвором (IGBT). С помощью этой схемы можно осуществлять и рекуперацию. Её используют все и лучше не сделать. Как инвертор бывает оформлен в зависимости от мощности двигателя: Для управления двигателями очень маленькой мощности используются специализированные микросхемы, в которой уже находятся 6 транзисторов и логика для управления ими. Это решение для двигателей дисководов и вентиляторов. Следующий шаг — микросхема, управляющая транзисторами и транзисторы отдельно. И для высоких мощностей микросхема или контроллер управляет микросхемами драйверов транзисторов, а драйвера уже управляют самими транзисторами. Зачем такие сложности? Мощные транзисторы имеют управляющий вход с большей емкостью, слабая электроника не в состоянии обеспечить токи до нескольких ампер для быстрого их открытия. А у полуоткрытого транзистора большое сопротивление, он в этот момент греется или даже сгорает 🙂 Поэтому используют микросхемы-драйверы, внутри которых кстати тоже транзисторы, только менее мощные. Получается такой каскад из транзисторов.
Вот первый пример реализации инвертора — авиамодельный, самый дешевый. Фото с двух сторон.
На одной стороне видно 6 транзисторов в корпусах SOIC. (3 N-канальных, 3 P-канальных), на другой стороне микроконтроллер ATMEGA8 и линейный стабилизатор для получения 5В питания. Ещё есть электролитический конденсатор и всякая мелочь — резисторы с конденсаторами. И всё. Дешево и сердито. Цена в рознице около 1000р. Микроконтроллер напрямую управляет затворами транзисторов. Греется такой контроллер довольно сильно, но так как он устанавливается на авиамодели, то хорошо обдувается. Разумеется есть более продвинутые модели, это просто пример упрощения и миниатюризации.А вот фотография демо-платы от Atmel Предполагается, что можно купить её и сразу начать программировать контроллер, пытаться крутить двигатель. Я решил не покупать, возможно зря. Во всяком случае к ней неплохо бы продавать сразу запасные транзисторы, я их сжег не один раз. И контроллер пару раз. Собственно 6 транзисторов справа, контроллер слева, драйвера транзисторов на другой стороне.Схема моего драйвера с пояснениямиЯ решил не делать простейший драйвер с тем, чтобы расширить возможности его применения, при необходимости несложно будет упростить. Схема разбита на 3 части. Она не такая наглядная, как в апноте Atmel, но постараюсь всё пояснить.Первая часть — силовая Силовые транзисторы VT1-VT6 управляются микросхемами-драйверами DA1-DA3. Транзисторы я выбрал IRLR3705 как одни из наиболее мощных в корпусе D-Pak на напряжение 55V с сопротивлением 8мОм. Я рассчитывал на напряжение работы 36В плюс запас. В принципе можно ставить транзисторы на радиаторы и использовать корпуса TO-220, но я решил не усложнять монтаж и паять транзисторы на плату. В таком случае для меньших мощностей можно ставить транзисторы в корпусе soic, а для больших — в D2-Pak. Драйвера взял самые мощные из полумостовых от фирмы International Rectifier — irf2186s с током управления до 4A. Получился большой запас, но самые простые драйвера ir2101 из апнота атмел (ток 130/270мА) с мощными транзисторами справлялись плохо, разница в нагреве транзисторов была ощутима. Полумостовой драйвер управляет двумя транзисторами — верхним и нижним, для управления верхним транзистором нужно высокое напряжение, которое получается по бустрепной схеме питания с помощью диода и конденсатора (например C6, DD7), эта схема наиболее проста и принцип её можно легко найти в интернете. Можно было взять одну микросхему full-brige для управления сразу шестью транзисторами, но у меня разводка с ней получалась хуже. Между затворами транзисторов и драйверами — резисторы с диодом. Они ограничивают ток затвора, причем ток зарядки почти в 2 раза больше. Тут следующая логика — чем больше ток, тем меньше греются транзисторы при переключении, но растут всплески напряжения. Поэтому номинал резисторов нужно уменьшать до какого-либо разумного предела. Причем транзистор открывается медленнее, чем закрывается, поэтому ток зарядки я сделал больше. Сигнальные выводы драйверов подтянуты к земле на всякий случай, чтоб не сработали когда нет сигналов управления. В целом здесь всё почти так же, как в апноте атмел. Датчики холла также подключил как в апноте, здесь ничего интересного. Питание, силовые Выводы транзисторов и выводы датчиков холла выведены на клеммник X1. Для защиты от короткого замыкания нужно контролировать ток. Для этого служат резисторы R19, R21 суммарным сопротивлением 0,005Ом (в апноте был резистор 0,1Ом), падение напряжение на них усиливается микросхемой LM358 и идет на компаратор и АЦП контроллера. Реализация у меня получилась не очень удачной, но в большинстве случаев защита срабатывает. Неплохо было бы ставить переменный резистор, чтобы пользователь мог задавать порого срабатывания защиты, но это как-нибудь потом ). Также в контроллер заведен сигнал V_IN_MEAS, пропорцональный входному напряжению. Сделано это, чтобы не давать работать драйверу при входном напряжении более 36В, но защиту я пока не включил. Следующая часть схемы — питание логических элементов.Из входного питания 24..36В нужно получить 12В для питания драйверов транзисторов и 5В для остальной логикиДля получения 12В я использовал линейный стабилизатор MC78M12. Лишнее напряжение он просто рассеивает в виде тепла, но так как драйверы транзисторов поребляют не очень много нагрев приемлемый.Для 5В питания линейный стабилизатор уже применить не получилось, потому что 5В ещё задумывалось использовать для питания внешнего экрана индикации и нагрев оказался слишком большим. Поэтому применил понижающий преобразователь L5973AD. Он не очень дорогой, но в отличии от ещё более дешевых вариантов имеет защиту от короткого замыкания на выходе. Внешняя обвязка для него и разводка дорожек выполнена по соответствующей апноте.Обе эти микросхемы имеют максимально допустимое напряжение 35В. Для гашения возможного излишнего напряжения предназначена конструкция из транзисторов VT7, VT8 и стабилитрона VD3.
Последняя часть схемы — микроконтроллер AT90PWM3B с обвязкой.
- 6 выводов PSCOUT_XX используются для управления драйверами транзисторов.
- 3 вывода HALL_X используются для отслеживания датчиков холла двигателя.
- 3 вывода задействованы на микропереключатель SA1 — он служит для переключения интерфейсов драйвера (RS485 либо переменный резистор с кнопками), выбора числа пар полюсов подключенного двигателя (2 либо 4) и для проведения калибровки двигателя (определение положения датчиков холла)
- 3 вывода задействованы для управления микросхемой-драйвером RS485
- 6 выводов задействованы под вариант традиционного управления драйвером — с кнопками и переменным резистором. 4 кнопки служат для включения/выключения (Enable), реверса(F/R), тормоза(Brake) и выбора режима поддержания скорости(Mode). Еще один вывод Speed(analog) для переменного резистора задания скорости и на последний выход Hall_out подаются импульсы при срабатывании датчиков холла. Эти выводы и выводы интерфейса RS485 выведены на клеммник X3.
- 2 вывода задействованы для контроля сигнала токового шунта ERROR_ADC. Один для быстрого срабатывания защиты, другой для грубой оценки потребляемого тока.
- 1 вывод для контроля входного напряжения V_IN_MEAS
- 1 вывод для светодиода VD5, полезного для индикации различных событий.
Также на схеме есть разъем программирования контроллера X2Представленная схемотехника конечно не соответствует первоначальной идее о максимально дешевом драйвере, но относительно легко может быть упрощена. Можно убрать интерфейс RS485, поставить менее мощные транзисторы и драйверы управления ими.Используемые источники:
- https://habr.com/post/373397/
- https://mysku.ru/blog/china-stores/53481.html
- https://v-kudryashov.livejournal.com/842.html