Почему руководство Adafruit guide for motors использует транзисторы на земле а не модулирует источник питания
Я просматриваю руководство Adafruit Motors guide for Arduino, найденное здесь, и изо всех сил пытаюсь понять, как работает каждая из этих частей. Насколько я понял, широтно-импульсная модуляция-это в основном способ передачи различных уровней мощности через цифровой выходной источник. Кроме того, похоже, что направляющая использует транзистор с ШИМ-сигналом в качестве затвора, поэтому она может позволить проценту, заданному ШИМ-сигналом, контролировать, сколько потока подается на двигатель. Однако здесь меня смущает то, что и питание, и земля взаимодействуют с этой транзисторно-диодной установкой.
Это более конкретно то, что я имею в виду, на самом деле кажется очень простым: ШИМ-сигнал поступает по желтому проводу, подаваемому через резистор, чтобы он не сжигал транзистор в затворе.
Однако после этого сигнал заземления передается в исходную ветвь транзистора, а приемная ветвь соединяется как с диодом для питания, так И с землей двигателя? Возможно, я неправильно понимаю, как работает диод, но это, похоже, не имеет смысла относительно того, почему сигнал заземления модулируется.
Моей первоначальной мыслью для этого была бы система, в которой только мощность двигателя изменяется ШИМ-сигналом, примерно так (прошу прощения за ужасный стиль рисования, я еще не привык к некоторым программам для написания скетчей Arduino онлайн):
Я еще не пробовал это, но я предполагаю, что это не сработает или каким-то образом уничтожит компоненты, так как это кажется более простым решением, и оно не используется. Я пытался понять 1) почему мое решение будет плохим и 2) как работает официальное решение, так как они на самом деле не дали никакой фактической схемы (не то, чтобы я понял это, ха-ха) Любая помощь будет оценена по достоинству! Спасибо!
@Daneolog, 👍1
Обсуждение2 ответа
Лучший ответ:
Я думаю, что ваше замешательство действительно связано с диодом. Вы можете забыть о диоде, он не включается при переключении двигателя. Когда мотор работает, он может генерировать большие отрицательные напряжения, вызванные многократно коллапсирующим магнитным полем. Диод, который подключен назад, существует, чтобы принять эти отрицательные напряжения и предотвратить их повреждение остальной части цепи.
Используемое транзисторное расположение называется общим эмиттером, а также известно как низкоскоростной переключатель при использовании в saaturation между нагрузкой и GND, как в этой ситуации. Для двигателя не имеет значения, есть ли у вас переключатель между двигателем и GND (используя N-канальный МОП-транзистор или NPN-биполярный транзистор) или между питанием и двигателем (используя P-канальный МОП-транзистор или PNP-биполярный транзистор), но для Arduino это имеет значение.
Сложнее переключить "высокий боковой переключатель" с Arduino, особенно если ваш источник питания выше напряжения, на котором работает Arduino. Поскольку коммутация управляется разницей напряжений между "общей" точкой (эмиттер [BJT] / источник [MOSFET]) и сигналом коммутации (Arduino), который ограничен 5 В, любое напряжение "общей" точки, которое выше этого, недоступно сигналу коммутации, поэтому в конечном итоге оно всегда включено и коммутация терпит неудачу.
Возможно переключить высокую сторону, но вам нужна дополнительная управляя ступень для того чтобы позволить более высокому переключению напряжения тока.
Для этой конкретной схемы, где мощность 5 В, она не так восприимчива к проблеме, но это редкий случай. Обычно вы будете управлять двигателями с более высоким напряжением, таким как 12 В, и там вам понадобится дополнительная движущая ступень или просто используйте гораздо более простую схему переключения с нижней стороны, которой вас учит эта схема.
это имеет большой смысл, но у меня был один вопрос относительно этого обратного диода: имеет ли значение, подключается ли его конец обратно к заземлению с импульсной модуляцией или я могу подключить его обратно к обычному заземляющему проводу?, @Daneolog
@Daneolog Не уверен, что вы там имеете в виду-это должно быть явно на двигателе, так как это двигатель, генерирующий отрицательное напряжение., @Dave Newton
Его назначение состоит в том, чтобы сформировать цепь между двумя выводами двигателя *в обратном направлении*., @Majenko
о да, нет, я имел в виду, что другая его сторона, указывающая на ту же линию, что и выход транзистора, указывает на модулированную землю, @Daneolog
о, я понимаю, значит, это не просто средство высвобождения всей негативной энергии в почву, это подача ее обратно, @Daneolog
@Daneolog Я думаю, у вас сложилось впечатление, что "земля" - это что-то особенное. Это не. Это просто провод в цепи. Там нет "модулированного заземления", только переключатель последовательно с двигателем., @Majenko
но дело в том, что определенно существует разница в сигнале между землей, которая поступает непосредственно от Arduino, и выходом транзистора, вот что я называю каким-то модулированным сигналом, @Daneolog
"земля" - это не более чем произвольная точка в цепи, к которой относятся другие напряжения., @Majenko
вы не возражаете, если я немного поговорю об этом в чате? Я все еще немного не понимаю, как работает этот диод, поскольку он связан как с землей, так и с питанием, @Daneolog
Давайте [продолжим это обсуждение в чате](https://chat.stackexchange.com/rooms/124359/discussion-between-daneolog-and-majenko)., @Daneolog
Ваша схема
Синяя линия на вашей первой схеме "идет вверх", которую вы отметили GND, на самом деле не GND, а одно из соединений двигателя. Если вы посмотрите на схему Adafruit, вы можете увидеть это.
Двигатель на схеме Adafruit в приведенной вами ссылке подключен между 5 В и анодом диода (и коллектором транзистора).
Обратный диод
Диод-это так называемый "обратный диод", соединенный между соединениями двигателя, чтобы "впитать" обратную ЭДС, возникающую, когда двигатель выключен и его магнитное поле коллапсирует. Если бы диода там не было, на коллекторе транзистора произошел бы скачок напряжения, который, возможно, повредил бы его.
Переключение с низкой стороны
Решение "Adafruit" использует NPN-транзистор в качестве переключателя на нижней стороне двигателя, когда вывод ввода-вывода находится высоко, как показано на схеме справа. Это очень распространенная установка, так как она почти не имеет недостатков.
Переключение с высокой стороны
Ваше собственное предложение (так называемое переключение с высокой стороны, показанное справа) также будет работать (с добавлением обратного диода), но для этого потребуется транзистор другого типа-PNP-транзистор. Кроме того, входы ввода-вывода будут работать в обратном порядке: когда вывод ввода-вывода низкий, двигатель будет включен, а когда вывод ввода-вывода высокий, он будет выключен.
Обратите внимание, что коммутация на высокой стороне будет работать только тогда, когда напряжение питания ниже или равно напряжению на выводах ввода-вывода. Например, вы не можете включить двигатель 12 В таким образом. При низком боковом переключении у вас не будет этой проблемы, и вы сможете переключать более высокие напряжения.
о, я понимаю. таким образом, в основном двигатели могут работать в обоих направлениях, если вы блокируете заземление на определенную величину, это заблокирует движение на эту величину так же, как вы заблокировали мощность на эту величину, но метод блокировки заземления проще, потому что он позволяет вам иметь одинаковую настройку для двигателя любого размера, просто имея источник питания, достаточно мощный для двигателя. в этом есть большой смысл! большое вам спасибо!, @Daneolog
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Как устранить шум от вентилятора 12 В с ШИМ-управлением на низкой скорости
- Вопрос о различных способах подключения платы драйвера двигателя L298N к Arduino и двигателям и их питания.
- Обратное вращение шагового двигателя
- Неиспользуемые контакты в Arduino L293D motor shield?
- Arduino uno + cnc Shield v3 + драйвер шагового двигателя A4988 + AccelStepper?
- Как заставить сервопривод вращаться на угол больше 180°
- Остановка/запуск двигателя постоянного тока с концевыми выключателями и кнопкой включения/выключения
Совет: синяя линия "вверх", которую вы отметили GND, на самом деле не GND, а одно из моторных соединений. Двигатель подключен между 5 В и анодом диода (и коллектором транзистора). Вы можете использовать встроенный редактор схем для создания более четкого чертежа., @StarCat
На странице [транзистор] есть схема(https://learn.adafruit.com/adafruit-arduino-lesson-13-dc-motors/transistors)., @Dave Newton
имейте в виду, что электроны текут от отрицательного к положительному, поэтому он действительно модулирует источник энергии, как показано., @dandavis