Remy_Martin
(Permpol Thanapunnamas)
พฤศจิกายน 8, 2019, 2:12pm
29
เอาไปดักได้ครับ แต่มันจะเข้าไปกวนการทำงานของ task ให้ทำงานผิดจากเดิม เพราะมันเกิดจากฟังก์ชันอื่น
แนะนำให้เอาอัลกอลิทึมนี้ไปประยุกค์ใช้ครับ
วิธีแก้โจทย์ข้อนี้ของผมคือทำให้มันส่งค่าแค่ครั้งเดียวแล้วออกเลยไม่ต้องมาส่งซ้ำอีก
bool lock = false;
BLYNK_WRITE(V1)
{
if (param.asInt()==1) { // เมื่อ V1 มีค่าเป็น 1
digitalWrite(0, 1); //Relay1 on
if(lock == false){
int pinValue = param.asInt();
if (pinValue == 1){
String txt = "Relay 1 on (" + String (millis()) + ")";
Line_Notify(LINE_TOKEN, txt);
lock = true;
}// end lock
}
}else{
lock = false;
di…
เอาเฉพาะชุดนี้มาใส่ใน task
จากนั้นใน else { }
ให้เพิ่ม
if (lock == true) {
LED.off();
lock = false;
}
เข้าไป ความหมายคือ ให้มันทำงานใน if บนก่อน เมื่อทำแล้ว ค่อยมาทำข้างล่าง มันจะล๊อกเฉพาะคำสั่งที่เราต้องการ เพราะจริงๆ ถ้ามันยังไม่ on มันก็ไม่จำเป็นต้องสั่งให้มัน off