Как исправить подключение светодиодной ленты RGB 12 В к NodeMCU?

Я пытаюсь подключить светодиодную ленту RGB 12 В (светодиодная лента LTROP SMD 5050 RGB) к блоку NodeMCU. Я знаю, что по этому поводу существует много разных руководств, и я новичок в электропроводке и электрических цепях.

Я использовал n-MOSFET BUZ91A и резисторы 150 Ом для каждого из каналов RGB, а плата использует собственный источник питания через USB.

моя проводка

Я использую очень простой код, чтобы проверить, работает ли установка:

#define REDPIN D3
#define GREENPIN D1
#define BLUEPIN D2

#define FADESPEED 5     // увеличьте значение, чтобы замедлить скорость

void setup() {
  pinMode(REDPIN, OUTPUT);
  pinMode(GREENPIN, OUTPUT);
  pinMode(BLUEPIN, OUTPUT);
  Serial.begin(115200);
  Serial.println("Finished setup");
}


void loop() {
    analogWrite(REDPIN, 800);
    analogWrite(BLUEPIN, 1020);
    analogWrite(GREENPIN, 400);
    delay(100);

  Serial.println("Finished loop");
}

Я подозреваю, что ничего не работает, потому что NodeMCU и светодиод используют разные источники питания, и тот факт, что у них есть общее заземление, похоже, не является всем необходимым.

, 👍0

Обсуждение

Что произойдет, если вы попытаетесь ШИМ встроенного светодиода? Кстати, вам не нужно снова и снова выполнять analogWrite() в цикле, достаточно сделать это только один раз в setup(), но проблема не в этом., @Chupo_cro

Он отлично работает с D0 — он меняет яркость в зависимости от значения в AnalogWrite()., @abolotnov

Связь в порядке. Какая у вас плата/версия NodeMCU? Назначение контактов может отличаться от того, которое определяет Arduino. Например, мой NodeMCU (LoLin) имеет встроенный светодиод на контакте 2, который является D4. D0 — это контакт 16, поэтому другие контакты на вашей плате могут отличаться., @Chupo_cro

Мне кажется версия 1.0. Arduino IDE «Получить информацию о плате» мало что говорит: VID: 10C4, PID: EA60., @abolotnov

Сначала я попытался бы поморгать светодиодом, используя digitalWrite() на D1, D2 и D3 (один за другим), чтобы увидеть, действительно ли эти выходы связаны с контактами, к которым вы подключили выходы ШИМ (только не забывайте ток ограничивающий резистор, максимальный ток источника — 12 мА, максимальный ток стока — 20 мА). И вы можете сначала попытаться изменить частоту ШИМ, например, с помощью analogWriteFreq(200);. Частота ШИМ по умолчанию составляет 1 кГц, и это должно работать, но если вы попытаетесь, ничего не потеряете., @Chupo_cro

Я подключил светодиод 3 В к контакту D 1 (используется для канала G в моей настройке) и заземлил, и он постоянно горит. Изменение AnalogWriteFreq() не помогло, но встроенный светодиод также изменил свою яркость., @abolotnov

Если я просто попытаюсь выполнить цифровую запись (контакт, HIGH); светодиод 3 В работает нормально, а светодиоды RGB на полосе не реагируют., @abolotnov

Использовали ли вы ШИМ для освещения светодиода на D1 или переключали выход с некоторой задержкой, чтобы убедиться, что это действительно контакт D1? Затем я хотел бы попытаться подключить перемычку от одного из контактов 3,3 В на плате NodeMCU к резистору, подключенному к затвору MOSFET, чтобы посмотреть, приведет ли это к срабатыванию транзистора и включению соответствующего канала светодиодной ленты., @Chupo_cro

Я уверен, что это правильный штифт. Я думаю, что-то с проводкой, или, может быть, мост не того типа или что-то в этом роде., @abolotnov

МОП-транзистор должен быть в порядке, я проверил таблицу данных. Попробуйте запустить МОП-транзистор, подключив вывод NodeMCU 3,3 В непосредственно к резистору на затворе транзистора, как я предложил в последнем комментарии. Или попробуйте запустить его внешним напряжением 3,3 или 5 В. Дважды проверьте, правильно ли подключена полоска: снимите полевой МОП-транзистор и используйте перемычку, чтобы закоротить контакты макета, где были истоки и стоки, прежде чем вы удалили транзистор., @Chupo_cro

