#include <FastLED.h>
#define NUM_LEDS 15
#define LED_PIN 25
#define LDR_PIN 2
#define PIR_DWN_PIN 4
#define PIR_UP_PIN 5
unsigned long previous_time = 0;
unsigned long current_time = 0;
unsigned long time_passed = 0;
unsigned int timeout = 15;
CRGB leds[NUM_LEDS];
void setup() {
Serial.begin(115200);
FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
}
void loop() {
int light_val = analogRead(LDR_PIN);
//Serial.println(light_val);
if(light_val > 600){
int pir_dwn = digitalRead(PIR_DWN_PIN);
int pir_up = digitalRead(PIR_UP_PIN);
if(pir_dwn == 1){
previous_time = millis() / 1000;
current_time = millis() / 1000;
while(current_time - previous_time < timeout){
for(int i = 0; i < NUM_LEDS; i++){
leds[i] = CRGB(255, 255, 255);
FastLED.show();
delay(100);
}
current_time = millis() / 1000;
Serial.print(current_time);
Serial.print(" - ");
Serial.print(previous_time);
Serial.print(" => ");
Serial.print(current_time - previous_time);
Serial.print(" < ");
Serial.print(timeout);
if(current_time - previous_time < timeout){
Serial.print(" | ");
Serial.println("YES");
}
else{
Serial.print(" | ");
Serial.println("NO");
}
}
for(int i = 0; i < NUM_LEDS; i++){
leds[i] = CRGB(0, 0, 0);
FastLED.show();
delay(100);
}
}
if(pir_up == 1){
previous_time = millis() / 1000;
current_time = millis() / 1000;
while(current_time - previous_time < timeout){
for(int i = NUM_LEDS - 1; i >= 0; i--){
leds[i] = CRGB(255, 255, 255);
FastLED.show();
delay(100);
}
current_time = millis() / 1000;
Serial.print(current_time);
Serial.print(" - ");
Serial.print(previous_time);
Serial.print(" => ");
Serial.print(current_time - previous_time);
Serial.print(" < ");
Serial.print(timeout);
if(current_time - previous_time < timeout){
Serial.print(" | ");
Serial.println("YES");
}
else{
Serial.print(" | ");
Serial.println("NO");
}
}
for(int i = NUM_LEDS - 1; i >= 0; i--){
leds[i] = CRGB(0, 0, 0);
FastLED.show();
delay(100);
}
}
}
}