ต้องการสลับโหมด Manual กับ Auto โดยการใช้ปุ่มภายนอกครับ

ผมก็หมายถึงอย่างนั้นละครับ

เป็นกดติดปล่อยดับครับ ปุ่มเล็ก ๆ ก็เหมือนกันครับ ประเภทเดียวกันหมด
image

เขียนรับค่าปุ่มประเภทนี้ได้อยู่ใช่ไหมครับ

ได้ครับผมก็อาศัยหลักการเดียวกับการเปิด - ปิด ไฟ เลยครับ
แต่ทีนี้ก็คงต้องเปลี่ยนเป็นการกดปุ่มเป็นการส่งค่า 1 กับ 0 แทน

1 Likes

ก็นั้นแหละครับโค้ตก็ประมาณนี้

push button switch on-off led

int stateNow = 0;
int stateBefore = 0;
int i = 0;
int j = 0;

void setup() {
  pinMode (2, INPUT);
  pinMode (3, OUTPUT);
}

void loop() {
  stateNow = digitalRead(2);
  if (stateNow != stateBefore) {
    if (stateNow == HIGH and i == 0) {
      digitalWrite (3, HIGH);
      j = 1;
    }
    else if (stateNow == LOW and j == 1) {
      i = 1;
    }
    else if (stateNow == HIGH and i == 1) {
      digitalWrite (3, LOW);
      j = 0;
    }
    else if (stateNow == LOW and j == 0) {
      i = 0;
    }
  }
  stateBefore=stateNow;
}

ถ้าจะเอาไปใช้กับโจทย์ของเราก็

int stateNow = 0;
int stateBefore = 0;
int i = 0;
int j = 0;

void setup() {
  pinMode (2, INPUT);
}

void loop() {
  stateNow = digitalRead(2);
  if (stateNow != stateBefore) {
    if (stateNow == HIGH and i == 0) {
      Blynk.virtualWrite(V0,1);
      j = 1;
    }
    else if (stateNow == LOW and j == 1) {
      i = 1;
    }
    else if (stateNow == HIGH and i == 1) {
      Blynk.virtualWrite(V0,0);
      j = 0;
    }
    else if (stateNow == LOW and j == 0) {
      i = 0;
    }
  }
  stateBefore = stateNow;
}

ขอบคุณมากนะครับเดี๋ยวต้องไปทดลองดูก่อนครับ ขอบคุณที่มาตอบผมมากเลยนะครับ ถ้าถาม งง ๆ หรือพิมพ์ไม่รู้เรื่อง ขอโทษด้วยนะครับ :pray:t2:

เรื่องงงเป็นเรื่องปกติครับ เว็บนี้ชอบให้คนถามครับ ผิดถูกไม่มีใครว่า แต่ผิดแล้วได้ไอเดียร์อะไรก็เอามาแชร์กัน ครับ

อย่าลืมแจ้งผลด้วยนะครับ ว่าได้หรือยัง

ได้ครับผม ไว้จะมาบอกผลนะครับ

ตอนนี้สามารถทำงานได้แล้วนะครับสลับโหมดการทำงานได้ทั้งผ่าน Blynk และ ปุ่มกดภายนอก ครับ
ขอบคุณสำหรับโค้ดมาก ๆ ครับ ไม่ได้โค้ดจากที่นี่ก็ทำไม่สำเร็จแน่ๆครับ

1 Likes

วางโค้ตที่แก้ไขแล้ว ไว้หน่อยนะครับ เผื่อเป็นแนวทางกับคนอื่นๆ ต่อไป