Я пытаюсь подключить 12V RGB Led ленту (LTROP SMD 5050 RGB LED Light Strip) к блоку NodeMCU. Я знаю, что есть много различных руководств по этому вопросу, но я очень новичок в проводке и электрических цепях.
Я использовал n-МОП-транзисторы BUZ91A и резисторы 150 Ом для каждого из каналов RGB, а плата использует собственный источник питания через usb.
Я использую очень простой код, чтобы проверить, работает ли установка:
#define REDPIN D3
#define GREENPIN D1
#define BLUEPIN D2
#define FADESPEED 5 // make this higher to slow down
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 и светодиод используют разные источники питания, и тот факт, что они имеют общую землю, не кажется всем необходимым.
Итак, теперь мы наконец-то знаем причину - пороговое напряжение МОП-транзистора слишком высокое. Решением является управление затвором с помощью NPN транзистора (вы можете использовать BC547 или 2N5551 или аналогичный). Вы должны подключить его коллектор к 5 В, а эмиттер к GND. Поставьте резистор 10k или 100k между 5 В и коллектором, подключите коллектор к затвору MOSFET, а GPIO к базе NPN транзистора. Поставьте резистор между GPIO и базой транзистора, возможно, 4k7 или аналогичный.
Примечание: высокий уровень от GPIO будет выключать выключать светодиодную ленту, а низкий уровень будет включать ее включать.
Другое решение - использовать MOSFET с более низким пороговым напряжением.
EDIT: Если вы хотите избежать добавления NPN транзистора, вы можете использовать NTD5867NL MOSFET, который имеет максимальное пороговое напряжение 2,5 В, поэтому он наверняка будет работать с 3,3 В на затворе, но он довольно дорогой (около $4). Гораздо лучшим решением будет использование дешевого NPN транзистора.
ЭДИТ: Вот схема: