First of all i have arduino mega 2560, 2 PIR sensors, 1 LDR sensor, Powersupply and led strip light cut into 1mtr approx each around 18 of them. led strip power on 12v2amp and i have relays equal no to led strip pieces.
I need to program for my staircase which turns on just when someone comes next to PIR sensor.The step should light up before person steps the next step and so on frm down to up OR frm up to down. It must also go off in similar manner...
My problem is when sensor is detected frm one side and then frm other side before completion of loop and also if another person climbs after another person climbs frm same direction....
Iam new in coding....
My program is like this:
void setup()
{
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
pinMode(4, OUTPUT);
pinMode(3, OUTPUT);
pinMode(2, OUTPUT);
pinMode(1, OUTPUT);
Serial.begin(9600);
}
void loop()
{
int ldr = analogRead(A0);
Serial.println(ldr);
if(ldr<450)
{
delay(1000);
int val1= analogRead(A3);
Serial.println("PIR 1");
Serial.println(val1);
int val2= analogRead(A2);
Serial.println("PIR 2");
Serial.println(val2);
if(val1>500 && val2<500)
{
Serial.println("FIRST LIGHTS UP");
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(12, HIGH);
delay(1000);
digitalWrite(11, HIGH);
delay(1000);
digitalWrite(10, HIGH);
delay(1000);
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(8, HIGH);
delay(1000);
digitalWrite(7, HIGH);
delay(1000);
digitalWrite(6, HIGH);
delay(1000);
digitalWrite(5, HIGH);
delay(1000);
digitalWrite(4, HIGH);
delay(1000);
digitalWrite(3, HIGH);
delay(1000);
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(1, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
digitalWrite(12, LOW);
delay(1000);
digitalWrite(11, LOW);
delay(1000);
digitalWrite(10, LOW);
delay(1000);
digitalWrite(9, LOW);
delay(1000);
digitalWrite(8, LOW);
delay(1000);
digitalWrite(7, LOW);
delay(1000);
digitalWrite(6, LOW);
delay(1000);
digitalWrite(5, LOW);
delay(1000);
digitalWrite(4, LOW);
delay(1000);
digitalWrite(3, LOW);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
digitalWrite(1, LOW);
delay(4000);
}
if(val2>500 && val1<500)
{
Serial.println("second lights up");
digitalWrite(1, HIGH);
delay(1000);
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(3, HIGH);
delay(1000);
digitalWrite(4, HIGH);
delay(1000);
digitalWrite(5, HIGH);
delay(1000);
digitalWrite(6, HIGH);
delay(1000);
digitalWrite(7, HIGH);
delay(1000);
digitalWrite(8, HIGH);
delay(1000);
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(10, HIGH);
delay(1000);
digitalWrite(11, HIGH);
delay(1000);
digitalWrite(12, HIGH);
delay(1000);
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(1, LOW);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
digitalWrite(3, LOW);
delay(1000);
digitalWrite(4, LOW);
delay(1000);
digitalWrite(5, LOW);
delay(1000);
digitalWrite(6, LOW);
delay(1000);
digitalWrite(7, LOW);
delay(1000);
digitalWrite(8, LOW);
delay(1000);
digitalWrite(9, LOW);
delay(1000);
digitalWrite(10, LOW);
delay(1000);
digitalWrite(11, LOW);
delay(1000);
digitalWrite(12, LOW);
delay(1000);
digitalWrite(13, LOW);
delay(4000);
}
if(val1>500 && val2>500)
{
Serial.println("BOTH LIGHT UP");
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
delay(10000);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
}
delay(2000);
Serial.println("LIGHT NOT REQUIRED");
}
Please help me in this. Hope for positive reply
sketch_jan08a.ino (3.84 KB)