У меня есть Arduino Pro Micro и некоторые детали для игры. Я хочу управлять небольшим двигателем 5 В от внешнего источника питания, используя Arduino для запуска транзистора. Так:
Это вообще правильно? Это будет работать? Я хочу поэкспериментировать, но не хочу сломать свою новую игрушку в процессе. Я использую транзистор NPN, 2N3904.
Вы хотите использовать транзистор в качестве переключателя. Я нашел хороший сайт о том, что дает эту схему:
Теперь забудьте обо всем этом мусоре и сократите дизайн до этого:
смоделируйте эту схему - схема, созданная с помощью CircuitLab
Ваша схема правильная, за исключением того, что в ней отсутствуют базовый резистор (R1) и подтягивающий резистор (R2). Кроме того, нагрузка (ваш двигатель) должна быть на коллекторе транзистора, а не на эмиттере. Наконец, используйте обратноходовой диод или маховик с катодом к V cc , как на первом изображении, чтобы избежать высоких напряжений.
В итоге ваша схема будет выглядеть так:
Пояснение к схеме:
И последнее, что нужно объяснить: почему двигатель должен быть на стороне коллектора, а не на стороне эмиттера транзистора. Ваутер объясняет это в своем ответе , кратко: с нагрузкой на стороне коллектора вы отвечаете за то, какое напряжение получает двигатель; при нагрузке на стороне эмиттера это напряжение не может быть выше напряжения на базе (минус что-то).
Это может работать (по крайней мере, некоторое время), но есть несколько проблем:
Вы не упомянули, какой ток будет потреблять двигатель. 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 с землей источника питания двигателя. Если вы действительно настаиваете на том, чтобы не было связи с землей, вам нужна какая-то другая форма связи, будь то оптическая (оптоизолятор) или магнитная (трансформатор).
Мадагаскар
пользователь17592
пользователь17592
Феличе Поллано
пользователь17592
Феличе Поллано