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.
  • 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 ?

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

    @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 1 Reply Last reply
    0
    • 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