เงื่อนไขคือให้ Sensor ทำงานเป็น HIGH แล้วอยากหน่วง LED (HIGH) 5 Sec โดยไม่ใช้ Delay ครับ
#define proxy 2
#define ledPin 9
int val = 0;
void setup() {
// put your setup code here, to run once:
pinMode(ledPin, OUTPUT);
pinMode(proxy, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
prox();
}
void prox(){
val = digitalRead(proxy); // read input value
static unsigned long timer = millis();
const unsigned long period = 5000;
Serial.println(val);
Serial.println(timer);
if (val == LOW){
digitalWrite(ledPin, LOW);
// Serial.println("หลอดใกล้หมด");
}
if(val == HIGH && millis() - timer >= period){
digitalWrite(ledPin,HIGH);
Serial.print("มีหลอด");
timer = millis();
}
}