เรียนรู้การเขียนโปรแกรม Arduino อ่านค่าสวิตช์ปุ่มกด - Griffinics

Latest

เว็บบล็อกนี้จัดทำขึ้นเพื่อเก็บสะสมองค์ความรู้และประสบการณ์ด้านต่างๆ ที่ผู้เขียนได้เรียนรู้ระหว่างเส้นทางชีวิตการงาน ไว้เป็นวิทยาทานแด่ศิษย์อาจารย์ Google ทุกทาน

วันพฤหัสบดีที่ 14 พฤษภาคม พ.ศ. 2563

เรียนรู้การเขียนโปรแกรม Arduino อ่านค่าสวิตช์ปุ่มกด




       ในการใช้งานเครื่องอำนวยความสะดวกต่างๆที่ภายในมีวงจรอิเล็กทรอนิกส์ ต้องมีการสื่อสารระหว่างผู้ใช้ผ่านอุปกรณ์บนแผงหน้าเครื่อง เพื่อควบคุมสั่งการ สิ่งที่ใช้สื่อสารระหว่างคนกับเครื่องที่ง่ายและนิยมใช้กันมานานก็คือ สวิตซ์(Switch) เพื่อให้สามารถอ่านค่าจากสวิตช์ได้จะต้องเข้าใจหลักการทำงานของสวิตช์ และการเลือกใช้ฟังก์ชั่นการรับค่ากับ Arduino ซึ่งก็จะได้เรียนรู้ในการเขียนโปรแกรมเพื่อใช้งานกับบอร์ดไมโครคอนโทรลเลอร์ Arduino ในตัวอย่างต่อไป

  • การต่อวงจรเพื่อใช้งานสวิตช์แบบกดติดปล่อยดับ(Button Switch)

      สวิตช์แบบนี้มีหลายรูปแบบหลายขนาดแล้วแต่การเลือกนำไปใช้ แต่ในตัวอย่างนี้จะใช้สวิตช์ปุ่มกดเป็นตัวอย่าง ในการต่อสวิตช์เพื่อใช้งานกับวงจรสามารถแบ่งออกได้ 2 แบบ ตามการต่ออุปกรณ์เข้ากับวงจร ดังนี้

สวิตช์และสัญลักษณ์ทางอิเล็กทรอนิกส์  


1.การต่อแบบ Active HIGH
      การต่อแบบนี้สวิตช์จะอยู่บนและตัวต้านทานจะอยู่ล่าง มีหน้าที่ในการอ้างอิงแรงดันให้กับขาสัญญาณ ซึ่งเมื่อต่อสวิตช์เข้ากับสัญญาณที่ขา D0 ของ Arduino ค่าที่ได้ปกติจะเป็น LOW เมื่อสวิตช์ถูกกดจะเปลี่ยนสถานะเป็น HIGH ซึ่งมีการต่อวงจรใช้งานดังรูป
  


แผนผังวงจร(Schematic Circuit)                  การต่อใช้งานจริง


ฟังก์ชั่นที่ใช้ในการเขียนโปรแกรมรับค่าสัญญาณจากสวิตช์
digitalRead(pin) ใช้ในการรับค่าจากสวิตซ์
pin: ขาดิจิตอลที่ต้องการควบคุม เช่น 0 หรือ ชื่อตัวแปร
เช่น ต้องการอ่านค่าสัญญาณจากขา D0 จะได้ digitalRead(0); ซึ่งหากสวิตช์โดนกด ค่าที่อ่านได้จะ
เป็น HIGH


2.การต่อแบบ Active LOW
       การต่อแบบนี้การต่อแบบนี้ตัวต้านทานจะอยู่บนและสวิตช์จะอยู่ล่าง ซึ่งเมื่อต่อสวิตช์เข้ากับสัญญาณที่ขา D0 ที่ได้ ปกติจะเป็น HIGH เมื่อสวิตช์ถูกกดจะเปลี่ยนสถานะเป็น LOW ค่าที่อ่าน
ได้จะเป็น LOW มีการต่อวงจรใช้งานดังรูป



อุปกรณ์ที่ใช้ในการเรียนรู้
  1. บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO
  2. ตัวต้านทาน ค่า 100 โอห์ม
  3. สวิตช์
แผนผังวงจร(Schematic Circuit)
วงจรสำหรับต่อทดลองโปรแกรม




โฟล์ชาร์ตการทำงานของโปรแกรม
     การทำงานของโปรแกรมตัวอย่านี้จะทำการอ่านค่าสัญญาณจากขาดิจิตอลแล้วทำการตรวจเช็คเงื่อนไขถ้าสัญญาณเกิดการเปลี่ยนแปลงหรือมีการกดปุ่มโปรแกรมจะส่งค่าสถานะของขาดิจิตอลทางพอร์ตอนุกรม(Serial Port)






ซอร์สโค้ดโปรแกรม (Source Code) ที่ใช้


//Project Name: Arduino with Digital PIN
//Programmer: Khanchai
//Create Date: 25 Dec 2017
//Description: Send status of switch pressed by digitalRead function.

#define Sw1 0 //define digital pin name Sw1 is D1 Pin

//Create Setup function
void setup()
{
  //setup digital pin Mode. (INPUT)
  pinMode(Sw1,INPUT_PULLUP); //Setup Sw1 pin is INPUT Mode
  
  //Initialize serial and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB
  }
  
  Serial.println("Program is Start.");
}

//Main Loop
void loop()
{
  if(digitalRead(Sw1)){ //if Sw1 Pressed
    Serial.print("PIN D0 Sw1 is => ");
    Serial.println(digitalRead(Sw1));   //digitalRead(Sw1)
  }
}
การเรียนรู้การใช้งาน Arduino เบื้องต้น คลิก>>

อ้างอิง: www.arduino.cc

ไม่มีความคิดเห็น:

แสดงความคิดเห็น