четверг, 6 мая 2021 г.

Регулятор bldc мотора самодельный ч.1

 На момент написания данной статьи в продаже существует множество разнообразных и недорогих бесколлекторных электродвигателей и электронных регуляторов для них. Изготовление самодельного регулятора из деталей возможно даже не будет дешевле покупки готового. Однако попытаться изготовить такой регулятор всё же можно, например просто ради интереса. Чаще всего бесколлекторные электродвигатели являются трехфазными и если такой двигатель предназначается для какого либо транспорта (электровелосипеда, скутера и т.д.) то скорее всего это будет синхронный двигатель с мощными редкоземельными магнитами и возможно с датчиками холла. Наличие датчиков холла позволит сделать простую систему управления на микроконтроллере или даже на одной специальной микросхеме предназначенной для управления трехфазным мостом и регулировки оборотов безколлекторного трехфазного двигателя с датчиками холла, на момент написания данной статьи, существуют даже такие микросхемы. Также для управления трехфазным мостом полевых MOSFET или IGBT транзисторов можно использовать специальные микросхемы-драйверы трёхфазных мостов например IR2233 или аналогичные. Схемы подключения которых можно найти в документациях на данные микросхемы. Вот например схема для драйвера IR2233:

Вместо IGBT транзисторов можно поставить MOSFET транзисторы и драйвер должен работать с ними аналогично. Надо однако учитывать что для управления верхними ключами исползуются конденсаторы которые необходимо постоянно подзаряжать поэтому драйвер должен работать с некоторой частотой. Резисторы соединенные с пином IRIP нужны для измерения тока потребляемого мостом и в случае его превышения драйвер отключает мост. Для управления драйвером может использоваться микроконтроллер. Не обязательно какой либо современный и навороченный. Для данных целей подойдет любой простой примитивный микроконтроллер например даже старый допотопный pic16f84 подойдет:
У данного микроконтроллера нет встроенного ацп и даже компаратора и поэтому к нему нельзя присоединить потенциометр с крутилкой чтобы удобно регулировать обороты двигателя. Однако эту проблему можно решить если дополнить схему ШИМ регулятором на микросхеме-таймере NE555 или LM555:

Выход данного ШИМ регулятора можно соединить с одним из пинов микроконтроллера который будет распределять ШИМ по транзисторам моста. 
    Самой простой способ сделать так чтобы BLDC (безшёточный (и соответственно беcколлекторный) электромотор) с датчиками холла крутился, это выдавать на его обмотки такие комбинации напряжений которые поворачивают его на один шаг в нужную сторону при соответствующих комбинациях напряжений полученных с датчиков холла. Определить какие нужно выдавать комбинации сигналов при каких комбинациях с датчиков можно попытаться из документации на двигатель, если она есть, если её нет то можно это сделать самостоятельно путем подачи на обмотки напряжений, через резисторы (с сопротивлением достаточно большим чтобы обмотка не сгорела но не настолько чтобы ротор не поворачивался), и записи соответствующих комбинаций с датчиков холла. Датчики холла могут быть с открытым коллектором и поэтому возможно их нужно будет дополнить резисторами а также запитать напряжением тем же что запитывает микроконтроллер и таймер 555. Последовательно с этими резисторами можно поставить светодиоды чтобы удобнее было визуально отслеживать комбинации напряжений с датчиков холла. Таблица например может получиться такой:

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