Электробайк. Контроллер двигателя своими руками / Хабр

Podkljuchenie kontrollera elektrovelosipeda Новости

Что это такое?

Главные задачи этого механизма заключаются в следующих аспектах:

  • приведение в действие колес моторного типа;
  • обеспечение регулировки скорости движения;
  • контроль процессов вращения;
  • гарантия правильной остановки.

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

  • активация и деактивация электроники;
  • отслеживание функционирования мотор-колес;
  • круиз-контроль;
  • установка ограничения скоростного режима;
  • ускорение моторного агрегата;
  • обеспечение рекуперативного торможения;
  • отображение параметров на управленческой панели;
  • организация обратного хода.

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

Аппаратное прерывание

И тут я понял, в чём дело: Ардуино не успевает обрабатывать показания датчиков Холла! Поэтому необходимо было использовать пины Ардуино с аппаратным прерыванием. Так как у Ардуино УНО таких пинов всего два, а под датчики нужно три пина, надо взять Ардуино Леонардо или Искра Нео, где таких пинов — четыре штуки.

Переписав программу под прерывания и подключив Искру Нео вместо УНО, я повторил испытания.

//Пины ключей Н-мостов 
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() {
}

Колесо наконец-то заработало чётко, без вибраций, шумов, отлично стало набирать обороты без рассинхронизации. Прототип оказался жизнеспособным. Но это ещё не полноценный контроллер, поскольку в нём не было обвязки с защитами и обеспечением качественного ШИМ-сигнала.

Выполняемые функции

Именно контроллер формирует в обмотке статора мотор-колеса вращающееся магнитное поле и получает ответные сигналы о позиции ротора. Сигналы поступают от датчиков Холла, а при управлении моторами без датчиков позиция роторов определяется по противо-ЭДС.

К тому же, контроллер управляет электродвигателем:

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

Контроллер выступает в роли понижающего преобразователя, поэтому проходящий по обмоткам мотора фазный ток может быть гораздо выше батарейного тока, поступающего от АКБ к контроллеру. Именно от него зависит мощность, поступающая на двигатель. Например, при использовании мотор-колеса номинальной мощностью 1000 Вт можно кратковременно получать значения до 2000–2500 Вт.

Как выбрать контроллер для электровелосипеда?

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

  • рабочее напряжение батареи и мощность мотора (номинал), для применения с которыми предназначено устройство;
  • предельный ток АКБ;
  • минимум напряжения АКБ, когда происходит отключение контроллера;
  • подходящее расположение датчиков Холла в электромоторе – в электрических градусах по отношению друг к другу.

Для расчета предельной мощности контроллера находим произведение допустимых величин напряжения и силы тока. Диапазон мощности у таких приборов широкий. Для велосипедов на электротяге обычно используются модели с номиналом мощности от 350 до 2000 Вт. Для электрических скутеров – от 1000 до 4000 Вт. Для электромотоциклов – от 5000 до 10 000 Вт. Для электромобилей – от 10 000 до 50 000 Вт и более.

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

Рассматривая такое понятие, как схема контроллера электровелосипеда, стоит ознакомиться с характеристиками, позволяющими электрическим моторам и батареям функционировать.

  1. Максимальная отметка постоянного тока. Этот показатель характеризует предельное значение, позволяющее держать устройство на протяжении конкретного отрезка времени.
  2. Пиковый ток. Данное значение выдерживается на «короткой дистанции», традиционно это число существенно больше по сравнению с предыдущим значением. Оно отслеживается в рамках резкого старта при развитии в транспортном средстве внушительного крутящего момента.
  3. Максимальное напряжение. Это значение характеризует максимальное число банок аккумулятора, которые применяются на практике. При его повышении возникает вероятность сгорания контроллера или выхода из строя. Параметр напряженности варьирует в зависимости от конкретной моделью, традиционно он рассчитан на 24, 48 и 60 Вольт.
  4. Сопротивление изнутри. Этот показатель не так важен, как может показаться на первый взгляд. Наблюдается обратная пропорциональная зависимость между мощностью контроллера и сопротивлением.
  5. Частота импульсной подачи. Это значение пребывает в зависимости от типа мотор-колеса.

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

Мостовые драйверы

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

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

В это же время я наткнулся на два варианта мостовых драйверов:

Что касается HIP4086, то это полноценный мостовой драйвер, предназначенный для трёхфазного электродвигателя. Мне он показался несколько замороченным, и мои попытки использовать его в контроллере не увенчались успехом: он у меня так и не заработал. Углублённо разбираться в причинах не стал.

А взял я IR2101 — полумостовой драйвер, обеспечивающий работу нижнего и верхнего ключей для одной фазы. Несложно догадаться, что таких драйверов нужно три. К слову, драйвер очень прост в использовании, его подключение происходит безболезненно и легко. Получилась такая схема:

