Проблемы с NodeMCU и реле

Я подключил микроконтроллер к дешевому китайскому автомобильному зарядному устройству для телефона с напряжением 24/12 В на 5 В и подключил несколько проводов к реле. Когда я пытаюсь запрограммировать, неважно, установлен ли вывод на высокий или низкий уровень. Как только я подключаю провод «IN» от реле к любому из выбранных выводов, реле автоматически активируется.

вот схема Вход зарядного устройства подключен к 12-вольтовой батарее дрели для тестирования, а выход на Arduino представляет собой USB-порт, к соответствующим полюсам которого я припаял провода.

USB from Chinese charger Positive pole ------- NodeMcu Vin
USB from Chinese charger Negative pole ------- NodeMcu GND
USB from Chinese charger Positive pole ------- Relay   VCC
Relay Ground --------------------------------- NodeMcu Gnd
Relay DataPin -------------------------------- NodeMcu D0 or D1 

А вот и код:

int port = D0;
int portB = D1;

void setup() {
Serial.begin(115200);
pinMode(port,OUTPUT);
pinMode(portB,OUTPUT);

digitalWrite(port,HIGH);
digitalWrite(portB,LOW);

}


void loop() {

}     

Но в результате реле всегда будет включено (контакт IN = низкий), даже если оно подключено к D0, который имеет высокий уровень... Есть идеи?

, 👍0

Обсуждение

Извините, исправлено, «это» имелось в виду контакт данных реле, @Lucas Medeiros

Вероятно, одна сторона реле подключена к положительному напряжению... подключение другой стороны реле к штырю перегружает схему штыря и активирует реле., @jsotola

реле может потребовать больше, чем 3,3 В, чтобы показывать высокий уровень, попробуйте подать 5 В на контакт данных реле и посмотрите, активируется ли оно. Если это так, то оно предназначено для устройств Arduino с напряжением 5 В, а не 3,3 В. Кстати, я купил несколько видов, и это распространено среди модулей с одним реле, но по какой-то причине все несколько видов модулей с двумя реле, которые я купил, отлично работают с моими nodeMCU., @dandavis

Обратите внимание, что вы также можете использовать выводы SD логического MOSFET-транзистора для подключения линии данных реле к земле и использовать резистор 100 кОм от 5 В для передачи данных, чтобы подтянуть их вверх; когда вы устанавливаете вывод на высокий уровень, он включает затвор и подтягивает сигнал 5 В к земле. Мне нравится irlz44n для большинства приложений с напряжением 3,3 В., @dandavis

некоторые реле удерживают катушку при НИЗКОМ сигнале и отпускают при ВЫСОКОМ, @Juraj

Я попробую варианты выше, затем вернусь с результатами, и, возможно, я не смогу получить irlz44n, и да, мое реле удерживается на низком уровне, но даже если подключить D0, установленный на высокий уровень, оно удерживает катушку так, как будто она на низком уровне., @Lucas Medeiros

О, и выход зарядного устройства составляет 5 В и он подключен к Vin микроконтроллера и реле vcc., @Lucas Medeiros

то ясно, что 3,3 В не является ВЫСОКИМ сигналом для реле, работающего при 5 В, @Juraj


1 ответ


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

1

Ваш nodemcu напрямую питает реле? Если это так, то 3,3 В (высокий уровень на выходе nodemcu) недостаточно для его активации. Я бы использовал транзистор типа s8050 для питания (не забудьте обратный диод на катушке реле)

,

Вы правы, я совсем забыл, что цифровое напряжение микроконтроллера составляет 3,3 В, а не 5 В, и он не смог правильно управлять реле, большое спасибо., @Lucas Medeiros

@LucasMedeiros, это было в комментариях dandavis, @Juraj

Вы можете попробовать подать на ESP 3,6 В или 3,7 В вместо 3,3 В; это должно работать нормально (в пределах/соответствии со спецификацией ESP) и может быть достаточным для срабатывания реле при высоком уровне, поскольку VCC (и, следовательно, D1@HIGH) будут повышены., @dandavis