Я не разобрался, но заметил, что иногда, когда я отцепляю nodeMCU от земли, светодиоды на полоске загораются ярко., @abolotnov

Ух ты, кажется, я понял — когда я меняю контакт D0 на Vin (в моем случае 5 В, так как я использую питание от USB), светодиоды на полосках работают. Означает ли это, что контакты D* не дают MOSTEF достаточного тока?, @abolotnov

Нет, ток затвора MOS**FE**T (не MOS**TE**F, я вижу, вы **повторяете** одну и ту же «печатную» ошибку) близок к нулю. Проблема может быть в напряжении, но я до сих пор не могу сказать, потому что вы еще не попробовали то, что я предложил уже дважды :-) Еще раз скажу: на плате NodeMCU есть несколько контактов, отмеченных **3** или с **3V3**. Подключите **один из этих** контактов к резистору в затворе транзистора, чтобы проверить, может ли **3,3 В от NodeMCU** запустить транзистор. Только тогда мы сможем узнать, что происходит., @Chupo_cro

Нет, 3х3 не запускает - только 5В., @abolotnov


1 ответ


Лучший ответ:

2

Итак, теперь мы наконец знаем, что причина в том, что пороговое напряжение MOSFET слишком велико. Решение состоит в том, чтобы управлять затвором с помощью NPN-транзистора (вы можете использовать BC547, 2N5551 или аналогичный). Вам необходимо подключить его коллектор к 5 В, а эмиттер к GND. Поместите резистор 10 кОм или 100 кОм между 5 В и коллектором, подключите коллектор к затвору МОП-транзистора, а GPIO к базе NPN-транзистора. Поставьте какой-нибудь резистор между GPIO и базой транзистора, возможно, 4k7 или аналогичный.

Примечание:
HIGH от GPIO выключит светодиодную ленту, а LOW включит ее включит.

Другое решение — использовать MOSFET с более низким пороговым напряжением.

РЕДАКТИРОВАТЬ:
Если вы хотите избежать добавления NPN-транзистора, вы можете использовать MOSFET NTD5867NL с максимальным пороговым напряжением 2,5 В, поэтому он наверняка будет работать с напряжением 3,3 В на затворе, но он довольно дорогой (около 4 долларов). Гораздо лучшее решение — добавить дешевый NPN-транзистор.

РЕДАКТИРОВАТЬ:
Вот схема:

schematic

ОБНОВЛЕНО:
Вот правильная проводка:

,

Можете ли вы посоветовать подходящую модель MOSFET?, @abolotnov

Я просмотрю некоторые другие МОП-транзисторы и напишу вам записку, если найду тот, который может работать., @Chupo_cro

Я отредактировал ответ и добавил данные о MOSFET, который наверняка будет работать с напряжением 3,3 В., @Chupo_cro

Большое спасибо, что решили вместе со мной эту проблему. Я хотел задать последний вопрос. Есть ли какие-нибудь платы драйверов светодиодных лент, которые я мог бы просто купить и подключить к своему nodeMCU? Я плохо разбираюсь во всей этой проводке и схемах (это видно), и чем дальше я продвигаюсь, тем лучше понимаю, что предпочитаю придерживаться программной стороны. Кроме того, я стараюсь закончить проект вовремя, чтобы сделать кому-нибудь рождественский подарок. Еще раз большое спасибо за вашу любезную помощь., @abolotnov

Я не знаю о такой плате драйвера. Я нашел только [это](http://www.ebay.com/itm/282283688390) и [это](http://www.ebay.com/itm/152310172498) контроллер светодиодной ленты RGB, но это еще один способ управления полосой. Он имеет встроенную микросхему для ШИМ, и вам необходимо отправлять данные с использованием сигналов синхронизации и данных. Это [техническое описание микросхемы](https://raw.githubusercontent.com/SeeedDocument/Grove-Chainable_RGB_LED/master/res/P9813_datasheet.pdf). Но вам действительно не нужно бежать от добавления еще одного транзистора, вы можете сделать это за минуту. Кстати, вы можете принять ответ, если он вам понравился :-), @Chupo_cro

Попробую подключить транзистор - с проводкой пока не разобрался. База, коллектор и все такое - надо сначала почитать :), @abolotnov

Вот вам схема. NPN-транзистор похож на MOSFET, за исключением того, что вместо G, S и D у вас есть B, E и C. Эмиттер отмечен стрелкой, а база — это место, куда вы подключаете сигнал от GPIO. Номиналы резисторов не имеют решающего значения, но если значения слишком высоки, вам может потребоваться снизить частоту ШИМ., @Chupo_cro

Думаю, мне не удалось их правильно подключить. [Я сделал проводку](https://www.dropbox.com/s/hempd2b8ntk3b8c/setup%20with%20transistor.png?dl=0), и светодиод не работает, НО если я отсоединю провод от базы транзистора и возьму голой рукой светодиод будет светиться :), @abolotnov

Пробовал без резисторов - не помогло Попробовал проверить напряжение на выводе 5В - оно 4,6В. Я также проверил целостность между различными проводами на плате (просто чтобы убедиться, что все подключено), и похоже, что теперь у меня нет выбора :), @abolotnov

Еще я попробовал другой блок питания для nodeMCU, этот дает 4,9В и 3А - не помогло; Еще пробовал подключить другую светодиодную ленту (обычную одного цвета) - тоже не помогло., @abolotnov

Вы не правильно подключили цепь. Вы подключили базу NPN-транзистора напрямую к затвору МОП-транзистора (результат такой, как будто NPN-транзистора нет), не хватает одного резистора и вы подключили коллектор NPN-транзистора к 3,3 В вместо 5 В. Если это даже так коллектор. Какой NPN-транзистор вы использовали?, @Chupo_cro

Вот вам схема подключения. Вы можете использовать те же 12 В, которые вы используете для питания светодиодной ленты, вместо 5 В, чтобы избежать использования трех разных напряжений. Но поскольку вы, вероятно, получаете 3,3 В от 5 В, то это не проблема, если вы используете 5 В. Конечно, МОП-транзистор должен быть n-канальным, а не таким, как на картинке., @Chupo_cro

Кстати, почему бы вам не принять правильный ответ только потому, что вы не подключили цепь в соответствии со схемой, которую я вам дал? :-), @Chupo_cro

Я снял этот флажок только потому, что люди обычно игнорируют ответы на вопросы, и, поскольку я еще не решил эту проблему, я хотел как бы дать другим возможность увидеть ответ на вопрос, вот и все. Это действительно работает сейчас. Огромное спасибо. Теперь я понимаю, что мне нужно как можно больше заниматься программированием и использовать оборудование OTB :) Еще раз большое спасибо!, @abolotnov

Одна вещь, которую я заметил, это то, что он работает в инвертированном режиме - например, когда я подключаю его, даже не включая nodemcu, светодиоды горят. А затем, когда nodemcu подает на вывод команду HIGH, светодиод гаснет. И если я уберу соединение между третьей ногой 2N5551 и +12 В, он продолжит работать так же без каких-либо различий. Я знаю, что, скорее всего, напутал с проводкой, и не могу перестать смеяться над тем, сколько времени я потратил на это, и над всеми неприятностями, которые я причиняю людям своими глупыми вопросами, но мне просто нужно было этим поделиться :), @abolotnov

На этот раз вы не испортили проводку :-) Взгляните на «примечание», которое я написал в своем ответе еще до того, как дал вам схему, где я сказал: «**HIGH** от GPIO отключится **off**». светодиодная лента и **LOW** включат его **вкл**». Это связано с тем, что транзистор NPN работает как инвертор. Что касается отказа от оборудования – не избегайте его! Быть программистом означает, что вы быстро учитесь, и ваша репутация SO подтверждает, что у вас есть такая способность. Так что вместо того, чтобы избегать — изучите это, это так же весело, как программирование. Я рад, что ваша схема наконец-то заработала, и надеюсь, что вы закончите подарок вовремя, до Рождества! :-), @Chupo_cro

В приведенной выше схеме переключение МОП-транзистора будет зависеть от тока коллектора, поскольку у меня есть источник 24 В/5 А, подключенный к стоку, для переключения мне дают 5 В на затворе., @Shreekant Prasad