Почему эта очень простая схема переключения внешнего источника питания сожгла мою плату ESP32/Arduino?

Так что все, что я хотел сделать, это управлять 12-вольтовым двигателем через большой запасной транзистор, который у меня валялся. Поэтому я подумал, что он может работать, и проверил транзистор, и действительно, он работал как переключатель, при подаче небольшого напряжения на базу переключатель срабатывал при напряжении 12 В ... Круто!

Так что я подумал, давайте пропустим макетную плату и на самом деле создадим настоящую печатную плату. Поэтому я питал все от источника питания 12 В. Использовался делитель напряжения с резисторами, чтобы использовать тот же источник питания 12 В для питания самой платы ESP32 (5 В). А потом настало время, когда я поместил контакт GPIO в базу транзистора, чтобы активировать переключатель ... И вот так плата была ЖАРЕНА. Достаточно глупо, я схватил еще один ESP32, попробовал еще раз, и вы догадались, что он тоже поджарился XD.

Так что же здесь пошло не так? Как внешнему источнику питания 12 В удалось проникнуть внутрь платы и нанести ущерб? Может быть, мне нужны какие-то диоды или что-то еще, чего мне здесь не хватает :/

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

Заранее спасибо, если вы можете чем-то помочь моему мозгу понять немного больше об электронике: D

-Обновлять! Сжег третий ESP32 (на этот раз я был неуклюжим, случайно упал на блок питания и закоротил его XD) ... Но мой транзистор был транзистором PNP, а блок питания в нарисованном мной эскизе был направлен в противоположном направлении!

