Релейный модуль зависает

Elefant
Offline
Зарегистрирован: 03.05.2019

Здравствуйте! Проблемка такая:

Есть плата d1 &wifi

Подключаю к ней релейный модуль Low Level Trigger

const int ledrelay = 4;
pinMode(ledrelay, OUTPUT);
digitalWrite(led, 1);
digitalWrite(led, 0);

Это ему посылаю.
Релей включается и больше не реагирует на комманды.
Подключил тестер в цепь земля и управляющий пин (4) В режиме 0 - 0 В в режиме 1 - 3,28В
Все работает и команды проходят.
Подключаю реле. Питание от платы. На In реле подается инфа с 4 пина платы.
В режиме  1 - 3,31В, в режиме 0 - 0,12в И реле не отключается :(

На реле нагрузка не подключена никакая.
Как починить? Перепробовал 5 релюшек и все ведут себя одинаково плохо

 

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

И не отключится. Ты бы хоть между хочу хочу "0" и хочу "1" какую нибудь паузу (delay или millis) пристроил. Иначе магнитный гистерезис удержит реле в сработанном состоянии.

Elefant
Offline
Зарегистрирован: 03.05.2019

Паузы там предостаточно. Команда на включение отключение приходит из браузера. Урлы я не умею ручками быстро менять :) Я просто код сократил чтобы не спамить т.к. имхо проблема где-то в железе

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Elefant пишет:

Паузы там предостаточно. Команда на включение отключение приходит из браузера. Урлы я не умею ручками быстро менять :) Я просто код сократил чтобы не спамить т.к. имхо проблема где-то в железе

Так в сокращённом коде у вас идёт быстрая смена состояния, в зависимости от уровня срабатывания реле, либо "выкл и держать вкл", либо "вкл и держать выкл". Две последовательные строчки digitalWrite недвусмысленно об этом намекают.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Elefant пишет:

Здравствуйте! 

Здравствуйте! 

Elefant пишет:

Проблемка такая:

Есть плата d1 &wifi

Хуже было-бы если не было.

Elefant пишет:

Это ему посылаю.

Релей включается и больше не реагирует на комманды.
Подключил тестер в цепь земля и управляющий пин (4) В режиме 0 - 0 В в режиме 1 - 3,28В
Все работает и команды проходят.
Подключаю реле. Питание от платы. На In реле подается инфа с 4 пина платы.
В режиме  1 - 3,31В, в режиме 0 - 0,12в И реле не отключается :(

На реле нагрузка не подключена никакая.
Как починить? Перепробовал 5 релюшек и все ведут себя одинаково плохо

 

А чего - настолько засекреченная программа, что и опубликовать нельзя? Или стесняетесь - так тут как у проктолога: все будет в говне. Возможно, что Ваша проблема решится с подачи Мужа_, а может и нет. Программу в студию!

Elefant
Offline
Зарегистрирован: 03.05.2019

программа абсолютно не секретная и многим не интересен ее код, ну если это поможет, то вот, пожалуйста
 

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

const char* ssid = "----";
const char* password = "-----";


ESP8266WebServer server(80);

const int ledrelay = 4;
const int led = 1;

void handleRoot() {
  digitalWrite(led, 1);
  server.send(200, "text/plain", "hello from esp8266!");
  digitalWrite(led, 0);
}

void handleNotFound(){
  digitalWrite(led, 1);
  String message = "File Not Found\n\n";
  message += "URI: ";
  message += server.uri();
  message += "\nMethod: ";
  message += (server.method() == HTTP_GET)?"GET":"POST";
  message += "\nArguments: ";
  message += server.args();
  message += "\n";
  for (uint8_t i=0; i<server.args(); i++){
    message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
  }
  server.send(404, "text/plain", message);
  digitalWrite(led, 0);
}

void setup(void){
  pinMode(led, OUTPUT);
  pinMode(ledrelay, OUTPUT);
 
  Serial.begin(9600);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  if (MDNS.begin("esp8266")) {
    Serial.println("MDNS responder started");
  }

  server.on("/", handleRoot);

  server.on("/on", [](){
    server.send(200, "text/plain", "this works as well on");
    digitalWrite(ledrelay,1);
    Serial.println("high");
  });

  server.on("/off", [](){
    server.send(200, "text/plain", "this works as well off");
    digitalWrite(ledrelay,0);
    Serial.println("low");
  });

  server.onNotFound(handleNotFound);

  server.begin();
  Serial.println("HTTP server started");
}

void loop(void){
  server.handleClient();
}

 

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

Elefant пишет:

Паузы там предостаточно. Команда на включение отключение приходит из браузера. Урлы я не умею ручками быстро менять :) Я просто код сократил чтобы не спамить т.к. имхо проблема где-то в железе

