Page 197 - เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอร์เบื้องต้น
P. 197
เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอร์เบื้องต้น 13
*/
#define LED_PIN 11 // choose the pin for the LED
#define IN_PIN 7 // choose the input pin (for a pushbutton)
int val = 0;
void setup ()
{
pinMode (LED_PIN, OUTPUT); // declare LED as output
pinMode (IN_PIN, INPUT); // declare pushbutton as input
}
void loop ()
{
val = digitalRead (IN_PIN); // read input value
if (val == LOW) // check the input as LOW (button pushed)
{
digitalWrite (LED_PIN, HIGH); // turn LED ON
}
else
{
digitalWrite (LED_PIN, LOW); // turn LED OFF
}
โปรแกรมที่ 4.4 ไฟล์ button_LED.ino โปรแกรมภาษา C ของ Arduino ส าหรับอ่านค่าอินพุตจากสวิตช์
แบบปุ่มกดเพื่อควบคุม LED
การท างานของ LED1 จะตรงข้ามกับสถานะของสวิตช์ คือเมื่อไม่กดสวิตช์ จะอ่านสถานะของขา 7 ได้
ลอจิกสูง จึงต้องสั่งให้ขา 11 เป็นลอจิกต่ าหรือ “0” เพื่อท าให้ LED1 ดับ เมื่อกดสวิตช์ อ่านค่าสถานะของขา 7 ได้
ลอจิก “0” ต้องสั่งให้ขา 11 เป็น “1” เพื่อขับ LED1 ติดสว่าง
เมื่อโปรแกรมท างานได้ผลตามที่ต้องการแล้วให้ทดลองตัวต้านทานพลูอัปค่า 10kΩ ออก เพื่อให้ขา 7 ลอย
สังเกตกรณีนี้ เมื่อยังไม่มีการกดสวิตช์ LED1 อาจติดกะพริบด้วยความเร็วสูง เห็น LED สว่างเรื่อยๆ เนื่องจาก
สถานะของขา Di7 เป็น “0” และ “1” สลับกันไม่แน่นอน
หน่วยที่ 4 ฟังก์ชั่นพื้นฐานของ Arduino และการควบคุมหลอดไฟ LED เรียบเรียงโดยครูทันพงษ์ ภู่รักษ์