เขียนโปรแกรม Arduino ด้วยภาษาซี ตัวอย่างที่ 7

 บทความนี้เรียนรู้การรับอินพุตแบบดิจิตอล คือ การอ่านค่า High และ Low ทางขาอินพุตดิจิตอลคือขา D2 เป็นตัวอย่างที่ต้องใช้อุปกรณ์เพิ่มเติมคือ สวิตช์ ปุ่มกด แบบ กดติด ปล่อยดับ เข้าที่ขา D2 ตามรูปตัวอย่าง ต่อแบบง่ายๆ ไม่ใช้อุปกรณ์เยอะ ต้องมีตัวต้านทานต่อลง GND ที่ขา D2 ด้วยเรียกว่าต่อพูลดาวน์ เพื่อดึงสัญญานรบกวนไม่พึงประสงค์ให้ครบวงจรไป พร้อมเป็นตัวแบ่งกระแสอินพุตให้เบาลง

ส่วนการแสดงผล ใช้ LED ในบอร์ดที่มีอยู่แสดงผลการกดปุ่ม ขา PB5 หรือ ขา D13 นั่นเอง





โค้ดเขียนตามดังนี้

const int buttonPin = 2;     // กำหนดขาอินพุตปุ่มกด

int buttonState = 0;         // กำหนดตัวแปรสถานะการกดปุ่ม สถานะเริ่มต้น

void setup() {

 pinModeLED_BUILTIN, OUTPUT);  // กำหนดโหมดพอร์ต LED ในบอร์ดเป็นเอาท์พุต

 pinMode(buttonPin, INPUT);   // กำหนดโหมดพอร์ต ขา buttonpin เป็นอินพุต

 }

 void loop() {

  buttonState = digitalRead(buttonPin);   //เช็คสถานะปุ่มกด

if (buttonState == HIGH) {                       //หากสถานะปุ่มเป็น HIGH ทำตามเงื่อนไข

digitalWrite LED_BUILTIN, HIGH);     // ตามเงื่อนไข  =LED ติด 1 วินาที ดับ 1 วินาที 

    delay(1000); 

    digitalWrite(LED_BUILTIN, LOW); 

    delay(1000); 

   } else {                                                 // นอกเงื่อนไข = ให้ LED ดับ

    digitalWriteLED_BUILTIN, LOW);    

  }

 }

เมื่อโหลดโปรแกรมแล้วรันจะเป็นดังในคลิป
คือ กดปุ่ม 1 ครั้ง LED ติดค้าง 1 วินาทีแล้วดับ
 หากกดแช่ LED จะติดค้าง 1 วินาทีแล้วดับ 1วินาที วนไปเรื่อยๆ จนปล่อยปุ่มกด LED จึงดับ


โพสต์ยอดนิยมจากบล็อกนี้

เฟต(FET)

คลาสต่างๆของวงจรขยายเสียง

การเปลี่ยนฐานของระบบเลข