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                                 เรียบเรียงโดยครูทันพงษ์  ภู่รักษ์
   210   211   212   213   214   215   216   217   218   219   220