Управление очень маленьким двигателем постоянного тока с ШИМ?

8

У меня очень маленький двигатель постоянного тока (от Walkman), я хотел бы контролировать скорость с микроконтроллера. Для этого я хотел бы подключить MOSFET последовательно и подать сигнал ШИМ на его затвор, чтобы изменить скорость двигателя.

Я измерил L & R двигателя = 4,7 мГн, 11,5 Ом (Дао 0,41 мсек).

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

Источник питания, который у меня есть для этого, установлен на 1,8 В (используется для цифровой части схемы), так что это делает использование стандартных полевых МОП-транзисторов немного сложным, потому что я не могу подать напряжение, необходимое для насыщения затвора. Я купил несколько MOSFETs P-канал , как это .

Поэтому, даже если бы я думал, что эта установка будет работать (Vcc -> motor -> FET -> GND), я не могу получить хорошее разрешение над управлением, и у меня не получается такой крутящий момент от мотора, как я использовал получить при запуске от источника постоянного тока.

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

* ОБНОВЛЕНИЕ * После ответа Олина я построил схему, которую он предложил. Я использовал транзистор 2N3904, резистор 180 Ом, параллельный 4,7 нФ. Прилагается напряжение коллектора при работе от ШИМ кода 100 (из 256). Vcc составляет 1,8 В.

введите описание изображения здесь

user34920
источник
1
почему бы не использовать вместо этого BJT - это маленький мотор, и вы легко получите сигнал 0,6 В для его включения.
Джим Дирден
@JImDearden Я попробовал 2N5088, который у меня был, но падение напряжения на транзисторе было настолько большим, что к двигателю почти не прикладывалось напряжение, поэтому он просто гудел и не двигался.
user34920
1
Попробуйте переключающий транзистор, такой как 2N3904, с базовым резистором 1 кОм. Также вам понадобится обратный диод на двигателе с такой большой индуктивностью и перенапряжением. 1 кГц должно быть хорошо для ШИМ.
Джон

Ответы:

8

Простейшим решением было бы использовать NPN-переключатель низкого уровня:

Вы говорите, что сопротивление постоянного тока двигателя составляет 11,5 Ом, поэтому максимальный ток, который он может потреблять, составляет 1,8 В / 11,5 Ом = 160 мА. На самом деле, транзистор будет потреблять несколько 100 мВ, снижая максимально возможный ток, так что это безопасный максимум для проектирования. Рисунок транзистора хорош для усиления минимум 50, поэтому нам нужно, по крайней мере, 160 мА / 50 = 3,2 мА базового тока. Тогда 5 мА является хорошей целью, чтобы убедиться, что транзистор полностью насыщен при включении. Показатель падения BE должен составлять 700 мВ, поэтому при включении резистор остается равным 1,1 В на резисторе. 1,1 В / 5 мА = 220 Ом.

C1 для ускорения включения и выключения. (220 Ом) (4,7 нФ) = 1 мкс, что является постоянной времени C1-R1.

Частота ШИМ должна быть достаточно быстрой, чтобы ток через двигатель мало менялся при включении и выключении фазы. Волна, вызванная ШИМ, представляет собой переменное напряжение, наложенное на среднее постоянное напряжение. Только постоянное напряжение идет на перемещение двигателя. Компонент переменного тока не вызывает крутящий момент, только нагрев, поэтому вы хотите сохранить его низким по сравнению с постоянным током. Как правило, вы запускаете двигатели чуть выше предела человеческого слуха, который также обычно достаточно быстр, чтобы поддерживать небольшой компонент переменного тока. Например, при частоте 25 кГц период ШИМ составляет 40 мкс, что должно дать вам достаточное разрешение от любого разумного периферийного устройства ШИМ в микроконтроллере.

Добавлено в ответ на трассировку области действия коллектора

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

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

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

Добавлено 2

При более внимательном рассмотрении вашей области видимости я вижу, что напряжение коллектора при выключенном двигателе составляет 2,48 В. Вы говорите, что напряжение питания составляет 1,8 В, поэтому напряжение отключения на 680 мВ выше источника питания. Это означает, что вы не создали схему, как я сказал. Вы, очевидно, использовали обычный кремниевый диод, вероятно, медленный, как 1N400x. Медленное время включения диода объясняет скачок напряжения и немного снижает общие уровни привода при определенном рабочем цикле ШИМ. Это также приведет к простоям на время, когда транзистор снова включится, так как диод все еще проводит. Диод Шоттки будет иметь меньшее прямое падение и эффективно мгновенное обратное восстановление в контексте этой схемы.

Система все еще должна работать, но попробуйте использовать диод Шоттки, как я указал.

Олин Латроп
источник
Я фактически собрал эту схему прямо сейчас. Частота ШИМ составляет около 31 кГц. Я использовал транзистор 2N3904 с резистором 180 Ом к базе и ограничителем ускорения 4,7 нФ. У меня 8-битное разрешение ШИМ от моего MCU. Примерно с кодом 100 (из 256) я вижу, что двигатель начинает вращаться. Есть мысли о том, как увеличить разрешение? Возможно добавление некоторого смещения DC к базе? Я также хотел бы отметить, что двигатели работают с кодом 100, однако он работает немного быстрее, чем мин. скорость мне нужна. Я не могу понизить код ШИМ, так как он остановится.
user34920
спасибо Олин за хороший ответ. Не могли бы вы уточнить выбор C1? Вы говорите о постоянной времени, я понимаю, что она должна составлять около 1/10 периода переключения, но я ожидаю, что только размер C1 должен иметь значение для времени включения / выключения, поскольку он обеспечивает некоторую «мгновенную» зарядку.
Владимир Краверо
1
@vlad: сброс дополнительной платы в базу при включении и высасывание некоторых свободных носителей при выключении являются краткосрочными событиями. Они, вероятно, длятся всего несколько сотен нс после каждого фронта. Вы хотите, чтобы постоянная времени была немного длиннее, но также достаточно короткой, чтобы ограничение «сбрасывалось» перед следующим фронтом. 1 нам показался хорошим компромиссом, но много факторов могут иметь значение, которые трудно предсказать. Я бы начал с показанных значений, затем посмотрел на осциллограммы и скорректировал, если необходимо.
Олин Латроп
@user: Посмотрите на форму волны коллектора. Может быть, все не так, как задумано. Что делает двигатель с переменным напряжением постоянного тока? Есть ли напряжение там, где оно начинается, но затем оно не идет слишком быстро, когда идет?
Олин Латроп
@OlinLathrop Я добавил фотографию формы сигнала коллектора (это измерение проводится через CE транзистора). При использовании источника постоянного тока двигатель начинает вращаться при 0,2 В, и эта скорость является той, которую я хотел бы как минимум (около 50-60 об / мин).
user34920
0

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

Самый простой способ управления двигателем - это использование Н-моста, токоизмерительного резистора и ШИМ. В основном H-мост позволит использовать 3,3 В или 5 В, что наиболее удобно.

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

Кстати, вам нужен контроль скорости или положения?

Грегори Корнблюм
источник