Не понятное переключение реле

morgusha
Offline
Зарегистрирован: 15.09.2017

Всем привет ! Кто что может сказать, что может являться причиной не верной работы реле ! 

А работает оно так ! Если нагрузка не подключена. Нагрузка это лампа на 220В. То по прирыванию реле нормально щелкает 1 раз и либо включается либо выключается ! 

А вот если подключаю лампу, то оно срабатывает ни один раз а раза 2-3 подрят. Не могу понять в чем дело ? 

Может быть такое, что не хватает тока для размыкания контактов ? Подключено реле блоком питания от телефона который выдаёт 4.9В и 700мА так же к этому блокупараллельно подклчен сама ардуино. + на вход vin.

Ик датчик подключен на пин 5В. Вот скетч:

/*программа для ИК датчика E18-D80NK для включения света*/
#define IK_PIN 3 //порт ик датчика

volatile int znach = 1;

boolean svet = false;

void setup() 
{
  digitalWrite(13,LOW);
  pinMode(IK_PIN, INPUT);
  Serial.begin(9600); 
  attachInterrupt(1, pin_ISR, FALLING); // вызов прерывания номер 0 на 3 пине для leonardo а для nano прерывание 1
}

void loop() 
{
  
}

void pin_ISR(){
  znach = digitalRead(IK_PIN);
    if (znach == 0){
      Serial.print("seychas znach =");
       Serial.print(znach);
       Serial.print(" vizivaem prov_vkl");
        Serial.println("");
         prov_vkl();
      }
  }


  void prov_vkl(){
    if(svet == false){
      Serial.print("seychas znach vizovem funkchiu vkl");
        Serial.println("");
          vkl();
      }
      else{
        Serial.print("seychas znach vizovem funkchiu VIKL");
          Serial.println("");
            vikl();
        }
    
    }


    void vkl(){
       Serial.print("seychas vkl svet");
        Serial.println("");
         svet = true;
          digitalWrite(13,HIGH);
    }

    void vikl(){
        Serial.print("seychas vikl svet");
          Serial.println("");
            svet = false;
              digitalWrite(13,LOW);
    }

 

 

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

Сделайте сначала без прерываний. А то будете ловить неизвестно что - то ли помеху на пин, то ли штатное срабатывание.

morgusha
Offline
Зарегистрирован: 15.09.2017

sadman41 пишет:

Сделайте сначала без прерываний. А то будете ловить неизвестно что - то ли помеху на пин, то ли штатное срабатывание.

не понял ! помехи от чего ? от провода 220В ?

Пока луч не пересекаю никаких ложных срабатываний нет ! 

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

Да от всего подряд. Через External Interrupt проводком в 10 см можно даже включения-выключения 25ваттного паяльника ловить.

morgusha
Offline
Зарегистрирован: 15.09.2017

Пока луч не пересекаю никаких ложных срабатываний нет ! 

Блин печаль !  

Экранировать может провод 220В ?

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

Нет. Надо фильтровать помехи на пине. Самый дубовый способ - проверить его состояние через несколько мкс прямо в ISR(). Я как-то мерял наводки. Помехи от вкл-выкл короткие, сотня-две наносекунд вроде. ...Но это поможет, если они постоянно не валят. В противном случае нужно гасить их аппаратно. Но при таком мелком скетче хватит и простых проверок пина в лупе. 

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

Если вы считаете что лампа не излучает инфрарэд
и он не попадает к вам в приёмник то скорее всего вы заблуждаетесь.

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

trembo пишет:
Если вы считаете что лампа не излучает инфрарэд и он не попадает к вам в приёмник то скорее всего вы заблуждаетесь.

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

morgusha
Offline
Зарегистрирован: 15.09.2017

такое реле 

https://ru.aliexpress.com/item/One-1-Channel-5V-Relay-Module-Board-Shiel...

и такой вот датчик :

https://ru.aliexpress.com/item/1PCS-E18-D80NK-Adjustable-Infrared-Sensor...

