Hi Everyone !!
I am newbie and trying to make a remote Elevator position indicator panel with Bar GRAPH LED by using the Arduino Analog pin . It should indicate the position of the elevator. There are ten floors, each floor has a limit switch which activates whenever elevator moves upwards or downwards. I have written a small sketch but it does not work while the elevator is moving downwards. Kindly help to resolve this problem.
Code:
Int limitSw =1;
float limitSwValue =0;
int floor1 = 2;
int floor2 = 3;
int floor3 = 4;
//--------------
//---------------
int floor10 = 11;
int floor1State = 0;
int floor2 State = 0;
int floor3 State = 0;
//----------------
//----------------
int floor10 State = 0;
void setup() {
pinMode(floor1, OUTPUT);
pinMode(floor2, OUTPUT);
pinMode(floor3, OUTPUT);
//-----------------
//-----------------------
pinMode(floor10, OUTPUT);
}
void loop () {
limitSwValue=analogRead(limitSw);
if (limitSwValue >=100)
{
digitalWrite(floor1,HIGH);
delay (20);
}
if (limitSwValue >=200)
{
digitalWrite(floor1,HIGH);
digitalWrite(floor2,HIGH);
delay (20);
}
if (limitSwValue >=300)
{
digitalWrite(floor1,HIGH);
digitalWrite(floor2,HIGH);
digitalWrite(floor3,HIGH);
delay (20);
}
//-----------------
//-------------------------
if (limitSwValue >=1000)
{
digitalWrite(floor10,HIGH);
//-------------while elevator moves downwards--------------
if (limitSwValue <=1000)
{
digitalWrite(floor10, LOW); // only this part is working
delay(20);
//----------------------------
//----------------------------
digitalWrite(floor3,HIGH);
digitalWrite(floor2,HIGH);
digitalWrite(floor1,HIGH);
//----------------------------
//----------------------------
if (limitSwValue <=300)
digitalWrite(floor3,LOW);
digitalWrite(floor2,HIGH);
digitalWrite(floor1,HIGH);
if (limitSwValue <=200)
digitalWrite(floor3,LOW);
digitalWrite(floor2,LOW);
digitalWrite(floor1,HIGH);
delay(20);
if (limitSwValue <=100)
digitalWrite(floor3,LOW);
digitalWrite(floor2,LOW);
digitalWrite(floor1,LOW);
delay (20);
}