Ещё раз ... Если у тебя в Лупе циркулирует "Хочу "0",  и иногда, без фиксации, проходит кратковременная команда Хочу "1", потом в Лупе сразу же Хочу "0" - так "0" и будет. Не отлипнет. Скетч нужен. 

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

Для начала может переставить функцию void handleNotFound() после Сетапа.

 

Elefant
Offline
Зарегистрирован: 03.05.2019

Delay поставил

digitalWrite(ledrelay,0);
    delay(1000);

ничего не поменялось

sadman41
Offline
Зарегистрирован: 19.10.2016

Обычная ардуина есть? С ней работает?

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

Муж_Долговой пишет:

Для начала может переставить функцию void handleNotFound() после Сетапа.

 

и void handleRoot() тоже

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

Elefant пишет:

Delay поставил

digitalWrite(ledrelay,0);
    delay(1000);

ничего не поменялось

По названию релейного модуля предполагаю, что он "0" включается. И пауза после "0" его не отключит.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

Муж_Долговой пишет:

Муж_Долговой пишет:

Для начала может переставить функцию void handleNotFound() после Сетапа.

 

и void handleRoot() тоже

какая мотивация?

Elefant
Offline
Зарегистрирован: 03.05.2019

Упростим задачу

#include <Arduino.h>
const int ledrelay = 4;
void setup() {
  // put your setup code here, to run once:
  pinMode(ledrelay, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(ledrelay,1);
    delay(5000);
    digitalWrite(ledrelay,0);
    delay(5000);
}

Результат тот же. Проблема та же. По тестеру цифры аналогично

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

А если подсмотреть по монитору порта?

А если и светодиод, подключеный вместо реле, моргает 5/5 секунд ... надо схему подключения реле поподробнее смотреть.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Elefant пишет:

Упростим задачу

#include <Arduino.h>
const int ledrelay = 4;
void setup() {
  // put your setup code here, to run once:
  pinMode(ledrelay, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(ledrelay,1);
    delay(5000);
    digitalWrite(ledrelay,0);
    delay(5000);
}

Результат тот же. Проблема та же. По тестеру цифры аналогично

Дык забейте на программу - у Вас скорее всего аппаратная проблема. Не надо ничего писать  - просто подайте на вход реле низкий и высокий уровень. Если ничего не произойдет - то я прав :)

Elefant
Offline
Зарегистрирован: 03.05.2019

я по тестеру вижу как скачет напряжение и по светодиоду, что реле не отлипает

что код еще городить?

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

тип реле и схема, как запитано реле ?

недавно трахались с вавгатом, при питании реле от 5 вольт оно не работало.

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

[/quote]

какая мотивация?

[/quote]

А какая мотивация телегу впереди осла коннектить?

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Elefant пишет:

я по тестеру вижу как скачет напряжение и по светодиоду, что реле не отлипает

что код еще городить?

Я надеюсь, что реле не прямо на пине сидит... 

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

Муж_Долговой пишет:

Цитата:

какая мотивация?

А какая мотивация телегу впереди осла коннектить?

ааа..., ну это аргумент, безусловно.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Муж_Долговой пишет:

А какая мотивация телегу впереди осла коннектить?

Вы неправы - с порядком определения функций там всё нормально: они объявляются и определяются ДО первого использования (в setup).

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

DIYMan пишет:

Муж_Долговой пишет:

А какая мотивация телегу впереди осла коннектить?

Вы неправы - с порядком определения функций там всё нормально: они объявляются и определяются ДО первого использования (в setup).

Таки я не требовал ... а предложил "может". Никто не знает, как компилятор скомпилирует и что из этого выйдет.

Elefant
Offline
Зарегистрирован: 03.05.2019


Релюха такая.

Подключение
VCC на +5 платы
GND на GND
IN на 4 пин платы
Всё питается через USB от компа

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Муж_Долговой пишет:

Никто не знает, как компилятор скомпилирует и что из этого выйдет.

Стандарт С++ знает, тащемта.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

VCC срочно на 3.3 вольта !!!!

Elefant
Offline
Зарегистрирован: 03.05.2019

IN с релюхи идет прямо на 4 пин ардуинки

Везде так нарисовано подключение....

Elefant
Offline
Зарегистрирован: 03.05.2019

перекинул на 3,3 
зеленый диод стал моргать 5/5 вроде как надо, а релеха не щелкает :(

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

ну если кратко, видимо сейчас питания 3.3 не хватает для реле

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

по уму, выкинуть этот модуль и брать в будующем только с опторазвязкой.

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

Последний от меня вопрос ... чисто фантастический ... ничего лмчного.

Дело в том, что с платами D1 &WIFI бывает настоящая путаница. У некоторых пины D совпадают с GPIO, у некоторых нет.

Потому и предлагаю на пин 4 вставить "-" светодиода, а "+"  через 1,5 кОм на VCC.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

Муж_Долговой пишет:

Последний от меня вопрос ... чисто фантастический ... ничего лмчного.

Дело в том, что с платами D1 &WIFI бывает настоящая путаница. У некоторых пины D совпадают с GPIO, у некоторых нет.

Потому и предлагаю на пин 4 вставить "-" светодиода, а "+"  через 1,5 кОм на VCC.

да ни в этом там дело....

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Elefant пишет:

Релюха такая.

Так на ней написано 5В. У Вас или БП- говно или Вы подключили неправильно.

Elefant
Offline
Зарегистрирован: 03.05.2019

Вы будете смеяться но заработало после 3,3 на питание релюхи. Взял другую и она завелась! 
Подскажите какие лучше брать чтоб без глюков были. Если можно то ссылочку на али.

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

И что мешает проверить? Светодиода под рукой нету?

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

там схема реле хитрожопая с общим колектором, поэтому при питании от 5 вольт, 3.3 логика его не включает.

 

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Elefant пишет:

Вы будете смеяться но заработало после 3,3 на питание релюхи. Взял другую и она завелась! 
Подскажите какие лучше брать чтоб без глюков были. Если можно то ссылочку на али.

Смеятся не будем - устойчивость данного аппарата очень низкая. Будем Вам сочувствовать.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

Elefant пишет:

Вы будете смеяться но заработало после 3,3 на питание релюхи. Взял другую и она завелась! 
Подскажите какие лучше брать чтоб без глюков были. Если можно то ссылочку на али.

кликабельно

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Муж_Долговой пишет:
Никто не знает, как компилятор скомпилирует и что из этого выйдет.
Ну, так уж и никто. Вы предложили неправильный вариант, который случайно работает в некоторых версиях IDE (а в других - нет). У ТС было правильно и так работает всегда.

SLKH
Offline
Зарегистрирован: 17.08.2015

xDriver пишет:

там схема реле хитрожопая с общим колектором, поэтому при питании от 5 вольт, 3.3 логика его не включает.

 

там совершенно нормальная схема, расчитанная на рабочее напряжение 5в.  

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

SLKH пишет:

xDriver пишет:

там схема реле хитрожопая с общим колектором, поэтому при питании от 5 вольт, 3.3 логика его не включает.

 

там совершенно нормальная схема, расчитанная на рабочее напряжение 5в.  

а это не ваши слова ?

SLKH пишет:

xDriver пишет:

ua6em пишет:

а зачем Вам схема, там три резистора, три диода да транзистор, соединить можно только по классичекой схеме, а вот ежели бы был оптрон и один из входных выводов оного посажен на Vcc, тады да, управлялся бы инверсными сигналами...
Да и к чему полемика - ТС оно уже видимо не нужно )))