Печатная плата

И готовый результат

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

О совместимости

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

О цене

Контроллеры можно купить в разных категориях:

  1. Дешевые модели, предназначенные для внутреннего китайского рынка. Они не имеют расширенного функционала и просто позволяют ехать. Как правило, бывают 2-режимные, могут работать совместно с датчиками Холла и без них.
  2. Китайские модели, ориентированные на экспорт. Позволяют подключать дисплеи и обеспечивать беспроводное управление по Bluetooth.
  3. Устройства производства Германии и США – самые дорогие.

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

Особенности выбора контроллера для электрического велосипеда

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

  • напряжение;
  • отметка максимального тока;
  • мощность мотора – если она составляет 350 Вт, достаточно изделия на 36 В 15 А, если 100 Вт, подойдет контроллер 48 vдля велосипеда с силой тока от 25, а если 1000 Вт – от 30;
  • возможность настройки программы в соответствии с собственными потребностями;
  • соотношение между скоростным режимом колес и напряжением – 1 к 0,9;
  • оптимальная средняя скорость движения в зависимости от параметров контроллера – если 36В – 32 км/ч, если 48 – 45 км/ч, по мере увеличения этого параметра происходит смена соотношения ввиду колоссальных затрат энергии на борьбу с сопротивлением воздушной массы.

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

Планы на будущее контроллера

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

Применение

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

Программируемые модели и их задачи

Электробайк. Контроллер двигателя своими руками / ХабрПрограммируемые контроллеры соединяются по Bluetooth со смартфоном и позволяют настраивать рабочие характеристики – от значений аккумуляторного и фазного токов до углов фазного опережения.

При выборе управляющих контроллеров учитывается и наличие второстепенных функций:

  • круиз-контроля;
  • обратного хода;
  • возможности выбора скоростного режима или мощности;
  • рекуперации энергии при торможении;
  • отдельного выхода для электропитания фары и габаритных огней.

Прототип на ардуино

Под рукой у меня была 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 вольт.

Прототип на базе микросхемы mc33035

Параллельно с разработкой контроллера на Ардуино я рассматривал альтернативные варианты логической части контроллера. И это привело меня к микросхеме MC33035. Это старая разработка от Motorola, сейчас её выпускает ON Semiconductor. Создана специально для мощных трёхфазных двигателей.

Данная микросхема:

Одним словом, микросхема содержит всё необходимое для управления электродвигателем. Её стоимость очень низкая: на Алиэкспрессе — около 50 рублей. Для сборки полноценного контроллера на её основе потребуется микросхема MC33035, полумостовые драйверы и Н-мост из полевых транзисторов.

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

Схема с MC33035

Печатная плата

Готовый вариант

Разновидности контроллеров управления

Критерий сравнения

Типы

Особенности

По принципу взаимодействия с электромотором

Для использования с датчиками Холла

Совместимы с мотор-колесами, оснащенными датчиками Холла.

Для работы без датчиков

Совместимы с моторами без датчиков, определяют позицию роторов по противо-ЭДС.

Универсальные

Могут работать и с датчиками положения, и без них.

По виду выходного сигнала

Создающие сигналы прямоугольного вида (меандр)

Цена таких моделей – ниже. При их использовании обеспечивается увеличенная скорость, но из-за вибрации обмоток двигатель шумит сильнее.

Создающие чистые синусоидальные сигналы.

Дороже. Обеспечивают тихую работу мотора и небольшое снижение максимальной скорости – по сравнению с меандровым контроллером при том же напряжении АКБ.

Сознающие сигналы в виде «модифицированной синусоиды» или сглаженного меандра.

Менее популярны.

По принципу реагирования на сигналы ручки газа

Обеспечивающие управление скоростью, мощностью или крутящим моментом.

Расширение функционала

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

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

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

Контроллер для электрического велосипеда или скутера имеет алюминиевый корпус, из которого выходят разноцветные провода с разъемами для подключения разных устройств. Внутри скрыты:

  • главный узел – микроконтроллер;
  • силовые компоненты – шунты для измерения тока, конденсаторы, транзисторы;
  • понижающие преобразователи на 12 В и 5 В – обеспечивающие питание микроконтроллера и периферических устройств (датчиков положения, рычага газа).

Схема подключения

Электробайк. Контроллер двигателя своими руками / Хабр

