Проблема с двигателем постоянного тока
У меня есть схема с Arduino UNO Rev3, двигатель постоянного тока, кнопка для переключения направления вращения и потенциометр для регулирования оборотов. Проблема в том, что обычно, когда я увеличиваю напряжение с помощью потенциометра, двигатель не хочет вращаться сам по себе, и это происходит только тогда, когда я двигаю его вал пальцем или когда я снова нажимаю кнопку. Я бы не понял, что это может быть связано с трением, и поэтому помогает перемещение вала пальцем, но почему двигатель начинает вращаться, когда я нажимаю кнопку, меняющую направление?
Вот моя схема:
И вот мой код:
@Macios216, 👍0
Обсуждение3 ответа
Во-первых, вам нужен драйвер двигателя, чтобы управлять двигателем от Arduino. Вы не можете управлять им напрямую с выводов ввода-вывода.
Во-вторых, используя такой потенциометр для управления скоростью, вы массово лишаете двигатель мощности (не то, чтобы Arduino мог обеспечить такую мощность, а если бы мог, то потенциометр дымил бы).
Ваш дизайн должен быть:
- Потенциометр на аналоговый вход для управления скоростью с помощью ШИМ
- Выходы от Arduino для управления направлением (GPIO x 2) и скоростью (ШИМ) к драйверу двигателя (обычно доступен L293)
- Двигатель, подключенный к приводу двигателя
- Источник питания, подходящий для вашего двигателя, подключенный к драйверу двигателя
В Интернете есть много примеров, которые показывают вам этот вид схемы. Следуйте за одним.
Спасибо за ответ, но я хотел бы регулировать скорость двигателя вручную, не изменяя значение ШИМ в программе., @Macios216
Затем вам понадобится драйвер двигателя, который будет принимать аналоговый вход. Вы не можете просто воткнуть туда потенциометр и надеяться, что он сработает., @Majenko
Спасибо, я попробую. К счастью, у меня есть L293d., @Macios216
@Macios216 "Регулирование вручную" и "изменение значений ШИМ" являются отдельными проблемами-средства определения значения ШИМ являются произвольными. Возьмите значение pot и сопоставьте его со значением PWM., @Dave Newton
Ну, горшок выдает аналоговый выход, двигателям постоянного тока нужен цифровой ШИМ-выход, поэтому у меня есть решение для вас:
Пожалуйста, еще раз обратите внимание, что управление большинством двигателей непосредственно от Arduino может привести к повреждению вашего Arduino., @Dave Newton
на самом деле это неправильно без диода, но я забыл sry, @Harsha Addanki
Даже с диодом, все равно это плохая идея, @Subha Jeet Sikdar
С помощью диода двигатель может работать только в одном направлении., @SBF
Прежде всего, отключите двигатель, который напрямую подключен к вашему UNO, если вы хотите, чтобы ваша плата была в целости и сохранности.
Микросхемы Arduino или любые другие микросхемы микроконтроллеров не предназначены для прямого запуска с высокой нагрузкой.
Работа микроконтроллера заключается в том, чтобы генерировать сигналы, которые должны пропускаться через транзистор или метод усиления микросхемы для управления высокими нагрузками.
Вы запускаете двигатель непосредственно с контактов UNO. Что может пойти не так?
- Если ваш двигатель потребляет ток более 20 мА, то вывод, к которому вы подключили arduino, нагревается и будет гореть, если вы продолжите дальше.
- Предположим, что ваш двигатель потребляет ток менее 20 мА, тем не менее существует высокий риск того, что двигатель иногда создает очень высокое напряжение и скачок тока в определенном состоянии.
Если вы продолжите это делать, вы в конечном итоге полностью сожжете эти контакты.
Итак, что соответствует вашему проекту, похоже, это микросхема драйвера двигателя, такая как L293D или L298N
Вместо двигателя подключите вход IC логического уровня драйвера двигателя к выводу 3 и 4 цифрового выхода Arduino, а затем подключите двигатель к выходу IC драйвера двигателя
Более подробную информацию об этих микросхемах можно найти в технических характеристиках
- Двигатель постоянного тока Arduino с 2 кнопками
- Шаговый двигатель не изменяет направления движения!
- Нужна помощь в создании кода, который перемещает двигатель постоянного тока CW или CCW с помощью двух разных кнопок
- 2 кнопки нажаты одновременно, логика лифта
- Как запустить 3 режима работы, для каждой операции есть отдельная кнопка для выбора режима в Arduino?
- Бот не активируется после нажатия кнопки
- Rasberry Pi, управляющий Arduino - считывает "призрачный" вход - не завершает логический цикл
- Код не выполняется надежно при активации кнопки
[Пожалуйста, поймите, почему мы не должны публиковать изображения text.](https://meta.stackoverflow.com/questions/285551/why-not-upload-images-of-code-errors-when-asking-a-question) Мы мало знаем о вашем двигателе или о том, как двигатель подключен к Arduino., @Dave Newton
Я не мог бы так управлять двигателем непосредственно от Arduino; даже маленький двигатель может потреблять больше тока, чем может выдержать Arduino., @Dave Newton
**Немедленно отключите эту цепь - вы повредите свой Arduino**, @Majenko