Мне нужно управлять 12-вольтовым двигателем с сигналом от Arduino.
Для этого я соединяю землю Arduino с землей выпрямителя батареи, создавая общую землю.
Затем я подключаю коллектор транзистора (NPN) к положительному выводу источника питания, а базу — к выходу Arduino. Наконец, я подключаю концевой эмиттер к двигателю, который подключается к общему заземлению.
Не получив желаемого результата, я подключаю базу транзистора к выводу с постоянным высоким уровнем сигнала от ардуино. Я измеряю напряжение между эмиттером и общей землей, оно составляет около 3 вольт.
Что происходит? Почему я получаю разность потенциалов между базой и общей землей вместо 12 В?
Вы видите именно то поведение, которое я ожидал.
При включении кремниевым транзисторам BJT требуется (это напряжение базы относительно эмиттера) около . Это означает, что если ваш выход Arduino находится на уровне , то если эмиттер выше , транзистор будет закрыт.
Если вы поместите двигатель между эмиттером и землей, это означает, что у вас не может быть больше, чем через двигатель, потому что транзистор выключится. Однако вы получите достаточный ток, чтобы поднять напряжение двигателя примерно до этого. Если у вас нет базового резистора, ток, протекающий в базу в этом сценарии, будет довольно высоким и намного превысит возможности источника тока микросхемы ATMega, что приведет к падению выходного напряжения из-за внутреннего сопротивления, которое вот почему вы видите ближе через ваш мотор.
Если вместо этого вы подключите эмиттер к земле, а двигатель к коллектору (и другую сторону двигателя к источнику питания), то при подаче к базе, вы бы потому что эмиттер находится под потенциалом земли. Это полностью открыло бы транзистор, и у вас было бы около по мотору. Однако это тоже нехорошо - это либо поджарит ваш транзистор, либо поджарит управляющий контакт (или и то, и другое).
Устройства BJT являются источниками тока с регулируемым током - это означает, что ток, протекающий от коллектора к эмиттеру, пропорционален току, протекающему от базы к эмиттеру. Другими словами, увеличение базового напряжения — это не то, как вы управляете выходом, а скорее вам нужно изменить ток. Если вы слишком сильно увеличите базовое напряжение на транзисторе, вы получите очень высокие токи, протекающие в базу (транзистор - это фактически диод от базы к эмиттеру), что повредит его.
Итак, что вам нужно сделать, это преобразовать выходное напряжение вывода Arduino на требуется транзистору при безопасном уровне тока — это делается простым добавлением резистора подходящего размера между выводом Arduino и основанием транзистора, например:
Том Карпентер
Вриск