Page 195 - เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอร์เบื้องต้น
P. 195
เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอร์เบื้องต้น 11
digitalWrite(led_pin[count], LOW); // Turn off LED
delay(DELAY_TIME);
}
}
โปรแกรมที่ 4.3 ไฟล์ MovingLED_Array.ino โปรแกรมภาษา C/C++ ของ Arduino เพื่อควบคุมไฟวิ่ง
LED แบบใช้ตัวแปรอะเรย์
4.1.7 การทดลองอินพุตดิจิตอลของ Arduino Uno
คุณสมบัติของขาพอร์ตอินพุต
ขาพอร์ตของ Arduino Uno จะถูกก าหนดเป็นอินพุตตั้งแต่เริ่มต้น จึงไม่จ าเป็นต้องใช้ฟังก์ชั่น pinMode ()
ในการก าหนดให้เป็นอินพุต ขาพอร์ตที่ถูกก าหนดเป็นอินพุตจะมีสถานะเป็นอิมพีแดนซ์สูง ท าให้มีความต้องการ
กระแสไฟฟ้าจากอุปกรณ์ที่ต้องการอ่านค่าอินพุตน้อยมาก ท าให้ไม่สามารถรับหรือจ่ายกระแสให้กับวงจรภายนอก
ท าให้เขาที่เป็นอินพุตนี้ไปใช้งานบางประเภท เช่นสร้างตัวตรวจจับการสัมผัสที่อาศัยการวัดค่าความจุไฟฟ้า
ส าหรับขาอินพุต เมื่อไม่มีอินพุตป้อนจะต้องก าหนดค่าแรงดันให้แน่นอน ท าได้โดยต่อตัวต้านทานพลูอัป
(Pull-up Resistor) โดยต่อขาของตัวต้านทานขาหนึ่งไปยังไฟเลี้ยง หรือต่อพลูดาวน์ (Pull-down) ซึ่งต่อขาหนึ่ง
ของตัวต้านทานจากขาพอร์ตลงกราวด์ ค่าตัวต้านทานที่ใช้ทั่วไปคือ 10kΩ ดังรูปที่ 4.1
Arduino Uno มีขาพอร์ตดิจิตอลที่ก าหนดให้เป็นอินพุตหรือเอาต์พุตจ านวน 13 ขา ถ้าต้องการก าหนด
เป็นอินพุตต้องก าหนดด้วยฟังก์ชั่น pinMode และอ่านค่าอินพุตได้จากฟังก์ชั่น digitalRead ซึ่งมีรุปแบบดังนี้
digitalRead (pin);
เมื่อ pin คือหมายเลขขาที่ต้องการอ่านค่าสถานะ
เมื่อฟังก์ชั่นท างานค่าเป็น LOW (ค่าเป็น “0”) หรือ HIGH (ค่าเป็น “1”)
รูปที่ 4.1 แสดงการต่อตัวต้านทานเพื่อก าหนดสภาวะของขาพอร์ตอินพุตในขณะที่ยังไม่มีอินพุตส่งเข้ามา
หน่วยที่ 4 ฟังก์ชั่นพื้นฐานของ Arduino และการควบคุมหลอดไฟ LED เรียบเรียงโดยครูทันพงษ์ ภู่รักษ์