Проблема с двигателем постоянного тока

У меня есть схема с Arduino UNO Rev3, двигатель постоянного тока, кнопка для переключения направления вращения и потенциометр для регулирования оборотов. Проблема в том, что обычно, когда я увеличиваю напряжение с помощью потенциометра, двигатель не хочет вращаться сам по себе, и это происходит только тогда, когда я двигаю его вал пальцем или когда я снова нажимаю кнопку. Я бы не понял, что это может быть связано с трением, и поэтому помогает перемещение вала пальцем, но почему двигатель начинает вращаться, когда я нажимаю кнопку, меняющую направление?

Вот моя схема:

И вот мой код:

, 👍0

Обсуждение

[Пожалуйста, поймите, почему мы не должны публиковать изображения 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


3 ответа


1

Во-первых, вам нужен драйвер двигателя, чтобы управлять двигателем от Arduino. Вы не можете управлять им напрямую с выводов ввода-вывода.

Во-вторых, используя такой потенциометр для управления скоростью, вы массово лишаете двигатель мощности (не то, чтобы Arduino мог обеспечить такую мощность, а если бы мог, то потенциометр дымил бы).

Ваш дизайн должен быть:

  • Потенциометр на аналоговый вход для управления скоростью с помощью ШИМ
  • Выходы от Arduino для управления направлением (GPIO x 2) и скоростью (ШИМ) к драйверу двигателя (обычно доступен L293)
  • Двигатель, подключенный к приводу двигателя
  • Источник питания, подходящий для вашего двигателя, подключенный к драйверу двигателя

В Интернете есть много примеров, которые показывают вам этот вид схемы. Следуйте за одним.

,

Спасибо за ответ, но я хотел бы регулировать скорость двигателя вручную, не изменяя значение ШИМ в программе., @Macios216

Затем вам понадобится драйвер двигателя, который будет принимать аналоговый вход. Вы не можете просто воткнуть туда потенциометр и надеяться, что он сработает., @Majenko

Спасибо, я попробую. К счастью, у меня есть L293d., @Macios216

@Macios216 "Регулирование вручную" и "изменение значений ШИМ" являются отдельными проблемами-средства определения значения ШИМ являются произвольными. Возьмите значение pot и сопоставьте его со значением PWM., @Dave Newton


-2

Ну, горшок выдает аналоговый выход, двигателям постоянного тока нужен цифровой ШИМ-выход, поэтому у меня есть решение для вас:

,

Пожалуйста, еще раз обратите внимание, что управление большинством двигателей непосредственно от Arduino может привести к повреждению вашего Arduino., @Dave Newton

на самом деле это неправильно без диода, но я забыл sry, @Harsha Addanki

Даже с диодом, все равно это плохая идея, @Subha Jeet Sikdar

С помощью диода двигатель может работать только в одном направлении., @SBF


0

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

Микросхемы Arduino или любые другие микросхемы микроконтроллеров не предназначены для прямого запуска с высокой нагрузкой.

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

Вы запускаете двигатель непосредственно с контактов UNO. Что может пойти не так?

  1. Если ваш двигатель потребляет ток более 20 мА, то вывод, к которому вы подключили arduino, нагревается и будет гореть, если вы продолжите дальше.
  2. Предположим, что ваш двигатель потребляет ток менее 20 мА, тем не менее существует высокий риск того, что двигатель иногда создает очень высокое напряжение и скачок тока в определенном состоянии.

Если вы продолжите это делать, вы в конечном итоге полностью сожжете эти контакты.

Итак, что соответствует вашему проекту, похоже, это микросхема драйвера двигателя, такая как L293D или L298N

Вместо двигателя подключите вход IC логического уровня драйвера двигателя к выводу 3 и 4 цифрового выхода Arduino, а затем подключите двигатель к выходу IC драйвера двигателя

Более подробную информацию об этих микросхемах можно найти в технических характеристиках

,