u/True_Buffalo_1436

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;
      
        }}}}}}
reddit.com
u/True_Buffalo_1436 — 8 days ago