Правильная ли схема управления двигателем Arduino?

У меня есть Arduino Pro Micro и некоторые детали для игры. Я хочу управлять небольшим двигателем 5 В от внешнего источника питания, используя Arduino для запуска транзистора. Так:

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

Это вообще правильно? Это будет работать? Я хочу поэкспериментировать, но не хочу сломать свою новую игрушку в процессе. Я использую транзистор NPN, 2N3904.

Ответы (4)

Вы хотите использовать транзистор в качестве переключателя. Я нашел хороший сайт о том, что дает эту схему:

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

Теперь забудьте обо всем этом мусоре и сократите дизайн до этого:

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Ваша схема правильная, за исключением того, что в ней отсутствуют базовый резистор (R1) и подтягивающий резистор (R2). Кроме того, нагрузка (ваш двигатель) должна быть на коллекторе транзистора, а не на эмиттере. Наконец, используйте обратноходовой диод или маховик с катодом к V cc , как на первом изображении, чтобы избежать высоких напряжений.

В итоге ваша схема будет выглядеть так:

схематический

смоделируйте эту схему

Пояснение к схеме:

  • R1 требуется для ограничения тока на базе резистора и, таким образом, тока, потребляемого от Arduino. Если вы не используете базовый резистор, ваш Arduino может сломаться.
  • R2 — это подтягивающий резистор, который обеспечивает достаточно низкое напряжение на базе транзистора, чтобы он не проводил ток при отсутствии входного сигнала от Arduino. Таким образом, этот резистор гарантирует, что вы знаете, в каком состоянии находится схема, когда Arduino отключен. Этот резистор не обязателен, но рекомендуется .
  • D1 — это обратный диод, который устраняет всплеск напряжения, когда двигатель останавливается или начинает работать. Это заходит слишком далеко, чтобы объяснить, почему, но всякий раз, когда вы пропускаете ток через катушку или когда вы прекращаете пропускать ток, может произойти всплеск напряжения. С обратноходовым диодом вы гарантируете, что выброс будет немедленно устранен. Использование этого диода настоятельно рекомендуется .

И последнее, что нужно объяснить: почему двигатель должен быть на стороне коллектора, а не на стороне эмиттера транзистора. Ваутер объясняет это в своем ответе , кратко: с нагрузкой на стороне коллектора вы отвечаете за то, какое напряжение получает двигатель; при нагрузке на стороне эмиттера это напряжение не может быть выше напряжения на базе (минус что-то).

Привет, Камил, я ценю всю работу, которую ты вложил в пост, и большая часть того, что ты сказал, имеет смысл для меня. Однако у меня есть пара вопросов: 1. Если вход Arduino выключен, зачем нужен резистор R2? Разве на базе не будет напряжения, и транзистор не сработает? 2. Насколько я понимаю, диоды предотвращают протекание тока в определенном направлении, но почему они связывают + и - полюса двигателя? Почему бы ему просто не быть на отрицательном полюсе, если эта часть подключена к Arduino?
@Madagascared большую часть времени работает и без R2, но с этим резистором вы всегда знаете, что происходит. Это не обязательно, но рекомендуется. Ваше понимание диодов правильное. Когда двигатель постоянного тока отключается, на стороне транзистора может возникнуть всплеск напряжения. С помощью обратноходового диода вы напрямую устраняете всплеск, пропуская его через V_cc. Если этого не сделать, транзистор получит отпайку на свой коллектор и ему это может не понравиться.
@Madagascared, пожалуйста, не принимайте ответ так быстро. Просто подождите несколько дней - принятый ответ отпугнет других от ответа, хотя у них тоже может быть что сказать!
Подтягивающий резистор @CamilStaps не нужен, если вы управляете BJT с выходом ATmega, поскольку он переходит в 0, а не в высокое сопротивление.
@FelicePollano правильно, но что, если вы измените контакт для ввода или отключите UC? Тогда это хорошая вещь, чтобы иметь вытягивание вниз. Конечно, это просто хорошая практика.
@CamilStaps Это BJT, если в среде, которую вы покидаете, вам нужен подтягивающий резистор, чтобы открыть BJT, у вас проблемы;)

Это может работать (по крайней мере, некоторое время), но есть несколько проблем:

  • Вы не упомянули, какой ток будет потреблять двигатель. 2N3904 — транзистор с малым сигналом, он может не выдержать ток двигателя (обратите внимание, что заглохший двигатель потребляет гораздо больший ток)

  • как и реле, двигатель может генерировать скачки напряжения. Я бы поставил диод параллельно двигателю. (соблюдайте полярность!)

  • вы используете транзистор в качестве эмиттерного повторителя, следовательно, напряжение на двигателе может быть таким же высоким, как выходное напряжение Arduino (минус 0,6 В или около того). Это может сработать, но я бы предпочел двигатель «в» коллекторном проводе. Для этого потребуется подходящий резистор в «проводе» базы.

Я бы даже не стал использовать транзистор NPN для начала из-за рассеивания тепла (Pd). Pd можно рассчитать, используя:

NPN/PNP -> Pd = Vf*I = 0,7V*I Как вы можете видеть здесь, если вы потребляете 1 А, то этот транзистор будет нагреваться, как будто завтра не наступит. (0,7 В) * (1 А) = 700 мВт.

MOSFET -> Pd = I ^ 2 * Ron = небольшое число. Как вы можете видеть здесь, даже при 1 А выделение тепла практически отсутствует. Поскольку сопротивление во включенном состоянии обычно составляет миллиомы. (1А)^2*10 мОм = 10 мВт.

Кроме того, большинство МОП-транзисторов имеют встроенный обратный диод!

Вот вопрос: вы говорите, что питание 5В для мотора вообще не подключено к Арудино. В этом случае у меня есть сомнения, что схема будет работать, если только она не будет заземлена где-то еще (например, если ваш Arduino питается от USB, который подключен к земле переменного тока, а источник питания двигателя подключен к той же земле через розетку). В любом случае, непреднамеренно полагаться на то, что вещи будут подключены к сети, — это не то, как вы хотите проектировать схемы (например, они перестанут работать, если Arudino или двигатель перейдут на питание от батареи). Например, в этой схеме V_be (напряжение база-эмиттер) не определено.

Простое решение — соединить землю Arduino с землей источника питания двигателя. Если вы действительно настаиваете на том, чтобы не было связи с землей, вам нужна какая-то другая форма связи, будь то оптическая (оптоизолятор) или магнитная (трансформатор).