Page 215 - เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอร์เบื้องต้น
P. 215
เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอร์เบื้องต้น 31
ตัวอย่างนี้จะควบคุมความสว่างของ LED ที่ต่อกับขา 11 ให้เป็นไปตามค่าที่อ่านได้จากตัวต้านทานปรับค่า
ได้ที่ต่อกับขา A0
4.3.3 การทดลองอินพุตแอนะล็อกของ Arduino
ภายในไมโครคอนโทรลเลอร์ Aธmega328 บนบอร์ด Arduino มีวงจรแปลงสั ญญาณแอนะล็อกเป็น
ดิจิตอล ความละเอียด 10 บิตจ านวน 6 ช่อง ซึ่งได้ก าหนดขาต่อเป็น A0 ถึง A6 วงจรแปลงสัญญาณแอนะล็อก
เป็นดิจิตอลมีความละเอียด 10 บิตท าหน้าที่แปลงแรงดันอินพุต 0 ถึง 5V เป็นค่าเลขจ านวนเต็ม 0 ถึง 1023
ฟังก์ชั่นส าหรับอ่านค่าจากอินพุตแอนะล็อกคือ analogRead() โดยค่าในวงเล็บคือหมายเลขของช่อง
สัญญาณที่ต้องการอ่านค่า (0 ถึง 6) เมื่อฟังก์ชั่นท างานเสร็จจะคืนค่าเป็นเลขจ านวนเต็ม (int) จาก 0 ถึง 1,023
ถ้าต้องการค านวณเป็นค่าแรงดันที่มีหน่วยเป็นโวลต์ (Volt : V) กระท าได้จากความสัมพันธ์ดังนี้
volt = ค่าที่อ่านได้ x 5 /1023
4.4 ฟังก์ชั่นเกี่ยวกับเวลา
4.4.1 unsigned long millis()
คืนค่าเป็นค่าเวลาในหน่วยมิลลิวินาที นับตั้งแต่เริ่มรันโปรแกรมปัจจุบัน
ค่าที่ส่งกลับจากฟังก์ชั่น
ค่าเวลาในหน่วยเป็นมิลลิวินาที ตั้งแต่เริ่มรันโปรแกรมปัจจุบันคืนค่าเป็น unsigned long ค่า
ตัวเลขจะเกิดการโอเวอร์โฟล์ว (ค่าเกินแล้วกลับเป็นศูนย์) เมื่อเวลาผ่านไปประมาณ 9 ชั่วโมง
ตัวอย่างที่ 4.12
long time;
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.print("Time: ");
time = millis();
Serial.println(time); //prints time since program started
delay(1000); }
// wait a second so as not to send massive amounts of data
หน่วยที่ 4 ฟังก์ชั่นพื้นฐานของ Arduino และการควบคุมหลอดไฟ LED เรียบเรียงโดยครูทันพงษ์ ภู่รักษ์