ต้องการทำสวิตเมื่อกดสวิตค้างไว้ledจะยังไม่ติดแต่ถ้าปล่อยสวิตแล้วledถึงจะทำงาน
ขอบคุณที่ช่วยแชร์ครับ
ขอเสริมอีกตัวอย่าง ตามนี้ครับ https://www.arduino.cc/en/Tutorial/InputPullupSerial
ข้างบนเป็นปุ่มกด ข้างล่างเป็นหมุนซะแล้ว
จาก sketch ที่ให้มา เหมือนหมุนแล้ว LED bar สว่างเป็นแถบตาม volume ที่หมุน ถ้าไฟดวงสุดท้ายติด แสดงว่า ledLevel=10 ก็ที่นอก for loop ท้าย sketch เพิ่ม
if (ledLevel == ledCount) {
digitalWrite(BuzzerPins, HIGH);
delay (500);
}
digitalWrite(BuzzerPins, LOW);
แต่ code นี้จะดังค้างแค่ 500ms ถ้านานกว่านี้ ไม่แนะนำให้ใช้ delay เพราะจะไป block code อื่น เช่นถ้าใส่ delay เป็น 5000 (5 วิ) ช่วง 5 วิ นี่ หมุนแล้ว LED ไม่วิ่งเลย เพราะโค้ดค้างอยู่ที่บรรทัด delay ต้องเปลี่ยน delay เป็นโค้ดจับเวลาแบบ non-blocking แทน ลองเล่นดูครับ ไม่ยาก
ขอบคุณที่ช่วยแชร์ครับ
แนะนำเพิ่มเติม ไลบารี หน่วงเวลาแบบไม่ต้อง delay
http://blog.protoneer.co.nz/arduino-task-scheduler/