• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Lolin+реле

Ksiw

New member
Собственно сабж. Вот такая платка

и такая релюха

Вопрос самый примитивный, настолько, что аж стыдно спрашивать, однако голова уже пухнет, ибо происходит странное:
Вообщем, подключаю
GND-> GND,
VCC(реле) -> VU(плата) (загорается красный светодиод)
IN(реле) -> D7(плата) (загораются оба, щелчок реле)
Реле постоянно включено и не выключается! Хоть убей!

Если вместо него на GND и D7 повесить светодиод, то тот чудесно работает так, как того требует код. И включается и выключается. С++ владею нормально. Ошибка типа вешаю не на ту ногу исключена. Вывод в монитор порта сообщает о нормальной работе. Реле превосходно включается и отключается на ардуино UNO, однако на этой плате непременно остается включенным, светодиод, повторюсь, на его месте нормально включается-выключается. Даже если подключить светодиод параллельно реле, он нормально реагирует на вкл/выкл, но реле остается включенным.
Пытался использовать внешнее питание 5V для реле, объединяя землю платы и источника питания, с тем же результатом.
Прошу помощи, ибо уже литр крови пролил, пытаясь понять где собака порылась.

UPD: Если анодом диода воткнуть на D7(сигнал), а катод на IN реле, то работает, но строго наоборот коду: при выкл включается, при вкл отключается. О_о
Пусть было бы так, но получается , что при снятии питания с платы и повторной подаче, реле автоматом переходит во ВКЛ, что соответсвует несанкционированному пуску нагрузки, что недопустимо.
 
Последнее редактирование:

Юрий Ботов

Moderator
Команда форума
Помнится мне D7 используется при начальной загрузке в чип кода из флэша... Скорее всего на этом выводе стоит какой нибудь подтягивающий его резистор ... посмотрите на плату или если есть на схему.
 

Ksiw

New member
Юра, спасибо за столь быстрый ответ!
Для пробы тыкал в совершенно однозначные D1 и D2, с аналогичным результатом.
Неужели никто не сталкивался с необходимостью подключить реле к подобным платам?
То же самое на Wemos D1.
Еще момент: если цеплять на ноги, не определенные в коде как pinMode(Pin, OUTPUT); , то зеленый светодиод не загорается.
Что инициализация может меняет на аппаратном уровне?
 

Юрий Ботов

Moderator
Команда форума
Неужели никто не сталкивался с необходимостью подключить реле к подобным платам?
лично я - нет. Для этого у меня есть игрушки помощнее.
Еще момент: если цеплять на ноги, не определенные в коде как pinMode(Pin, OUTPUT); , то зеленый светодиод не загорается.
а вот это как раз нормально
Что инициализация может меняет на аппаратном уровне?
при старте в течении нескольких микросекунд на ногах D5-D8 может быть все что угодно и оно будет постоянно меняться.

Но должен признать, что на схеме стандартной NodeMcu я не нашел резисторов подтягивающих D7. У lolin их больше, но схемы и самих lolin-ов у меня нет. Посмотрите на модуль под лупой - не идет ли нога gpio13 (D7) к какому нибудь двух-шести-ногому микробу.
 

Victor

Administrator
Команда форума
Реле превосходно включается и отключается на ардуино UNO, однако на этой плате непременно остается включенным
У ESP8266 TTL логика 3,3в, а в Arduino UNO 5v
Возможные варианты решений:
1. используйте твердотельное реле (обычно на 3,3 TTL нормально срабатывают даже пятивольтовые)
2. понизьте питающее напряжение реле до 4,5в - должно заработать
3. конвертер уровней
4. транзистор
....
 

Юрий Ботов

Moderator
Команда форума
Взял обычную NodeMcu, взял подобное реле (отличается только тем что рассыпуха навесная а не поверхностного монтажа) все работает правильно. Проверял D2,D7. Реле питал от 5В. Все щелкает правильно. Отсюда мысли:
- релюха находится в активном состоянии при "0" на входе IN. Там на плате транзистор он инвертирует сигнал, и из за него релюха не может шунтировать выход проца.
- если у вас щелкает сразу и потом больше не отпускает значит на входе релюхи всегда "0".
- возьмите тестер и посмотрите что реально на выходе D7, когда вы что то переключаете.
- если на D7 всегда 0 - смотрите на саму lolin - нет ли где закоротки на плате...капля олова не туда упала . И ищите проблему в программе, например вы можете выводить что то в D7 при том что она не инициализирована как выход.
 

Ksiw

New member
Ребята, вообщем подал питание на реле вместо 5 3,3В. Оно действитетельно стало откликаться на команды, однако инвертировано: при вкл оно выкл, и наоборот.

Видимо, реле оставалось постоянно включенным из-за тока VCC-> IN, ведь разница напряжений даже при 1 на D2 (HIGH сигнал на выводе платы) 1,8В, чего, как оказалось, достаточно для переключения реле.
Плата выдает напряжения корректно, как и ожидалось/
Юрий, Вы видимо правы насчет нуля на IN, но тогда встречный вопрос: почему на UNO работает правильно? Как побороть инвертированное поведение релюхи?
IMG_20161031_212632.jpg IMG_20161031_212647.jpg
На фото видим, сигнал подан - всетодиод горит, реле выкл.
Сигнал отключен - реле вкл.

UPD. Соврал. Сейчас перепроверил: на ардуине тоже инвертированно.
 
Последнее редактирование:

Юрий Ботов

Moderator
Команда форума
Бороть бесполезно ибо там танзистор стоит на релюхе (такая маленькая фигня с тремя ножками...). Просто в коде надо инвертировать. Ну или совсем лень - поставьте ЕЩЕ один транзистор.
 

Ksiw

New member
Бороть бесполезно ибо там танзистор стоит на релюхе (такая маленькая фигня с тремя ножками...). Просто в коде надо инвертировать. Ну или совсем лень - поставьте ЕЩЕ один транзистор.
Да, PNP, S8550.
В коде проще)
 
Последнее редактирование:
Сверху Снизу