แก้ไขหน่อยครับๆ ให้อ้างอิงจากฟังก์ชันนี้นะ
timer.setInterval(1000L, countCharger);
คำสั่งนี้จะเข้าไปทำงานในฟังก์ชันนี้ ทุกๆ 1 วินาที
ตัวอย่างโดยประมาณที่จะหน่วง 5 วิ
int x_time = 0;
bool _x_time = false;
BLYNK_WRITE(V1)
{
int pinValue = param.asInt();
if ( pinValue == 1){
x_time = 0;
_x_time = true;
pump = HIGH; //สั่ง เปิด ปั๊ม
}else{
_x_time = false;
}
}
void countCharger(){
if(_x_time == true){ // ถ้ามีการกดปุ่มปั๊ม 1 ครั้ง
x_time++; // นับไปครั้งละ 1 วิ แต่ยังจะไม่เข้า loop 5 วิ เพราะยังนับไม่ถึง
if (x_time > 5) { //นับไปจนกว่า x_time มากกว่า 5
pump = LOW; //สั่ง ปิด ปั๊ม
Blynk.virtualWrite(V1, LOW); // คืนค่าปุ๊มกดปั๊มให้ Off
_x_time = false;
}
}
}
ผมเขียนคร่าวๆ นะครับลองไปเติมต่อเอง