▲ 3 r/ArduinoHelp
Trying to get a PIR sensor to turn lights on in sequence
So I'm trying to get a PIR sensor to turn on lights in sequence every time it gets triggered. I got it so the green led then the yellow led turn on, but it's not changing to the ORANGE state and I don't know why.
int ledGreen = 13;
int ledYellow = 12;
int ledOrange = 11;
int inputPin = 2; // choose the input pin (for PIR sensor)
int pirState = LOW; // start with no motion detected
int val = 0;
enum states {
GREEN,
YELLOW,
ORANGE,
RED
};
states state;
void setup() {
pinMode(ledGreen, OUTPUT);
pinMode(ledYellow, OUTPUT);
pinMode(ledOrange, OUTPUT);
pinMode(inputPin, INPUT);
state = GREEN;
Serial.begin(9600);
}
void loop(){
val = digitalRead(inputPin);
switch (state) {
case GREEN:
if (digitalRead(inputPin) == HIGH && val == 0 ) {
digitalWrite(ledGreen, HIGH);
delay(2000);
val++;
state = YELLOW;
Serial.println(val) ;
break;
case YELLOW:
if (digitalRead(inputPin) == HIGH && val == 1) {
digitalWrite(ledYellow, HIGH);
delay(2000);
val++;
state = ORANGE;
Serial.println(val) ;
break;
case ORANGE:
if (digitalRead(inputPin) == HIGH && val == 2) {
digitalWrite(ledOrange, HIGH);
delay(2000);
val++;
state = RED;
Serial.println(val) ;
break;
case RED:
if (digitalRead(inputPin) == HIGH && val == 3) {
digitalWrite(ledOrange, LOW);
digitalWrite(ledOrange, LOW);
digitalWrite(ledOrange, LOW);
delay(2000);
val = 0;
state = GREEN;
break;
}}}}}}
u/True_Buffalo_1436 — 8 days ago