Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. light and relay turn on automatically !

light and relay turn on automatically !

Scheduled Pinned Locked Moved Troubleshooting
12 Posts 3 Posters 3.4k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Jan Gatzke

    @Reza

    The LED blinks when the radio is active. This could be caused by a bug in your code. Can you share your sketch?

    The light turning in by itself could be a forgotten rule in your controller or maybe a neighbor using mysensors, too? :D

    R Offline
    R Offline
    Reza
    wrote on last edited by
    #3

    @Jan-Gatzke
    thank you for answer.
    about blink i see this before ( bug in code ) and TX led was blink . but now L led is blink. 2 nodes have this problem . one a gas sensors, two is a relay 6 channel. this is strange because i use same code for other device , but for these ....
    my sketch:
    gas:

    #define MY_DEBUG
    #define MY_RADIO_NRF24
    #define MY_RF24_CHANNEL 0
    #define MY_NODE_ID 4
    #define MY_REPEATER_FEATURE
    
    #include <SPI.h>
    #include <MySensors.h>
    #include <avr/wdt.h>
    
    #define CHILD_GAS 3
    
    int mq2 = A0;
    int value;
    uint16_t GAS;
    
    MyMessage msg(CHILD_GAS, V_HUM);
    
    void setup()
    {
      pinMode(mq2, INPUT);
      wdt_enable(WDTO_4S);
    }
    
    void presentation()  {
      sendSketchInfo("R_M Gas sensor", "1.0");
      present(CHILD_GAS, S_HUM);
    }
      void loop()
      {
        value = analogRead(mq2);
        Serial.print("LPG SENSOR : ");
        if (value <= 60)
        {
          GAS = 0;
        }
        else
        {
          GAS = (value - 60) / 9.64;
        }
        Serial.println(GAS);
        send(msg.set(GAS));
        wait(60000);
      }
    

    relay:

    #define MY_DEBUG
    #define MY_TRANSPORT_WAIT_READY_MS 10000
    #define MY_RADIO_NRF24
    #define MY_RF24_CHANNEL 0
    #define MY_REPEATER_FEATURE
    #define MY_NODE_ID 160
    
    #include <SPI.h>
    #include <MySensors.h>
    #include <Bounce2.h>
    #include <avr/wdt.h>
    
    #define RELAY_ON 0
    #define RELAY_OFF 1
    
    #define A_ID 1
    #define B_ID 2
    #define C_ID 3
    #define D_ID 4
    #define E_ID 5
    #define F_ID 6
    
    const int buttonPinA = 14;
    const int buttonPinB = 15;
    const int buttonPinC = 16;
    const int buttonPinD = 17;
    const int buttonPinE = 18;
    const int buttonPinF = 19;
    
    const int relayPinA = 3;
    const int relayPinB = 4;
    const int relayPinC = 5;
    const int relayPinD = 6;
    const int relayPinE = 7;
    const int relayPinF = 8;
    
    int oldValueA = 0;
    int oldValueB = 0;
    int oldValueC = 0;
    int oldValueD = 0;
    int oldValueE = 0;
    int oldValueF = 0;
    
    
    unsigned long time_m;
    unsigned long a, b, c, d, e, f ;
    
    bool stateA = false;
    bool stateB = false;
    bool stateC = false;
    bool stateD = false;
    bool stateE = false;
    bool stateF = false;
    
    int trigger = 0;
    
    Bounce debouncerA = Bounce();
    Bounce debouncerB = Bounce();
    Bounce debouncerC = Bounce();
    Bounce debouncerD = Bounce();
    Bounce debouncerE = Bounce();
    Bounce debouncerF = Bounce();
    
    MyMessage msgA(A_ID, V_STATUS);
    MyMessage msgB(B_ID, V_STATUS);
    MyMessage msgC(C_ID, V_STATUS);
    MyMessage msgD(D_ID, V_STATUS);
    MyMessage msgE(E_ID, V_STATUS);
    MyMessage msgF(F_ID, V_STATUS);
    
    
    
    void setup()
    {
      wdt_enable(WDTO_4S); 
      pinMode(buttonPinA, INPUT_PULLUP);
      pinMode(buttonPinB, INPUT_PULLUP);
      pinMode(buttonPinC, INPUT_PULLUP);
      pinMode(buttonPinD, INPUT_PULLUP);
      pinMode(buttonPinE, INPUT_PULLUP);
      pinMode(buttonPinF, INPUT_PULLUP);
    
      // After setting up the buttons, setup debouncer
      debouncerA.attach(buttonPinA);
      debouncerA.interval(5);
      debouncerB.attach(buttonPinB);
      debouncerB.interval(5);
      debouncerC.attach(buttonPinC);
      debouncerC.interval(5);
      debouncerD.attach(buttonPinD);
      debouncerD.interval(5);
      debouncerE.attach(buttonPinE);
      debouncerE.interval(5);
      debouncerF.attach(buttonPinF);
      debouncerF.interval(5);
    
      // Make sure relays are off when starting up
      digitalWrite(relayPinA, RELAY_OFF);
      digitalWrite(relayPinB, RELAY_OFF);
      digitalWrite(relayPinC, RELAY_OFF);
      digitalWrite(relayPinD, RELAY_OFF);
      digitalWrite(relayPinE, RELAY_OFF);
      digitalWrite(relayPinF, RELAY_OFF);
      // Then set relay pins in output mode
      pinMode(relayPinA, OUTPUT);
      pinMode(relayPinB, OUTPUT);
      pinMode(relayPinC, OUTPUT);
      pinMode(relayPinD, OUTPUT);
      pinMode(relayPinE, OUTPUT);
      pinMode(relayPinF, OUTPUT);
    
    }
    
    
    void presentation()  {
      // Send the sketch version information to the gateway and Controller
      sendSketchInfo("Re.Mi RELAY6", "1.0");
    
      // Register all sensors to gw (they will be created as child devices)
      present(A_ID, S_LIGHT);
      present(B_ID, S_LIGHT);
      present(C_ID, S_LIGHT);
      present(D_ID, S_LIGHT);
      present(E_ID, S_LIGHT);
      present(F_ID, S_LIGHT);
    
    }
    
    
    void loop()
    {
      {
        time_m = millis();
        a = time_m % 3600000;
        b = time_m % 3601000;
        c = time_m % 3602000;
        d = time_m % 3603000;
        e = time_m % 3604000;
        f = time_m % 3605000;
        if (a == 0) {
          send(msgA.set(stateA ? true : false), true);
        }
        if (b ==0){
          send(msgB.set(stateB ? true : false), true);
        }
    
        if (c==0){
          send(msgC.set(stateC ? true : false), true);
        }
    
        if (d==0){
          send(msgD.set(stateD ? true : false), true);
        }
    
        if (e==0){
          send(msgE.set(stateE ? true : false), true);
        }
    
        if (f==0){
          send(msgF.set(stateF ? true : false), true);
        }
      }
        if (trigger == 0) {
        send(msgA.set(false)); // Send off state for relayA to ensure controller knows the switch is off
        send(msgB.set(false)); // Send off state for relayB to ensure controller knows the switch is off
        send(msgC.set(false));
        send(msgD.set(false));
        send(msgE.set(false));
        send(msgF.set(false));
        trigger = 1;
      }
      debouncerA.update();
      // Get the update value
      int valueA = debouncerA.read();
      if (valueA != oldValueA && valueA == 0) {
        send(msgA.set(stateA ? false : true), true); // Send new state and request ack back
    
      }
      oldValueA = valueA;
    
    
      debouncerB.update();
      // Get the update value
      int valueB = debouncerB.read();
      if (valueB != oldValueB && valueB == 0) {
        send(msgB.set(stateB ? false : true), true); // Send new state and request ack back
    
      }
      oldValueB = valueB;
    
      debouncerC.update();
      // Get the update value
      int valueC = debouncerC.read();
      if (valueC != oldValueC && valueC == 0) {
        send(msgC.set(stateC ? false : true), true); // Send new state and request ack back
    
      }
      oldValueC = valueC;
    
      debouncerD.update();
      // Get the update value
      int valueD = debouncerD.read();
      if (valueD != oldValueD && valueD == 0) {
        send(msgD.set(stateD ? false : true), true); // Send new state and request ack back
    
      }
      oldValueD = valueD;
    
      debouncerE.update();
      // Get the update value
      int valueE = debouncerE.read();
      if (valueE != oldValueE && valueE == 0) {
        send(msgE.set(stateE ? false : true), true); // Send new state and request ack back
    
      }
      oldValueE = valueE;
    
      debouncerF.update();
      // Get the update value
      int valueF = debouncerF.read();
      if (valueF != oldValueF && valueF == 0) {
        send(msgF.set(stateF ? false : true), true); // Send new state and request ack back
    
      }
      oldValueF = valueF;
    wdt_reset();
    }
    
    void receive(const MyMessage &message) {
      // We only expect one type of message from controller. But we better check anyway.
      if (message.type == V_STATUS) {
    
        switch (message.sensor) {
          case 1:
            stateA = message.getBool();
            digitalWrite(message.sensor + 2, stateA ? RELAY_ON : RELAY_OFF);
    
            break;
          case 2:
            stateB = message.getBool();
            digitalWrite(message.sensor + 2 , stateB ? RELAY_ON : RELAY_OFF);
    
            break;
    
          case 3:
            stateC = message.getBool();
            digitalWrite(message.sensor + 2 , stateC ? RELAY_ON : RELAY_OFF);
    
            break;
          case 4:
            stateD = message.getBool();
            digitalWrite(message.sensor + 2 , stateD ? RELAY_ON : RELAY_OFF);
    
            break;
          case 5:
            stateE = message.getBool();
            digitalWrite(message.sensor + 2, stateE ? RELAY_ON : RELAY_OFF);
    
            break;
          case 6:
            stateF = message.getBool();
            digitalWrite(message.sensor + 2 , stateF ? RELAY_ON : RELAY_OFF);
    
            break;
    
        }
    
        // Write some debug info
        Serial.print("Incoming change for sensor:");
        Serial.println(message.sensor);
        Serial.print("from node:");
        Serial.println(message.sender);
        Serial.print(", New status: ");
        Serial.println(message.getBool());
      }
    }
    
    

    about light turning auto i have neighbor but we use several channel for network.
    what is forgetten rule in my controller ? please explain more. Could have other reasons? this is suddenly for example 3:00 AM o'clock a channel of relay turn on auto. i change relay module and radio and arduino but repeat again
    thank you

    J 1 Reply Last reply
    0
    • R Reza

      @Jan-Gatzke
      thank you for answer.
      about blink i see this before ( bug in code ) and TX led was blink . but now L led is blink. 2 nodes have this problem . one a gas sensors, two is a relay 6 channel. this is strange because i use same code for other device , but for these ....
      my sketch:
      gas:

      #define MY_DEBUG
      #define MY_RADIO_NRF24
      #define MY_RF24_CHANNEL 0
      #define MY_NODE_ID 4
      #define MY_REPEATER_FEATURE
      
      #include <SPI.h>
      #include <MySensors.h>
      #include <avr/wdt.h>
      
      #define CHILD_GAS 3
      
      int mq2 = A0;
      int value;
      uint16_t GAS;
      
      MyMessage msg(CHILD_GAS, V_HUM);
      
      void setup()
      {
        pinMode(mq2, INPUT);
        wdt_enable(WDTO_4S);
      }
      
      void presentation()  {
        sendSketchInfo("R_M Gas sensor", "1.0");
        present(CHILD_GAS, S_HUM);
      }
        void loop()
        {
          value = analogRead(mq2);
          Serial.print("LPG SENSOR : ");
          if (value <= 60)
          {
            GAS = 0;
          }
          else
          {
            GAS = (value - 60) / 9.64;
          }
          Serial.println(GAS);
          send(msg.set(GAS));
          wait(60000);
        }
      

      relay:

      #define MY_DEBUG
      #define MY_TRANSPORT_WAIT_READY_MS 10000
      #define MY_RADIO_NRF24
      #define MY_RF24_CHANNEL 0
      #define MY_REPEATER_FEATURE
      #define MY_NODE_ID 160
      
      #include <SPI.h>
      #include <MySensors.h>
      #include <Bounce2.h>
      #include <avr/wdt.h>
      
      #define RELAY_ON 0
      #define RELAY_OFF 1
      
      #define A_ID 1
      #define B_ID 2
      #define C_ID 3
      #define D_ID 4
      #define E_ID 5
      #define F_ID 6
      
      const int buttonPinA = 14;
      const int buttonPinB = 15;
      const int buttonPinC = 16;
      const int buttonPinD = 17;
      const int buttonPinE = 18;
      const int buttonPinF = 19;
      
      const int relayPinA = 3;
      const int relayPinB = 4;
      const int relayPinC = 5;
      const int relayPinD = 6;
      const int relayPinE = 7;
      const int relayPinF = 8;
      
      int oldValueA = 0;
      int oldValueB = 0;
      int oldValueC = 0;
      int oldValueD = 0;
      int oldValueE = 0;
      int oldValueF = 0;
      
      
      unsigned long time_m;
      unsigned long a, b, c, d, e, f ;
      
      bool stateA = false;
      bool stateB = false;
      bool stateC = false;
      bool stateD = false;
      bool stateE = false;
      bool stateF = false;
      
      int trigger = 0;
      
      Bounce debouncerA = Bounce();
      Bounce debouncerB = Bounce();
      Bounce debouncerC = Bounce();
      Bounce debouncerD = Bounce();
      Bounce debouncerE = Bounce();
      Bounce debouncerF = Bounce();
      
      MyMessage msgA(A_ID, V_STATUS);
      MyMessage msgB(B_ID, V_STATUS);
      MyMessage msgC(C_ID, V_STATUS);
      MyMessage msgD(D_ID, V_STATUS);
      MyMessage msgE(E_ID, V_STATUS);
      MyMessage msgF(F_ID, V_STATUS);
      
      
      
      void setup()
      {
        wdt_enable(WDTO_4S); 
        pinMode(buttonPinA, INPUT_PULLUP);
        pinMode(buttonPinB, INPUT_PULLUP);
        pinMode(buttonPinC, INPUT_PULLUP);
        pinMode(buttonPinD, INPUT_PULLUP);
        pinMode(buttonPinE, INPUT_PULLUP);
        pinMode(buttonPinF, INPUT_PULLUP);
      
        // After setting up the buttons, setup debouncer
        debouncerA.attach(buttonPinA);
        debouncerA.interval(5);
        debouncerB.attach(buttonPinB);
        debouncerB.interval(5);
        debouncerC.attach(buttonPinC);
        debouncerC.interval(5);
        debouncerD.attach(buttonPinD);
        debouncerD.interval(5);
        debouncerE.attach(buttonPinE);
        debouncerE.interval(5);
        debouncerF.attach(buttonPinF);
        debouncerF.interval(5);
      
        // Make sure relays are off when starting up
        digitalWrite(relayPinA, RELAY_OFF);
        digitalWrite(relayPinB, RELAY_OFF);
        digitalWrite(relayPinC, RELAY_OFF);
        digitalWrite(relayPinD, RELAY_OFF);
        digitalWrite(relayPinE, RELAY_OFF);
        digitalWrite(relayPinF, RELAY_OFF);
        // Then set relay pins in output mode
        pinMode(relayPinA, OUTPUT);
        pinMode(relayPinB, OUTPUT);
        pinMode(relayPinC, OUTPUT);
        pinMode(relayPinD, OUTPUT);
        pinMode(relayPinE, OUTPUT);
        pinMode(relayPinF, OUTPUT);
      
      }
      
      
      void presentation()  {
        // Send the sketch version information to the gateway and Controller
        sendSketchInfo("Re.Mi RELAY6", "1.0");
      
        // Register all sensors to gw (they will be created as child devices)
        present(A_ID, S_LIGHT);
        present(B_ID, S_LIGHT);
        present(C_ID, S_LIGHT);
        present(D_ID, S_LIGHT);
        present(E_ID, S_LIGHT);
        present(F_ID, S_LIGHT);
      
      }
      
      
      void loop()
      {
        {
          time_m = millis();
          a = time_m % 3600000;
          b = time_m % 3601000;
          c = time_m % 3602000;
          d = time_m % 3603000;
          e = time_m % 3604000;
          f = time_m % 3605000;
          if (a == 0) {
            send(msgA.set(stateA ? true : false), true);
          }
          if (b ==0){
            send(msgB.set(stateB ? true : false), true);
          }
      
          if (c==0){
            send(msgC.set(stateC ? true : false), true);
          }
      
          if (d==0){
            send(msgD.set(stateD ? true : false), true);
          }
      
          if (e==0){
            send(msgE.set(stateE ? true : false), true);
          }
      
          if (f==0){
            send(msgF.set(stateF ? true : false), true);
          }
        }
          if (trigger == 0) {
          send(msgA.set(false)); // Send off state for relayA to ensure controller knows the switch is off
          send(msgB.set(false)); // Send off state for relayB to ensure controller knows the switch is off
          send(msgC.set(false));
          send(msgD.set(false));
          send(msgE.set(false));
          send(msgF.set(false));
          trigger = 1;
        }
        debouncerA.update();
        // Get the update value
        int valueA = debouncerA.read();
        if (valueA != oldValueA && valueA == 0) {
          send(msgA.set(stateA ? false : true), true); // Send new state and request ack back
      
        }
        oldValueA = valueA;
      
      
        debouncerB.update();
        // Get the update value
        int valueB = debouncerB.read();
        if (valueB != oldValueB && valueB == 0) {
          send(msgB.set(stateB ? false : true), true); // Send new state and request ack back
      
        }
        oldValueB = valueB;
      
        debouncerC.update();
        // Get the update value
        int valueC = debouncerC.read();
        if (valueC != oldValueC && valueC == 0) {
          send(msgC.set(stateC ? false : true), true); // Send new state and request ack back
      
        }
        oldValueC = valueC;
      
        debouncerD.update();
        // Get the update value
        int valueD = debouncerD.read();
        if (valueD != oldValueD && valueD == 0) {
          send(msgD.set(stateD ? false : true), true); // Send new state and request ack back
      
        }
        oldValueD = valueD;
      
        debouncerE.update();
        // Get the update value
        int valueE = debouncerE.read();
        if (valueE != oldValueE && valueE == 0) {
          send(msgE.set(stateE ? false : true), true); // Send new state and request ack back
      
        }
        oldValueE = valueE;
      
        debouncerF.update();
        // Get the update value
        int valueF = debouncerF.read();
        if (valueF != oldValueF && valueF == 0) {
          send(msgF.set(stateF ? false : true), true); // Send new state and request ack back
      
        }
        oldValueF = valueF;
      wdt_reset();
      }
      
      void receive(const MyMessage &message) {
        // We only expect one type of message from controller. But we better check anyway.
        if (message.type == V_STATUS) {
      
          switch (message.sensor) {
            case 1:
              stateA = message.getBool();
              digitalWrite(message.sensor + 2, stateA ? RELAY_ON : RELAY_OFF);
      
              break;
            case 2:
              stateB = message.getBool();
              digitalWrite(message.sensor + 2 , stateB ? RELAY_ON : RELAY_OFF);
      
              break;
      
            case 3:
              stateC = message.getBool();
              digitalWrite(message.sensor + 2 , stateC ? RELAY_ON : RELAY_OFF);
      
              break;
            case 4:
              stateD = message.getBool();
              digitalWrite(message.sensor + 2 , stateD ? RELAY_ON : RELAY_OFF);
      
              break;
            case 5:
              stateE = message.getBool();
              digitalWrite(message.sensor + 2, stateE ? RELAY_ON : RELAY_OFF);
      
              break;
            case 6:
              stateF = message.getBool();
              digitalWrite(message.sensor + 2 , stateF ? RELAY_ON : RELAY_OFF);
      
              break;
      
          }
      
          // Write some debug info
          Serial.print("Incoming change for sensor:");
          Serial.println(message.sensor);
          Serial.print("from node:");
          Serial.println(message.sender);
          Serial.print(", New status: ");
          Serial.println(message.getBool());
        }
      }
      
      

      about light turning auto i have neighbor but we use several channel for network.
      what is forgetten rule in my controller ? please explain more. Could have other reasons? this is suddenly for example 3:00 AM o'clock a channel of relay turn on auto. i change relay module and radio and arduino but repeat again
      thank you

      J Offline
      J Offline
      Jan Gatzke
      wrote on last edited by
      #4

      @Reza

      What do you mean with L led?
      The gas sensor is sending a value for every iteration of the loop. You should only send a new value to the controller if it changed (more than x). This way the node is always active and spamming the controller.

      I don't see anything wrong with the relay sketch.

      Regarding the self switching relay node I just wanted to say that I you should look for external reasons for this behaviour. Either the controller or another sender is telling the node to switch the relay on.

      R 1 Reply Last reply
      0
      • J Jan Gatzke

        @Reza

        What do you mean with L led?
        The gas sensor is sending a value for every iteration of the loop. You should only send a new value to the controller if it changed (more than x). This way the node is always active and spamming the controller.

        I don't see anything wrong with the relay sketch.

        Regarding the self switching relay node I just wanted to say that I you should look for external reasons for this behaviour. Either the controller or another sender is telling the node to switch the relay on.

        R Offline
        R Offline
        Reza
        wrote on last edited by
        #5

        @Jan-Gatzke
        this led :
        0_1485679867184_Arduino-nano-pin-mapping.jpg
        i think blink led is not related to gas skatch because this problem is for both (relay and gas)
        is that possible my controller have problem ? because some time controller auto go to offline....

        J 1 Reply Last reply
        0
        • R Reza

          @Jan-Gatzke
          this led :
          0_1485679867184_Arduino-nano-pin-mapping.jpg
          i think blink led is not related to gas skatch because this problem is for both (relay and gas)
          is that possible my controller have problem ? because some time controller auto go to offline....

          J Offline
          J Offline
          Jan Gatzke
          wrote on last edited by
          #6

          @Reza

          Does the blinking stop when you shutdown the controller?

          R 1 Reply Last reply
          0
          • J Jan Gatzke

            @Reza

            Does the blinking stop when you shutdown the controller?

            R Offline
            R Offline
            Reza
            wrote on last edited by
            #7

            @Jan-Gatzke
            i dont test this . when start blink just i power off/on node and true again and after some sent command again blink.

            1 Reply Last reply
            0
            • scalzS Offline
              scalzS Offline
              scalz
              Hardware Contributor
              wrote on last edited by
              #8

              the blinking led which doesn't stop without poweroff, makes me think:

              • autoreset generated by brownout and power supply issues,
              • wdt and bootloaders

              perhaps the first one

              J R 2 Replies Last reply
              2
              • scalzS scalz

                the blinking led which doesn't stop without poweroff, makes me think:

                • autoreset generated by brownout and power supply issues,
                • wdt and bootloaders

                perhaps the first one

                J Offline
                J Offline
                Jan Gatzke
                wrote on last edited by
                #9

                @scalz

                He only wrote about a blinking led not about the whole node failing.

                1 Reply Last reply
                1
                • scalzS scalz

                  the blinking led which doesn't stop without poweroff, makes me think:

                  • autoreset generated by brownout and power supply issues,
                  • wdt and bootloaders

                  perhaps the first one

                  R Offline
                  R Offline
                  Reza
                  wrote on last edited by
                  #10

                  @scalz thank you for answer . i use a power 5v 10A that share for 5 devices . 1 relay 6 channel. 2 gas sensors. 1temp sensor . 1 motion sensor. about WDT i dont use this for gas sensors sketch.thank you

                  1 Reply Last reply
                  0
                  • R Reza

                    hi guys
                    i found 2 new strange problem!
                    one problem is related to turn on light automatically ! i have some light with button . some time for example 3:00 AM relay auto turn on ! :O did anybody experience this ?
                    second problem is related to LED on arduino (L) . some sensors (for example gas sensors) some time i see L led is bilinking fast and dont stop .stop just with power off/on.
                    did anybody experience this ?

                    scalzS Offline
                    scalzS Offline
                    scalz
                    Hardware Contributor
                    wrote on last edited by scalz
                    #11

                    @Jan-Gatzke
                    I answered to his 2nd problem ;)

                    @Reza said in light and relay turn on automatically !:

                    second problem is related to LED on arduino (L) . some sensors (for example gas sensors) some time i see L led is bilinking fast and dont stop .stop just with power off/on.

                    In mcu there is a brownout mechanism which reset the mcu if its voltage falls below a threshold which is set by fuses.
                    Also, depending of the bootloader used, this "L" (in general 13 if i remember) blinks at startup.
                    Then if you have hw issues like relays, multiple sensors, radio which consumes too much it can reset. I'm not talking about input power supply but about the vcc provided by voltage regulator

                    The same kind of autoreset can happen with a bad bootloader and wrong wdt settings.

                    It's all covered in arduino forums. And here too, i don't remember the links.

                    Finally, and that can also triggers same kind of problems (weird behaviour etc..), is playing with AC voltage, relays, RF radios etc due to noise etc.. Add to this that when you don't care about filtering in those case, you will get a bad Signal-to-Noise Ratio for your radio and get a poor range and sensibility.

                    You can have a quick idea when to take care of this by reading this
                    http://hackaday.com/2017/01/26/pcb-design-guidelines-to-minimize-rf-transmissions/

                    R 1 Reply Last reply
                    1
                    • scalzS scalz

                      @Jan-Gatzke
                      I answered to his 2nd problem ;)

                      @Reza said in light and relay turn on automatically !:

                      second problem is related to LED on arduino (L) . some sensors (for example gas sensors) some time i see L led is bilinking fast and dont stop .stop just with power off/on.

                      In mcu there is a brownout mechanism which reset the mcu if its voltage falls below a threshold which is set by fuses.
                      Also, depending of the bootloader used, this "L" (in general 13 if i remember) blinks at startup.
                      Then if you have hw issues like relays, multiple sensors, radio which consumes too much it can reset. I'm not talking about input power supply but about the vcc provided by voltage regulator

                      The same kind of autoreset can happen with a bad bootloader and wrong wdt settings.

                      It's all covered in arduino forums. And here too, i don't remember the links.

                      Finally, and that can also triggers same kind of problems (weird behaviour etc..), is playing with AC voltage, relays, RF radios etc due to noise etc.. Add to this that when you don't care about filtering in those case, you will get a bad Signal-to-Noise Ratio for your radio and get a poor range and sensibility.

                      You can have a quick idea when to take care of this by reading this
                      http://hackaday.com/2017/01/26/pcb-design-guidelines-to-minimize-rf-transmissions/

                      R Offline
                      R Offline
                      Reza
                      wrote on last edited by
                      #12

                      @scalz very thank you :pray:

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      29

                      Online

                      11.7k

                      Users

                      11.2k

                      Topics

                      113.1k

                      Posts


                      Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • MySensors
                      • OpenHardware.io
                      • Categories
                      • Recent
                      • Tags
                      • Popular