ในการใช้งานเครื่องอำนวยความสะดวกต่างๆที่ภายในมีวงจรอิเล็กทรอนิกส์ ต้องมีการสื่อสารระหว่างผู้ใช้ผ่านอุปกรณ์บนแผงหน้าเครื่อง เพื่อควบคุมสั่งการ สิ่งที่ใช้สื่อสารระหว่างคนกับเครื่องที่ง่ายและนิยมใช้กันมานานก็คือ สวิตซ์(Switch) เพื่อให้สามารถอ่านค่าจากสวิตช์ได้จะต้องเข้าใจหลักการทำงานของสวิตช์ และการเลือกใช้ฟังก์ชั่นการรับค่ากับ Arduino ซึ่งก็จะได้เรียนรู้ในการเขียนโปรแกรมเพื่อใช้งานกับบอร์ดไมโครคอนโทรลเลอร์ Arduino ในตัวอย่างต่อไป
- การต่อวงจรเพื่อใช้งานสวิตช์แบบกดติดปล่อยดับ(Button Switch)
สวิตช์แบบนี้มีหลายรูปแบบหลายขนาดแล้วแต่การเลือกนำไปใช้ แต่ในตัวอย่างนี้จะใช้สวิตช์ปุ่มกดเป็นตัวอย่าง ในการต่อสวิตช์เพื่อใช้งานกับวงจรสามารถแบ่งออกได้ 2 แบบ ตามการต่ออุปกรณ์เข้ากับวงจร ดังนี้
สวิตช์และสัญลักษณ์ทางอิเล็กทรอนิกส์
1.การต่อแบบ Active HIGH
การต่อแบบนี้สวิตช์จะอยู่บนและตัวต้านทานจะอยู่ล่าง มีหน้าที่ในการอ้างอิงแรงดันให้กับขาสัญญาณ ซึ่งเมื่อต่อสวิตช์เข้ากับสัญญาณที่ขา D0 ของ Arduino ค่าที่ได้ปกติจะเป็น LOW เมื่อสวิตช์ถูกกดจะเปลี่ยนสถานะเป็น HIGH ซึ่งมีการต่อวงจรใช้งานดังรูป
แผนผังวงจร(Schematic Circuit) การต่อใช้งานจริง
ฟังก์ชั่นที่ใช้ในการเขียนโปรแกรมรับค่าสัญญาณจากสวิตช์
digitalRead(pin) ใช้ในการรับค่าจากสวิตซ์
pin: ขาดิจิตอลที่ต้องการควบคุม เช่น 0 หรือ ชื่อตัวแปร
เช่น ต้องการอ่านค่าสัญญาณจากขา D0 จะได้ digitalRead(0); ซึ่งหากสวิตช์โดนกด ค่าที่อ่านได้จะ
เป็น HIGH
เป็น HIGH
2.การต่อแบบ Active LOW
การต่อแบบนี้การต่อแบบนี้ตัวต้านทานจะอยู่บนและสวิตช์จะอยู่ล่าง ซึ่งเมื่อต่อสวิตช์เข้ากับสัญญาณที่ขา D0 ที่ได้ ปกติจะเป็น HIGH เมื่อสวิตช์ถูกกดจะเปลี่ยนสถานะเป็น LOW ค่าที่อ่านได้จะเป็น LOW มีการต่อวงจรใช้งานดังรูป
อุปกรณ์ที่ใช้ในการเรียนรู้
- บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO
- ตัวต้านทาน ค่า 100 โอห์ม
- สวิตช์
แผนผังวงจร(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)
}
}
อ้างอิง: www.arduino.cc
ไม่มีความคิดเห็น:
แสดงความคิดเห็น