The more a door is used the brighter its leds become.
Code:
int wdPin=13;
int edPin=12;
int wHall=0;
int eHall=0;
int westLight=3;
int eastLight=5;
int westCount=0;
int eastCount=0;
int totalCount=0;
int westValue=0;
int eastValue=0;
String wdState="closed";
String edState="closed";
int maxValue=255;
void setup()
{
pinMode(wdPin, INPUT);
pinMode(edPin, INPUT);
pinMode(eastLight, INPUT);
pinMode(westLight, INPUT);
Serial.begin(9600);
}
void loop()
{
processWest();
processEast();
processCount();
processOutput();
delay(1000);
}
void processWest()
{
wHall = digitalRead(wdPin);
// Serial.println(wHall);
if (wdState.equals("closed"))
{
if(wHall == HIGH)
{
westCount+=40;
wdState="open";
}
}
else
{
if(wHall==LOW)
{
wdState="closed";
}
}
}
void processEast()
{
eHall = digitalRead(edPin);
Serial.println(eHall);
if (edState.equals("closed"))
{
if(eHall == HIGH)
{
eastCount+=40;
edState="open";
}
}
else
{
if(eHall==LOW)
{
edState="closed";
}
}
}
void processCount()
{
totalCount=eastCount+westCount;
float eastPerc=(float)eastCount/(float)totalCount;
Serial.println(eastPerc);
float westPerc=(float)westCount/(float)totalCount;
Serial.println(westPerc);
if(eastCount>0)
{
eastValue=maxValue*eastPerc;
}
if(westCount>0)
{
westValue=maxValue*westPerc;
}
}
void processOutput()
{
//int westValue = map(westValue, 0, maxValue, 0, 100);
//int eastValue = map(eastValue, 0, maxValue, 0, 100);
analogWrite(westLight,westValue);
analogWrite(eastLight,eastValue);
Serial.print("West Value: ");
Serial.println(westValue);
Serial.print("West Count: ");
Serial.println(westCount);
Serial.print("East Value: ");
Serial.println(eastValue);
Serial.print("East Count: ");
Serial.println(eastCount);
Serial.print("Total Count: ");
Serial.println(totalCount);
}