понятно, главное было классически г.. вбросить.

схема нашлась:http://zelectro.cc/relaymodule

1. я не стал бы доверять люям, которые рисуют такие схемы.

2. схема релейного блока у ТС может быть другой.

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

А чё? Схема как схема. Если контуры обвести ... красивый китайский дракон вырисовывается. 

Elefant
Offline
Зарегистрирован: 03.05.2019

заказал на али то, что посоветовали.
Проверил 3 из пяти релюшек, что были в наличии, глючили и не щелкали как подобается от 3,3 В
И тут ХЗ. Толи схема у китайцев кривая или просто брак :(

SLKH
Offline
Зарегистрирован: 17.08.2015

xDriver пишет:

SLKH пишет:

xDriver пишет:

там схема реле хитрожопая с общим колектором, поэтому при питании от 5 вольт, 3.3 логика его не включает.

 

там совершенно нормальная схема, расчитанная на рабочее напряжение 5в.  

а это не ваши слова ?

 

мои.

До сих пор на просторах arduino.ru не встречались китайские релейные модули, рассчитанные на управление от 3  вольт (или другими напряжениями, кроме 5 вольт). А вот полное отсутствие понимания элементарных вещей - сплошь и рядом. Хроническая проблема: "есть входы VCC, GND и IN, как мне включить/выключить реле?"

SLKH
Offline
Зарегистрирован: 17.08.2015

Elefant пишет:

заказал на али то, что посоветовали.
Проверил 3 из пяти релюшек, что были в наличии, глючили и не щелкали как подобается от 3,3 В
И тут ХЗ. Толи схема у китайцев кривая или просто брак :(

А текст на корпусе реле "5VDC" ни на какие мысли не наводит? Интересно, как пятивольтовому реле полагается щелкать от 3 вольт?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

При ваших 3.3 Вольтах лог."1"
дэльты с пяти (1.7) хватает чтобы открыть оптрон.
Попробуйте выход подключить через диод.

SLKH
Offline
Зарегистрирован: 17.08.2015

trembo пишет:
При ваших 3.3 Вольтах лог."1" дэльты с пяти (1.7) хватает чтобы открыть оптрон. Попробуйте выход подключить через диод.

судя по картинке с #23, оптрона там нет, попался вариант с транзистором.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Короче - если транзистор не открывается от 3,3В - замените резистор на базе, а питание реле от энтих 3,3В - это рулетка. Может сработать, а может и не сработать. Со временем и при нагреве катушки реле контакт будет отпускаться. Возможно искрение и подгорание контакта реле. Для надежного аппарата - это не подход.

Messiah
Messiah аватар
Offline
Зарегистрирован: 10.11.2018

Ох уже эти релейные модули... я на них видал и КЗ между + и - (дымятся офигенно!) и пробитые транзисторы... Если одно реле - проще ключ самому собрать, если нужна сборка - есть готовые микрохи на 8 штук 2N2222, возможно даже есть такие что с резисторами на базах... Вообще реле с питанием катушки от 3.3V ни для какой серьезной нагрузки не подходят. Мне на нужный ток не удалось найти реле на 5V, пришлось брать катушку на 12. Да, оно стабильно работает при питании даже 7-8...

nik182
Offline
Зарегистрирован: 04.05.2015

Ну вы как дети. Реле это электромеханическое устройство. Срабатывает методом перетягивания пружинки электромагнитом. В электромагните главное ток. В параметрах на реле всегда ток срабатывания и сопротивление обмотки. Пружинки тоже сделать одинаковыми нелегко. Поэтому указываемое на реле напряжение всегда больше напряжения срабатывания, что бы гарантированно реле сработало.  И току реле хочет в первый момент много. Поэтому в схемах на питание цепи управления реле всегда ставят электролиты. Вот удержание требует меньше тока и соответственно держать реле можно меньшим напряжением, а уж отпускать... А наши китайские друзья пренебрегают схемотехникой, русские умельцы вешают реле на +5 с платы и удивляются что не работает.

При питании реле от отдельного источника ни разу не имел проблем. Это намёк.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

nik182 пишет:

При питании реле от отдельного источника ни разу не имел проблем. Это намёк.

А что, кто-то пытается запитать реле от стабилизатора Ардуинки?