Управление скоростью двигателя постоянного тока с батареей 9 В
Проблема: Я хочу иметь батарею 9 В, которая питает двигатель постоянного тока. Я хочу управлять им с помощью пульта дистанционного управления Bluetooth с 3 кнопками. 1-я кнопка-это включение двигателя на 1,5 В, 2-я кнопка-выключение двигателя, а 3-я кнопка-полная мощность (9 В). Вот в чем проблема, обычно я меняю напряжение с помощью своего arduino с помощью кода, но у него максимальное напряжение 3,6 В, поэтому я не могу управлять батареей с помощью arduino. Также я хотел бы, чтобы батарея 9 В питала arduino и модуль Bluetooth, если это возможно, поэтому у меня есть только одна батарея, которая питает все.
Что я пытался: Я нашел много разных вещей в Интернете. Шим, транзистор Tip120, L298N, и это только больше сбивает меня с толку, я понятия не имею, с чего начать. Потратьте 8 часов на поиски вещей и ни шагу дальше.
Результат: Я надеюсь, что все будет работать с батареей 9 В, а пульт дистанционного управления Bluetooth может переключаться между 3 различными скоростями.![введите описание изображения здесь]
@Bart, 👍0
Обсуждение1 ответ
У вас здесь 3 проблемы:
Схема драйвера двигателя: Поскольку вы хотите управлять только скоростью двигателя (не изменяя его направление, где вам понадобится H-мост, такой как L298N), достаточно очень простой схемы драйвера. Он может состоять из биполярного транзистора или МОП-транзистора. Вывод цифрового выхода Arduino настроит транзистор/МОП-транзистор на проводящий или непроводящий, что включит или выключит двигатель. Двигатель подключен (через транзистор/МОП-транзистор) к полному питающему напряжению. Для необходимой схемы вы можете поискать в Google такие термины, как "транзистор в качестве переключателя" или "МОП-транзистор в качестве переключателя". Это должно дать вам множество учебных пособий.
Управление скоростью двигателя: Обычно скорость двигателя не регулируется напряжением, так как скорость не зависит от напряжения. Вместо этого мы используем ШИМ (широтно-импульсная модуляция), где на вывод Arduino выводится напряжение прямоугольной формы с постоянной частотой. Чтобы изменить скорость двигателя, вы изменяете соотношение между временем включения и выключения контакта (так называемый "рабочий цикл"). Таким образом, двигатель в основном включается и выключается очень быстро. Поскольку двигатель должен замедляться, чтобы следовать за быстрым изменением, мы в основном даем ему небольшие толчки очень быстро. Если вы нажимаете только половину времени (рабочий цикл 50%), двигатель будет работать примерно с половиной скорости. В коде Arduino вы используете
analogWrite(pin_number, x)
сx
от 0 до 255 для вывода ШИМ-волны на указанный вывод. Для получения подробной информации обратитесь к документации Arduino.Питание всего устройства: Во-первых: Блок-батарея 9 В на самом деле является худшим выбором для большинства случаев (особенно для устройств с двигателями). Он имеет большое последовательное сопротивление, что означает, что он не может обеспечить большой ток без радикального снижения напряжения. Они предназначены для слаботочных устройств. Лучше использовать несколько батареек типа АА/ААА последовательно.
Вы не указали, какой Arduino вы на самом деле используете, но, судя по описанию, это должна быть одна из плат 3,3 В, например, версия Arduino Pro Mini 3,3 В. На большинстве плат Arduino также есть небольшой регулятор напряжения. Входные данные для него в основном помечены
Vin
. Пожалуйста, обратитесь к документации вашей платы Arduino, чтобы проверить, какие напряжения подходят для этого регулятора напряжения. Если у вас нет регулятора напряжения на вашем Arduino или напряжение вашей батареи не подходит, вы должны обеспечить питание через свой собственный внешний регулятор напряжения. Вы должны использовать регулятор переключения (гораздо более эффективный, чем линейные регуляторы), который может обеспечить необходимую мощность (в зависимости от Arduino и устройства Bluetooth, возможно, от 50 мА до 300 мА, трудно сказать в целом) плюс небольшие накладные расходы.Затем вы должны обеспечить двигатель полным напряжением батареи, особенно не через регулятор напряжения Arduino. Двигатели могут потреблять довольно большой ток. Если вы потянете через регулятор больше тока, чем это возможно, он перегреется, аварийно отключится или даже перегорит. Если напряжение батареи не подходит, вам следует использовать регулятор напряжения, который может безопасно обеспечить необходимый ток.
Примечание: В зависимости от размера двигателя и его нагрузки вы можете добавить обратный диод, который безопасно пропускал бы индуктивные обратные токи на землю, чтобы индуктивное напряжение не накапливалось в транзисторе/МОП-транзисторе.
Большое вам спасибо! Наконец-то я это понимаю! Я попробую это и дам вам знать, если это сработает! :), @Bart
Еще раз спасибо, почти все работает! Единственное, чего я не знаю, так это как добавить диод против обратного напряжения. Я сделал снимок диаграммы, которую использую, и не уверен, что она правильная. И я сделал снимок проекта, над которым работаю.(Я отправляю их вместе с оригинальным сообщением.) Я не уверен, правильно ли я его подключил, потому что мой esp получает данные от com3 при включении двигателя(я думаю, это из-за обратного напряжения). Кроме того, таким образом, диод стал чрезвычайно горячим., @Bart
Диод находится в месте отжима. В настоящее время через него протекает весь ток двигателя, поэтому он нагревается. Обратный диод должен соединять источник и сток МОП-транзистора в обратном направлении, так что при нормальной работе он блокируется, оставляя оперативную функцию МОП-транзистору. Когда двигатель внезапно останавливается, на МОП-транзисторе накапливается отрицательное напряжение. Затем диод соединит это напряжение с землей, чтобы напряжение рассеивалось там и не могло разрушить МОП-транзистор, @chrisl
Я не знаю, что вы подразумеваете под com3, но это, кажется, из-за шума двигателей. Экранирование от шума может быть сложной вещью, слишком сложной для такого ответа. Погуглите об этом, чтобы найти какие-то подходящие меры., @chrisl
Я снова сделал снимок своей установки, а также схему МОП-транзистора и его соединений. Вы это имели в виду? Когда я попробовал это сделать, я все еще получаю мигающий желтый свет на моем esp8266. (обратное напряжение, которое, вероятно, попадает в плату) Кроме того, мне нужно отключить и снова подключить мой esp8266, иначе он не будет обрабатывать никакой код. Вы видите, что я что-то делаю не так? Это диод 1n4001, и я использую ШИМ, это проблема? Заранее благодарю вас!, @Bart
- Аккумуляторы LiPo с контроллером L298N
- Две батареи делят землю?
- Проблема: Срабатывание концевого выключателя для остановки двигателя постоянного тока.
- Обратное напряжение двигателя постоянного тока, как правильно разместить диод?
- Как использовать отдельный источник питания для Arduino и двигателей
- 9-вольтовая батарея не может питать 2 пластиковых желтых мотора.
- Как рассчитать требования к электроснабжению для проекта
- Источник питания для Arduino uno, sparkfun usb shield и adafruit motor shield
Слишком широко и не по теме, но я предлагаю вам прочитать о широтно-импульсной модуляции (ШИМ) управления двигателями постоянного тока, а также о требованиях к мощности вашего двигателя постоянного тока. Часто щелочная батарея 9 В не режет его, попробуйте вместо этого литиевые батареи., @MichaelT