# Relay turn on whenever I turn on Arduino

**URL:** <https://forum.arduino.cc/t/relay-turn-on-whenever-i-turn-on-arduino/644387>\
**Category:** General Electronics\
**Created:** [March 25, 2020, 4:06pm UTC](https://forum.arduino.cc/t/relay-turn-on-whenever-i-turn-on-arduino/644387 "2020-03-25T16:06:13Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![mariwanmb](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/mariwanmb/32/522582_2.png) [@mariwanmb](https://forum.arduino.cc/u/mariwanmb)\
**Post date:** [March 25, 2020, 4:06pm UTC](https://forum.arduino.cc/t/relay-turn-on-whenever-i-turn-on-arduino/644387/1 "2020-03-25T16:06:13Z")

</div>

Hello every one

I designed a circuit that will turn the light (which is connected to a Realy) whenever the motion sensor detects any movement, and the light will stay ON till there IR sensor getting a signal from remote control then it will turn the light off.

Everything is working perfectly the only problem I have is: whenever I restart the Arduino or unplug Arduino and re-plug it again the relay automatically will turn on without detecting any movement by the motion detector.

I will attach the code and the circuit diagram.

please I need your help.

#include \<IRremote.h\>  
int PIR\_Sensor=3;  
int Relay=10;  
int IR\_Sensor = 6;

IRrecv irrecv(MP\_IR);  
decode\_results results;  
#define BUTTON\_0 0x9716BE3F

void setup() {  
Serial.begin(9600);  
pinMode(PIR\_Sensor, INPUT);  
pinMode(Relay, OUTPUT);  
pinMode(IR\_Sensor, INPUT);  
digitalWrite(MP\_Notification, HIGH);

irrecv.enableIRIn();  
}

void loop() {  
if(digitalRead(3) == HIGH)  
{  
digitalWrite(10, LOW);  
}  
if (irrecv.decode(&results))  
{  
if (results.value == BUTTON\_0)  
{  
digitalWrite(10, HIGH);  
}  
irrecv.resume();  
}  
}

 ![circuit.jpg](https://europe1.discourse-cdn.com/arduino/original/4X/a/4/d/a4dacb599966cd69ae1524ba7ba35a4db40d2106.jpeg)

---

<div class="post-metadata">

**Author:** ![zoomkat](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/zoomkat/32/1190177_2.png) [@zoomkat](https://forum.arduino.cc/u/zoomkat)\
**Post date:** [March 25, 2020, 4:15pm UTC](https://forum.arduino.cc/t/relay-turn-on-whenever-i-turn-on-arduino/644387/2 "2020-03-25T16:15:25Z")

</div>

"Everything is working perfectly the only problem I have is: whenever I restart the Arduino or unplug Arduino and re-plug it again the relay automatically will turn on without detecting any movement by the motion detector."

Arduino pins may go thru undefined states on boot up. The first test you might do is just have dummy code in the arduino with the relay attached, then plug and unplug the arduino to see if the relay still actuates. Then attach the detector and plug and unplug again. If the relay does not actuate under these two test, then you probably can fix your issue in your code.

---

<div class="post-metadata">

**Author:** ![mariwanmb](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/mariwanmb/32/522582_2.png) [@mariwanmb](https://forum.arduino.cc/u/mariwanmb)\
**Post date:** [March 25, 2020, 5:17pm UTC](https://forum.arduino.cc/t/relay-turn-on-whenever-i-turn-on-arduino/644387/3 "2020-03-25T17:17:31Z")

</div>

thank you very much for your kind replay.

1- I performed the first test (dummy code) it is not going to turn ON after unplug and re-plug.

2- But after attaching the (detector) it is not going to turn on automatically right after compiling the code, but after unplug it then re-plug Arduino it will turn the relay on automatically.

---

<div class="post-metadata">

**Author:** ![zoomkat](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/zoomkat/32/1190177_2.png) [@zoomkat](https://forum.arduino.cc/u/zoomkat)\
**Post date:** [March 25, 2020, 5:36pm UTC](https://forum.arduino.cc/t/relay-turn-on-whenever-i-turn-on-arduino/644387/4 "2020-03-25T17:36:28Z")

</div>

Your IR input pins may be initially floating after boot up. In the setup part of your code, you might try first set those pins low to clear any floating voltage, have a small delay, then set them for input.

---

<div class="post-metadata">

**Author:** ![LarryD](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/larryd/32/215550_2.png) [@LarryD](https://forum.arduino.cc/u/LarryD)\
**Post date:** [March 25, 2020, 5:44pm UTC](https://forum.arduino.cc/t/relay-turn-on-whenever-i-turn-on-arduino/644387/5 "2020-03-25T17:44:26Z")

</div>

![circuit.jpg](https://europe1.discourse-cdn.com/arduino/original/4X/a/4/d/a4dacb599966cd69ae1524ba7ba35a4db40d2106.jpeg)

---

<div class="post-metadata">

**Author:** ![LarryD](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/larryd/32/215550_2.png) [@LarryD](https://forum.arduino.cc/u/LarryD)\
**Post date:** [March 25, 2020, 5:47pm UTC](https://forum.arduino.cc/t/relay-turn-on-whenever-i-turn-on-arduino/644387/6 "2020-03-25T17:47:02Z")

</div>

```cpp
 void setup() {
Serial.begin(9600);
pinMode(PIR_Sensor, INPUT);
digitalWrite(Relay,HIGH);
pinMode(Relay, OUTPUT);
pinMode(IR_Sensor, INPUT);
digitalWrite(MP_Notification, HIGH); 

irrecv.enableIRIn();

delay(500);
}

```

---

<div class="post-metadata">

**Author:** ![sterretje](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/sterretje/32/391294_2.png) [@sterretje](https://forum.arduino.cc/u/sterretje)\
**Post date:** [March 25, 2020, 5:47pm UTC](https://forum.arduino.cc/t/relay-turn-on-whenever-i-turn-on-arduino/644387/7 "2020-03-25T17:47:26Z")

</div>

The following sequence will probably prevent this from happening

```cpp
digitalWrite(Relay, HIGH);
pinMode(Relay, OUTPUT);

```

Hmm larryd beat me to it.

---

<div class="post-metadata">

**Author:** ![mariwanmb](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/mariwanmb/32/522582_2.png) [@mariwanmb](https://forum.arduino.cc/u/mariwanmb)\
**Post date:** [March 25, 2020, 7:17pm UTC](https://forum.arduino.cc/t/relay-turn-on-whenever-i-turn-on-arduino/644387/8 "2020-03-25T19:17:14Z")

</div>

> zoomkat:  
> Your IR input pins may be initially floating after boot up. In the setup part of your code, you might try first set those pins low to clear any floating voltage, have a small delay, then set them for input.

I did what you told me but the result is same after the delay period is finishing it turns the relay ON again.

---

<div class="post-metadata">

**Author:** ![mariwanmb](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/mariwanmb/32/522582_2.png) [@mariwanmb](https://forum.arduino.cc/u/mariwanmb)\
**Post date:** [March 25, 2020, 7:22pm UTC](https://forum.arduino.cc/t/relay-turn-on-whenever-i-turn-on-arduino/644387/9 "2020-03-25T19:22:40Z")

</div>

> larryd:
> 
> ```arduino
> void setup() {
> 
> ```

Serial.begin(9600);  
pinMode(PIR\_Sensor, INPUT);  
digitalWrite(Relay,HIGH);  
pinMode(Relay, OUTPUT);  
pinMode(IR\_Sensor, INPUT);  
digitalWrite(MP\_Notification, HIGH);

irrecv.enableIRIn();

delay(500);  
}

> ```arduino
> 
> thanks for your kind replay.
> 
> I don't think you changed anything!! even tho I tried it but it is the same no change.
> ```

---

<div class="post-metadata">

**Author:** ![LarryD](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/larryd/32/215550_2.png) [@LarryD](https://forum.arduino.cc/u/LarryD)\
**Post date:** [March 25, 2020, 7:30pm UTC](https://forum.arduino.cc/t/relay-turn-on-whenever-i-turn-on-arduino/644387/10 "2020-03-25T19:30:54Z")

</div>

digitalWrite(Relay,HIGH);  
And  
delay(500);

The above lines were added.

---

<div class="post-metadata">

**Author:** ![mariwanmb](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/mariwanmb/32/522582_2.png) [@mariwanmb](https://forum.arduino.cc/u/mariwanmb)\
**Post date:** [March 25, 2020, 8:34pm UTC](https://forum.arduino.cc/t/relay-turn-on-whenever-i-turn-on-arduino/644387/11 "2020-03-25T20:34:18Z")

</div>

I did that as well, but it was the same result, it is really weird. please if you have any ideas guys

---

<div class="post-metadata">

**Author:** ![LarryD](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/larryd/32/215550_2.png) [@LarryD](https://forum.arduino.cc/u/LarryD)\
**Post date:** [March 25, 2020, 8:38pm UTC](https://forum.arduino.cc/t/relay-turn-on-whenever-i-turn-on-arduino/644387/12 "2020-03-25T20:38:34Z")

</div>

Comment these lines out:

* * *

//if(digitalRead(3) == HIGH)  
//{  
// digitalWrite(10, LOW);  
//}

* * *

Does the relay still pick at power up ?

* * *

Maybe try:

pinMode(PIR\_Sensor, INPUT\_PULLUP);

---

<div class="post-metadata">

**Author:** ![zoomkat](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/zoomkat/32/1190177_2.png) [@zoomkat](https://forum.arduino.cc/u/zoomkat)\
**Post date:** [March 25, 2020, 10:01pm UTC](https://forum.arduino.cc/t/relay-turn-on-whenever-i-turn-on-arduino/644387/13 "2020-03-25T22:01:59Z")

</div>

Without trying to reverse engineer the code, what type of output do the IR sensors have when motion is detected/

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [May 6, 2021, 2:31am UTC](https://forum.arduino.cc/t/relay-turn-on-whenever-i-turn-on-arduino/644387/14 "2021-05-06T02:31:24Z")

</div>

Closed on May 6, 2021, 2:31am UTC


