Включается реле после выключения напряжения в сети

Тема в разделе "Arduino & Shields", создана пользователем nkYellOw, 12 сен 2018.

  1. nkYellOw

    nkYellOw Нерд

    Добрый день товарищи! Ситуация такая: выключаю реле и включаю через 5 секунд ( в реле входит земля от розетки и земля на сетевой фильтр). Если ардуино обесточить то реле остается замкнутым и розетка включена. Хочется что бы если нет питания на ардуино то цепь размыкалась. Подскажите что нужно сделать? Фото ниже http://joxi.ru/GrqVQQds4nadMm
    Код (C++):
    #define RELAY_ROZETKA 8 // розетка
    #define RELAY_ON HIGH
    #define RELAY_OFF LOW

    void setup()
    {
      Serial.begin(9600);
      pinMode(RELAY_ROZETKA, OUTPUT);
      digitalWrite(PIN_RELAY, RELAY_OFF);
    delay(5000);
    digitalWrite(PIN_RELAY, RELAY_ON);
    }

    void loop()  {}
     
  2. Mitrandir

    Mitrandir Гуру

    На реле есть нормально-замкнутый и нормально разомкнутый контакт
    У вас в нормально замкнутый вставлено
    Раз обезточено управление то реле пропускает ток
     
    nkYellOw и Daniil нравится это.
  3. Mitrandir

    Mitrandir Гуру

    Какая распиновка реле? На фото не видно названий зажимных клемм
     
    nkYellOw нравится это.
  4. nkYellOw

    nkYellOw Нерд

    там ничего не написано =(((
    Есть только рисунки)))
    http://joxi.ru/p27gll6FK3e582
    [​IMG]
     
  5. Mitrandir

    Mitrandir Гуру

    Рисунок означает что в выключенном состоянии центральный соединен с нижним когда подаете питание центральный переходит на верхний
     
    nkYellOw нравится это.
  6. nkYellOw

    nkYellOw Нерд

    Я только понял, что управляемую нагрузку (сетевой фильтр) я кидаю на нормально разомкнутый контакт. А источник напряжения на вывод COM. Но у меня ничего не написано на реле :D и если методом тыка втыкать провода, то они работают только в одном положении - как на картинке =(
     
  7. AlexU

    AlexU Гуру

    Если надо при отключении питания отключать сетевой фильтр, то провод сетевого фильтра нужно перекинуть на другой контакт реле -- на картинке выше надписи "идёт в розетку".
    И ещё, реле в таких модулях включается замыканием управляющего пина на землю, т.е., если управляющий пин модуля реле подключён напрямую к пину Ардуино, то при "1" на пине Ардуино -- реле будет выключено, при "0" -- включено.
     
    nkYellOw нравится это.
  8. AlexU

    AlexU Гуру

    Если верить фотке, то как раз наоборот -- на нормально замкнутый контакт.
     
    nkYellOw нравится это.
  9. SergeiL

    SergeiL Оракул Модератор

    Добавлю, что перекидывавть нужно провод с нижнего контакта реле на верхний (по картинке).
    Средний, оставить на месте.
     
    nkYellOw и Mitrandir нравится это.
  10. nkYellOw

    nkYellOw Нерд

    Да я по середине оставил землю с розетки а землю с сетевого фильтра кинул на верх, переписал скетч. теперь при LOW включается сетевой фильтр а при HIGH выключается. И когда убираю напряжение с ардуино то сетевой фильтр тоже вырубается, УРА, СПАСИБО ТОВАРИЩИ!

    НО теперь другая проблема. При подаче напряжения на ардуино, на доли секунды врубается сетефой фильтр, потом в скетче он получает значение HIGH и вырубается. Как то можно это убрать?

    в сетапе нет строки включения, только :
    Код (C++):
    pinMode(8, OUTPUT);
      delay(100);
      digitalWrite(8, HIGH);
      delay(100);
     
  11. SergeiL

    SergeiL Оракул Модератор

    А зачем delay(100); смело убирайте!
     
    nkYellOw нравится это.
  12. AlexU

    AlexU Гуру

    Если по-честному, то:
    Код (C++):
    digitalWrite(8, HIGH);
    pinMode(8, OUTPUT);
    именно в таком порядке.
    Но с Ардуиновскими функциями нужно быть осторожными -- мало ли что они там в новых версиях начудили.
    Общий смысл должен быть следующим:
    1. подтягиваем пин к питанию через внутреннюю подтяжку -- digitalWrite(8, HIGH) (вот только надо убедится, что данная функция просто делает подтяжку, так реализовано в версиях 1.6.х)
    2. делаем пин выходным -- pinMode(8, OUTPUT) -- при этом на выходе пина будет сразу высокий уровень.
    Если в обратном порядке вызвать функции, то пин станет выходным с низким уровнем, а потом изменит состояние на высокий уровень. Но стоит отметить, что данное изменение может произойти очень быстро и реле не успеет переключиться. В общем экспериментируйте....
     
    SergeiL, Mitrandir и nkYellOw нравится это.
  13. nkYellOw

    nkYellOw Нерд

    Спасибо! Да это логично и просто =) но не додумался бы никогда ;) буду пробовать
     
  14. nkYellOw

    nkYellOw Нерд

    убрал и все работает как я хотел. Спасибо огромное!!
     
  15. SergeiL

    SergeiL Оракул Модератор

    Залез в даташит, посмотрел состояние порта на AVR по умолчанию - режим высокоимпендансного входа.
    Поэтому, для AVR, для получения первоначальной "1" на выходе, действительно нужно сначала включить подтяжку, а потом переключить порт на выход. Да и внешняя подтяжка будет не лишней.
    Забыл :(, помню, что на 8051, на выводах портов состояние по умолчанию было "1".
     
    nkYellOw нравится это.
  16. nkYellOw

    nkYellOw Нерд

    Спасибо вам огромное!!!!!