Во-первых, через резисторный делитель ничего нельзя запитать. Даже короткое замыкание на вашем «выходе» 5 В даст только 120 микроампер. Вы уверены, что платы действительно сгорели или просто не получают питания из-за резисторного делителя? Во-вторых, у вас нет базового резистора между выводом GPIO и базой транзистора. Это тоже может что-то поджарить. В-третьих, на транзисторе нет защитного диода от защиты его от индуктивной нагрузки при выключении.
Здесь так много всего неправильно, что трудно понять, с чего начать. Для начала: почему нельзя использовать резисторный делитель в качестве регулятора напряжения , почему важен базовый резистор . Теперь вы видели, что построение случайных схем без знания основ делает электронику дорогим хобби ;-)
Вам нужен защитный диод на вашем двигателе, вам нужен базовый резистор для вашего транзистора. И вы должны проверить, может ли gpio2 быть высоким при загрузке (не говорю, что это так, но серия ESP имеет режим загрузки, привязанный к некоторому контакту, который люди часто ломают таким образом ... я оставлю вам искать , какой контакт)
@StarCat О, очень хорошая ссылка о проблеме с резисторным делителем! Спасибо за это. Теперь мне осталось задаться вопросом, почему это поджарило доску? Несмотря на то, что у меня был бы резистор на базе транзистора (который у меня будет в следующий раз :D), я почему-то сомневаюсь, что он все еще не будет убит. Я быстро проверил мультиметром напряжение от базы (без подключенной базы) до эмиттера, и на нем было 12 В. Может ли это означать, что когда я подключил свой GPIO к базе, он каким-то образом получил кричащие 12 В?
Для справки, обе платы ESP32 находились вне зоны ремонта. К сожалению, они были полностью изжарены.
@CoffeDev Кажется, у вас есть хороший источник ESP32 - теперь нужно найти хороший источник дешевых регулируемых понижающих преобразователей, чтобы получить надлежащее питание 5 В для ESP32 от источника 12 В. Вы сможете получить четыре LM2596 примерно за 10 долларов.
@CoffeDev Каков фактический номер детали «большого запасного транзистора»? Возможно, между ними потребуется небольшой транзистор, чтобы управлять им с выхода ESP32.
@CoffeDev Если бы контакт GPIO, помещенный в базу транзистора для активации шага переключения, имел бы хотя бы небольшой дребезг контактов (так и было), индуктивность двигателя на 12 В могла бы создать всплеск обратного напряжения 24 В. См. Зачем добавлять диод в схему двигателя постоянного тока с транзисторным управлением?
Теперь я использую настоящий npn-транзистор c945, который творит чудеса!
К сожалению, у меня нет стабилизаторов напряжения, я думаю, что мне придется питать плату как от USB, так и от отдельного блока питания :(

Ответы (1)

Резюме : Одной из вероятных причин повреждения ESP32 является использование одного PNP BJT для управления нагрузкой при напряжении выше, чем напряжение GPIO . (Существуют дополнительные проблемы со схемой, которые также могут привести к другим повреждениям, но я сосредоточусь в основном на использовании PNP BJT.)

Детали :

Как внешнему источнику питания 12 В удалось проникнуть внутрь платы и нанести ущерб? Может быть, мне нужны какие-то диоды или что-то еще, чего мне здесь не хватает :/

Было/есть несколько проблем со схемой :

  • Использование резисторного делителя для получения источника питания с более низким напряжением ( также упоминается Justme и StarCat )
  • Отсутствует базовый резистор (также упомянутый Крисом Страттоном )
  • Отсутствует обратный диод на индуктивной нагрузке (также упомянутый Эндрю Мортоном и Крисом Страттоном )

Последние два пункта в приведенном выше списке могут привести к повреждению транзистора.

Однако ваш более поздний комментарий очень важен, и именно на нем я хочу сосредоточиться :

Я быстро проверил мультиметром напряжение от базы (без подключенной базы) до эмиттера, и на нем было 12 В. Может ли это означать, что когда я подключил свой GPIO к базе, он каким-то образом получил кричащие 12 В?

Да , это именно то , что это означает. Это также ожидаемое поведение, если у вас есть PNP BJT в качестве переключателя верхнего плеча, а не NPN BJT в качестве переключателя нижнего плеча, показанного на вашей схеме. И теперь ваше недавнее редактирование подтвердило, что схема неверна, и вы действительно использовали PNP BJT:

[...] мой транзистор был транзистором PNP, а источник питания на нарисованном мною эскизе был направлен в противоположном направлении!

Так что это делает часть вашей проблемы повторением этого вопроса: « переключение транзистора верхнего плеча PNP с микроконтроллером ». Ответ на этот вопрос от пользователя Transistor объясняет последствия попытки использовать только PNP BJT для прямого управления устройством с более высоким напряжением от MCU GPIO (пожалуйста, прочитайте этот ответ).

Это изображение скопировано из этого связанного ответа пользователем Transistor :

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

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

Ваша схема показала, что вы использовали схему (a) выше (драйвер нижнего плеча NPN BJT), но на самом деле вы использовали схему (b) выше (драйвер верхнего плеча PNP BJT с более высоким напряжением нагрузки, чем напряжение GPIO).

Оранжевая линия на схеме (b) показывает путь тока из-за прямого смещения эмиттерно-базового перехода PNP BJT, который может напрямую повредить MCU и потенциально (через «диоды» ESD в MCU) также повысить подать напряжение на MCU (вызывая дальнейшее повреждение).

У User Transistor есть еще одно полезное объяснение этой проблемы (и другая полезная информация) на их собственном веб-сайте здесь: сбой драйвера верхней стороны GPIO .

Вы сказали в своем обновлении:

Теперь я использую настоящий npn-транзистор c945, который творит чудеса!

Транзисторы NPN с маркировкой C945 (2SC945) производятся несколькими производителями, и их технические характеристики могут незначительно различаться ( пример даташита ). Однако обычно его называют малосигнальным транзистором. Убедитесь, что его номиналы подходят для вашего двигателя на 12 В, и добавьте базовый резистор и обратный диод.

Абсолютно фантастическое объяснение моей очень плохо разработанной схемы! На всякий случай я обновил его до другого маленького транзистора, который лежал у меня под рукой и поддерживал ток 700 мА. Большое спасибо за подробные богатые объяснения!