Он вроде как защищён от помех по свету ! 

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

morgusha пишет:

https://ru.aliexpress.com/item/1PCS-E18-D80NK-Adjustable-Infrared-Sensor...

Он вроде как защищён от помех по свету ! 

Это легко проверяется. Включите лампу прямо в розетку и светите ему в глаз. Если соврали китайцы - реле будет клацать.

morgusha
Offline
Зарегистрирован: 15.09.2017

или такое вот реле исправит ситуацию ? 

https://ru.aliexpress.com/item/5V-DC-1-Channel-Solid-State-Relay-Board-m...

morgusha
Offline
Зарегистрирован: 15.09.2017

sadman41 пишет:

Это легко проверяется. Включите лампу прямо в розетку и светите ему в глаз. Если соврали китайцы - реле будет клацать.

проверял. не реагирует он на лампу !  помехи от самоиндукции катушки в реле которая ! 

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

Тогда попробуйте немного придушить помеху.
Например 1 килоом и 0.1 микрофарады.
Ну и привязку на входе включите.

morgusha
Offline
Зарегистрирован: 15.09.2017

trembo пишет:
Тогда попробуйте немного придушить помеху. Например 1 килоом и 0.1 микрофарады. Ну и привязку на входе включите.

Насолько верен вообще такой метод подключения - параллельный ! Норм ? От него не может зависить ? 

 

 

morgusha
Offline
Зарегистрирован: 15.09.2017

sadman41 пишет:

Нет. Надо фильтровать помехи на пине. Самый дубовый способ - проверить его состояние через несколько мкс прямо в ISR(). Я как-то мерял наводки. Помехи от вкл-выкл короткие, сотня-две наносекунд вроде. ...Но это поможет, если они постоянно не валят. В противном случае нужно гасить их аппаратно. Но при таком мелком скетче хватит и простых проверок пина в лупе. 

А можно как то решить при помощи   noInterrupts(); ?

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

Что вы хотите этим добиться?

morgusha
Offline
Зарегистрирован: 15.09.2017

sadman41 пишет:

Что вы хотите этим добиться?

Ну вот с датчика пришел сигнал, сработало прерывание. После этого запретить все прерывания на пол секунды скажем. Я думаю пол секунды вполне хватит чтобы сработал остальной код и свет включился, а помехи при включении реле не успеют за это время вызвать ещё раз прерывание ? Так можно ?)

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

При входе в ISR прерывания и так запрещаются без вашего вмешательства. При выходе - разрешаются. 

Но вот то, что вы придумали - это китайская акробатика на трубах. Просто поставьте фильтр, как trembo посоветовал или перепроверьте состояние пина через пару мкс внутри ISR. Или откажитесь от прерывания.

Фантазировать имеет смысл, если вы можете это реализовать. Если нет - пользуйтесь проверенными решениями.

 

Гриша
Offline
Зарегистрирован: 27.04.2014

morgusha пишет:

и такой вот датчик :

https://ru.aliexpress.com/item/1PCS-E18-D80NK-Adjustable-Infrared-Sensor-Switch-3-80cm-for-Arduino-Infrared-Sensor-Switch/32753665402.html?spm=a2g0s.9042311.0.0.ZEVGJ1

Он вроде как защищён от помех по свету ! 

 Фотоэлектрический датчик (фотоэлектрический переключатель) NPN обычно открыт
Технические параметры фотоэлектрического переключателя E18:
1, выходной ток, выход, dc/SCR/реле управления: 100ma/5 В Supply
2 потребляемого тока <25ма 
 (NPN обычно открыт) -  с подтяжкой все впорядке??? может ее загрубить?!
trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

morgusha пишет:

Насолько верен вообще такой метод подключения - параллельный ! Норм ? От него не может зависить ?

Нет, абсолютно не норм.
У вас ток мощьной нагрузки протекает по проводам питания
Ардуины вызывая в них падение напряжения.
Вообще-то желательно подключать любые устройства к питанию
каждое отдельным проводом.
Если по простому - веером.