Общий принцип подключения выглядит так:

  1. Толстые провода черного и красного цвета – с соблюдением полярности подводятся к аккумуляторной батарее. При этом может появиться «искра», и даже возможно подгорание разъемов. Это нормально – так заряжаются конденсаторы на входе контроллера. Чтобы исключить искрение, достаточно ненадолго соединить контроллер и АКБ через резистор с сопротивлением в десятки Ом или воспользоваться лампочкой. Когда конденсаторы зарядятся, контроллер можно спокойно соединить с АКБ без посредников.
  2. Тройка толстых проводов разных цветов – обеспечивают подключение к фазным проводам 3-фазного электромотора.
  3. Связка из 5 тоненьких разноцветных проводов – идет к проводкам мотор-колеса, обеспечивают питание и передачу сигналов от датчиков положения.
  4. Отдельный красный проводок – «зажигание». При его замыкании на «плюс» АКБ происходит включение контроллера.
  5. Тройка тонких проводов (обычно – черный, красный и зеленый) – для подключения ручки газа.

Транзисторы и н-мост

Но чтобы поочерёдно подавать ток на каждую из фаз и менять их полярность, необходимы транзисторы. Ещё нам нужна передача больших токов, высокая скорость переключения и чёткость открытия/закрытия затворов. В данном случае удобнее управлять затворами по напряжению, а не по току.

Для переключения фаз со сменой их полярностей используют классическую схему Н-моста (H-Bridge) из полевых транзисторов.

Он состоит из трёх пар транзисторов. Каждая из пар подключается к соответствующей фазе обмотки двигателя и обеспечивает подачу тока со значением ( или –). Транзисторы, отвечающие за включение фазы с положительным значением, называют верхними ключами.

Из схемы видно, что мы не можем включить одновременно верхний и нижний ключ у одной и той же фазы: произойдёт короткое замыкание. Поэтому очень важно быстрое переключение верхних и нижних ключей, чтобы в переходных процессах не появилось замыкание. И чем качественнее и быстрее мы обеспечим переключения, тем меньше у нас будет потерь и нагрева/перегрева транзисторов H-моста.

Для запуска остаётся обеспечить управление затворами ключей H-моста. Для управления H-мостом нужно:

  1. Считать показания датчиков Холла.
  2. Определить, в каком положении какую пару ключей включать.
  3. Передать сигналы на соответствующие затворы транзисторов.

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

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

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

Конструктивно электродвигатели делятся на два типа: инраннеры и аутраннеры.

У инраннеров магнитные пластины крепятся на вал, а обмотки располагаются на барабане (статоре), в этом случае в движение приводится вал. В случае аутраннера всё наоборот: на валу — фазные обмотки, а в барабане — магнитные пластины. Это приводит в движение барабан.

Так как у велосипеда колесо крепится валом на раму, то здесь применителен тип аутраннера.

На этой картинке условно представлены три фазы с обмотками, соединёнными между собой. В реальности обмоток намного больше, они располагаются равномерно с чередованием по фазам по окружности двигателя. Чем больше обмоток — тем плавнее, чётче, эластичнее работает двигатель.

В двигатель устанавливаются три датчика Холла. Датчики реагируют на магнитное поле, тем самым определяя положение ротора относительно статора двигателя. Устанавливаются с интервалами в 60 или 120 электрических градусов. Эти градусы относятся к электрическому фазному обороту двигателя.

Обмотки трёх фаз в большинстве случаев соединяются между собой по двум схемам: звезда и треугольник. В первом случае ток проходит от одной из фаз к другой, во втором — по всем трём фазам в разной степени. Иногда эти две схемы подключения комбинируют в одном двигателе, например в электромобилях.

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

Устройство работы контроллера электрического велосипедного транспорта

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

В структуру традиционной схемы входят следующие элементы:

  • основная часть – микроконтроллер, находится в центре конструкции;
  • преобразователи с показателем напряженности в 12 и 5 В;
  • периферийная часть с ручками и датчиками;
  • силовые элементы.

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

Цикл работы

Чтобы привести в движение трёхфазный двигатель, нужно рассмотреть цикл его работы за электрический оборот. Итак, имеем три фазы — A, B, C. Каждая из фаз получает положительную и отрицательную полярности в определённый момент времени. Поочерёдно по шагам пропускается ток от «плюса» одной фазы к «минусу» другой фазы. В итоге получается шесть шагов = три фазы × две полярности.

A , A–, B , B–, C , C–

Рассмотрим эти шесть шагов цикла. Предположим, что положение ротора установлено в точке первого шага, тогда с датчиков Холла мы получим код вида 101, где 1 — фаза А, 0 — фаза B, 1 — фаза С. Определив по коду положение вала, нужно подать ток на соответствующие фазы с заданными полярностями. В результате вал проворачивается, датчики считывают код нового положения вала — и т. д.

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

Цикл двигателя представлен в gif-анимации.

Вывод-заключение

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

Оцените статью
Huawei Devices
Добавить комментарий