ความรู้แน่น ฟรีสำหรับชุมชน ArduinoAll ที่นี่เท่านั้น

ฟรีและดีที่สุด คอร์สอบรม Arduino + NodeMCU
ทำเพื่อแบ่งปัน ห้ามนำไปจำหน่าย หรือเก็บเงินค่าเรียน
  !!!


  


AllNewStep รับประกันคุณภาพทุกชิ้น วันจันทร์-ศุกร์แจ้งชำระสินค้าก่อน 14.00 จัดส่งทันทีวันนี้ค่ะ

กรุงเทพ /ภาคกลาง ได้พรุ่งนี้


*** สินค้าทุกชิ้น ถ้าสามารถทำรายการสั่งซื้อได้ แสดงว่ามีครบทุกรายการค่ะ *** 

พิมพ์ค้นหาบทความ หัวข้อกระทู้ และสินค้าในเว็บ AllNewStep ได้ที่นี่
QUOTE 

สอบการรัค่าจากสวิตซ์

วรรธนะ

ผมอยากเขียนโปรแกรม ให้กดสวิตซ์ค้างไว้ 3 วินาที แล้ว LED ติด  กดแล้วปล่อยอีกที LED ดับ ต้องเขียนแบบไหนครับ 

QUOTE 
ความคิดเห็นที่ #1
เจ้าของร้าน

ทำได้ครับ ลองคิดตามนี้

เขียนโปรแกรมกำหนดสถานะของปุ่มกด = กด/ไม่กด

แล้ว เช็คทุกวินาทีว่ายังกดไว้อยู่ ถ้าครบ 3 ครั้งแสดงว่ากดค้างไว้ 3 วินาทีแล้ว หรือถ้าสถานะเปลียนก็ให้รีเซตตัวนับเวลา แสดงว่าปล่อยก่อน 3 วินาที

ตัวอย่างคร่าว ๆ คอมไพล์ไม่ผ่าน ให้เห็นภาพชัดเจนตามนี้

int button = 5;

int counter = 0;

void loop(){

   if(digitalRead(button)==1){

      counter++;

      delay(1000);

     if(counter==3){

         // กดค้างไว้ครบ 3 วินาที

     }

   }else{

      counter = 0;

      // ปล่อยก่อนครบ 3 วินาที

   }

}

 

สำหรับ การใช้งานจริง การเขียนโปรแกรม Arduino ควรหลีกเลี่ยงคำสั่ง delay เพราะโปรแกรมทั้งหมดจะหยุด แนะนำลองศึกษาการทำไฟกระพริบแบบไม่ใช้คำสั่ง delay ตามนี้ประกอบครับ

https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay

แสดงความคิดเห็นที่ 1-1 จากทั้งหมด 1 ความคิดเห็น
ขาย ARDUINO
คุณภาพ อันดับ 1

ได้รับรางวัลร้านยอดเยี่ยม
ตั้งแต่ปี 2558
ขาย Arduino
วีดีโอสอน Arduino

สอน esp8266

สอน Arduino IoT
สอน Arduino แบบเร็ว

สอน NodeMCU

อุปกรณ์ Arduino

MEMBER ZONE

พูดคุย-สอบถาม