Arduino กับสวิตช์และหลอดแอลอีดี |
ในการใช้งานเครื่องอำนวยความสะดวกต่างๆที่ภายในมีระบบไฟฟ้า วงจรอิเล็กทรอนิกส์ ระบบคอมพิวเตอร์ เข้ามาเกี่ยวข้องเป็นส่วนหนึ่งในการทำงาน ซึ่งในการใช้งานเครื่องนั้นๆจำเป็นอย่างยิ่งที่ต้องมีการสื่อสารระหว่างผู้ใช้และเครื่องผ่านอุปกรณ์บนแผงหน้าเครื่อง เพื่อควบคุมการเปิด-ปิด การสั่งงาน การแสดงสถานะการทำงาน ต่างๆเหล่านี้ สิ่งที่ใช้สื่อสารระหว่างคนกับเครื่องที่ง่ายและนิยมใช้กันมานานก็คือ สวิตซ์(Switch) และหลอดแอลอีดี(LED:Ligh Emitting Diode ,ไดโอดเปล่งแสง) ซึ่งก็จะได้เรียนรู้ในการเขียนโปรแกรมเพื่อใช้งานกับบอร์ดไมโครคอนโทรลเลอร์ Arduino ในตัวอย่างต่อไป
ในการเขียนโปรแกรม Arduino เพื่อใช้งานสวิตช์และหลอดแอลอีดี จะต้องเข้าใจหลักการทำงานของอุปกรณ์การต่อวงจร และการเลือกใช้ฟังก์ชั่นการรับและสั่งงานให้กับ Arduino
- หลักการต่อวงจรเพื่อใช้งานสวิตช์แบบกดติดปล่อยดับ(Button Switch)
สวิตช์แบบนี้มีหลายรูปแบบขึ้นอยู่กับลักษณะการนำไปใช้ งาน ซึ่งในการต่อสวิตช์เพื่อใช้งานกับวงจรโดยทั่วไปแล้วสามารถแบ่งออกได้ 2 แบบ ตามวิธีการต่ออุปกรณ์เข้ากับวงจรได้ดังนี้ตัวอย่างสวิตช์กดติดปล่อยดับ ที่ใช้ในแผงวงจร |
ตัวอย่างสวิตช์ปุ่มกดที่ใช้กับตู้ควบคุมไฟฟ้า |
โครงสร้างภายในสวิตช์กดติดปล่อยดับ |
สัญลักษณ์ทางอิเล็กทรอนิกส์ |
- การต่อสวิตช์แบบ Active HIGH
การต่อสวิตช์เข้ากับวงจรแบบ Active HIGH |
วงจรการต่อใช้งานจริง |
- ฟังก์ชั่นที่ใช้ในการเขียนโปรแกรมรับค่าสัญญาณจากสวิตช์
digitalRead(pin) ใช้ในการรับค่าจากสวิตช์pin : ขาดิจิตอลที่ต้องการควบคุม เช่น 0 หรือ ชื่อตัวแปร เช่น ต้องการอ่านค่าสัญญาณจากขา D0 จะได้ digitalRead(0); ซึ่งหากสวิตช์โดนกด ค่าที่อ่านได้จะเป็น HIGH
2.การต่อแบบ Active LOW
การต่อแบบนี้การต่อแบบนี้ตัวต้านทานจะอยู่บนและสวิตช์จะอยู่ล่าง ซึ่งเมื่อต่อสวิตช์ เข้ากับสัญญาณที่ขา D0 ที่ได้ ปกติจะเป็น HIGH เมื่อสวิตช์ถูกกดจะเปลี่ยนสถานะเป็น LOW ค่าที่อ่านได้จะเป็น LOW มีการต่อวงจรใช้งานดังรูปการต่อสวิตช์เข้ากับวงจรแบบ Active LOW |
วงจรการต่อใช้งานจริง |
- การต่อวงจรเพื่อใช้งานหลอดแอลอีดี LED
หลอด LED ในปัจจุบันมีการออกแบบและผลิตออกมาใช้งานหลากหลายรูปแบบหลายชนิด แต่โดยพื้นฐานการต่อใช้งานแล้วเหมือนกัน คือ มีขาต่อใช้งาน ขาบวก และ ขาลบ ดังรูปตัวอย่าหลอดแอลอีดี |
และในการต่อใช้งานจริงต้องต่อตัวต้านทาน(Resistor) เพื่อจำกัดกระแส ป้องกันไม่ให้หลอดได้รับความเสียหายซึ่งการต่อใช้งานกับ Arduino สามารถต่อวงจรควบคุมใช้งานได้ 2 แบบ คือ
1.การต่อแบบ OUTPUT HIGH
หลอด LED จะติดเมื่อได้รับสัญญาณควบคุมเป็น HIGH หรือระดับแรงดันไฟฟ้า 5 โวลต์ ดังรูป ซึ่งจะทำให้เกิดการฟอร์เวิดไบอัส(Forword Bias) ทำกระแสไหลผ่านหลอด LED ผ่านตัวต้านทานจำกัดกระแส 330 โอห์ม แล้วครบวงจรที่จุดกราวด์ ทำให้หลอดติดการต่อหลอดแอลอีดีเข้ากับวงจรแบบ Output HIGH |
วงจรการต่อใช้งานจริง |
แผนผังวงจร(Schematic Circuit) การต่อใช้งานจริง
- ฟังก์ชั่นที่ใช้ในการเขียนโปรแกรมเพื่อควบคุมการติด-ดับ ของหลอด LED
digitalWrite(pin,value) ใช้ในการสั่งงาน Output pin: ขาดิจิตอลที่ต้องการควบคุม เช่น 0 หรือ ชื่อตัวแปร
value: ค่าของระดับแรงดันที่ที่ต้องการควบคุม HIGH , LOW
เช่น หากต้องการให้หลอดไฟติด ก็สั่งงานด้วย digitalWrite(0,HIGH);
2.การต่อแบบ OUTPUT LOW
หลอด LED จะติดเมื่อได้รับสัญญาณควบคุมเป็น LOW หากต้องการให้หลอดไฟติด ก็สั่งงานด้วย digitalWrite(0,LOW); ดังรูปการต่อหลอดแอลอีดีเข้ากับวงจรแบบ Output LOW |
วงจรการต่อใช้งานจริง |
แผนผังวงจร(Schematic Circuit) การต่อใช้งานจริง
การควบคุม OUTPUT นอกจากจะสามารถควบคุมการติดดับของหลอด LED แล้ว ยังสามารถนำไปควบคุมอุปกรณ์ไฟฟ้าอิเล็กทรอนิกส์อื่นๆได้เช่น มอเตอร์ไฟฟ้า, หลอดไฟ, เครื่องใช้ไฟฟ้าที่ใช้กำลัง
ไฟฟ้าวัตต์สูงต่างๆได้ ผ่านอุปกรณ์ที่เป็นตัวกลางในการควบคุมที่เรียกว่า ไดร์เวอร์ เพียงแต่จะต้องเรียนรู้การควบคุมอปกรณ์นั้นๆให้สามารถทำงานได้อย่างที่เราต้องการ
อุปกรณ์ที่ใช้ในการเรียนรู้
- บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO
- หลอด LED
- ตัวต้านทาน ค่า 330 Ω และ 10 ㏀
- สวิตช์
- โปรเจคบอร์ด(ถ้ามี)
แผนผังวงจร(Schematic Circuit)
การต่อวงจรสำหรับต่อทดลองโปรแกรม

โฟล์ชาร์ตการทำงานของโปรแกรม
ซอร์สโค้ดโปรแกรม (Source Code) ที่ใช้ในการทดลอง
//Project Name: Arduino with Digital PIN
//Create Date: 14 Dec 2017
//Description: led is On if Sw1 pressed.
#define led 1 //define pin name led is D0 pin
#define Sw1 0 //define pin name Sw1 is D1 Pin
//Create Setup function
void setup(){
//setup digital pin Mode. (INPUT/OUTPUT)
pinMode(led, OUTPUT); //Setup led pin is OUTPUT Mode
pinMode(Sw1,INPUT); //Setup Sw1 pin is INPUT Mode
//Setup status pin for Default
digitalWrite(led,LOW); //led off
}
//Main Loop
void loop(){
if(digitalRead(Sw1)==LOW){ //if Sw1 Pressed
digitalWrite(led,HIGH); //led On
}else{ //else
digitalWrite(led,LOW); //led off
}
}
การเรียนรู้การใช้งาน Arduino เบื้องต้นข้อมูลอ้างอิง: www.arduino.cc
ไม่มีความคิดเห็น:
แสดงความคิดเห็น