เครื่องมือเฉพาะทางส าหรับ อุตสาหกรรม ที่หนึ่งแห่ง ... · F4050 : การกัดปาดหน้าเก็บผิวละเอียด
หน่วยที่ 5 ARDUINO...
Transcript of หน่วยที่ 5 ARDUINO...
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
1 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
หนวยท 5 ไลบรารโปรแกรมส าหรบ ARDUINO และการอานคาแอนะลอก
สาระส าคญ
การพฒนาโปรแกรมภาษา C/C++ ดวย Arduino ส าหรบบอรด Arduino ด าเนนการภายใตการสนบสนนของไฟลไลบรารหลกททาง Arduino จดเตรยมใหผนวกเขากบไฟลไลบรารทพฒนาขนมาเปนเฉพาะส าหรบบอรด Arduino ทงนเพอชวยลดความซบซอนในการเขยนโปรแกรมควบคมลง Arduino IDE ไดบรรจไฟลไลบรารทชวยใหการเขยนโปรแกรมภาษา C/C++ เพอใหใชงานไมโครคอนโทรลเลอรท าไดงายขน รวมถงผเรมตนใหมกสามารถเรยนรเพอใชงานไมโครคอนโทรลเลอรได โดยไมจ าเปนตองศกษาเพอลงลกในรายละเอยดของสถาปตยกรรม
เนอหาสาระการเรยนร
5.1 ไลบรารโปรแกรมส าหรบ Arduino 5.2 ไลบรารเกยวกบเวลา 5.3 ไลบรารเกยวกบการอานคาดจตอล 5.4 ไลบรารเกยวกบการอานคาแอนะลอก 5.5 ไลบรารเกยวกบการสอสารขอมลอนกรม
จดประสงคการเรยนร
จดประสงคทวไป 1. เพอใหมความรความเขาใจเกยวกบไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก 2. เพอใหสามารถน าความรไปประยกตใชในการเขยนโปรแกรมก าหนดการท างานพนฐานของ Arduino 3. เพอใหตระหนกถงความส าคญเกยวกบไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
2 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
จดประสงคเชงพฤตกรรม
1. เลอกใชงานไลบรารโปรแกรมส าหรบ Arduino ได 2. เลอกใชงานไลบรารเกยวกบเวลาส าหรบ Arduino ได 3. เลอกใชงานไลบรารเกยวกบการอานคาดจตอลส าหรบ Arduino ได 4. เลอกใชงานไลบรารเกยวกบการอานคาแอนะลอกส าหรบ Arduino ได 5. เลอกใชงานไลบรารเกยวกบการสอสารขอมลอนกรมส าหรบ Arduino ได
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
3 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
*************************************************************************************
เรอง ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก ใชเวลา 20 นาท วชา ไมโครคอนโทรลเลอรเบองตน รหสวชา (2127-2107) ระดบชน ประกาศนยบตรวชาชพ (ปวช.) สาขาวชา เมคคาทรอนกส ค าชแจง 1. แบบทดสอบมทงหมด 10 ขอ (10 คะแนน) 2. ใหผเรยนเลอกค าตอบทถกทสดแลวกาเครองหมายกากบาท () ลงในกระดาษค าตอบ
1. หนวยความจ าขอมลออพรอม ภายในตวไมโครฯเมอตองการใชงานตองผนวกไฟลไลบรารดวยค าสง ก. #include< EEPROM.d> ข. #include<EEPROM.o> ค. #include<EEPROM. b> ง. #include<EEPROM.h>
2. servo เมอตองการใชงานตองผนวกไฟลไลบรารดวยค าสง ก. #include<servo.d> ข. #include<servo.h> ค. #include<servo.o> ง. #include <servo.b> 3. Arduino UNO บรรจฟงกชน Wire ส าหรบตดตอกบอปกรณผานบส ก. SPI ข. GSM ค. UART ง. I2C 4. Arduino UNO บรรจฟงกชนและค าสงส าหรบตดตอกบ SPI โดยตองใชขาพอรต ก. 12 (MISO), 11 (MOSI) และ 10 (SS) ข. 10 (MISO), 11 (MOSI) และ 12 (SS) ค. 13 (MISO), 12 (MOSI) และ 11 (SS) ง. 11 (MISO), 12 (MOSI) และ 13 (SS)
แบบทดสอบกอนเรยน หนวยท 5 เรอง ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
4 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
5. บส I2C Arduino UNO ตองใชขาพอรต ก. A4 (SDA) และ A5 (SCL) ข. A3 (SDA) และ A4 (SCL) ค. A2 (SDA) และ A3 (SCL) ง. A1 (SDA) และ A2 (SCL)
6. ฟงกชนเกยวกบพอรตอนพตเอาตพต ฟงกชน in เปนฟงกชนอะไร ก. อานคาสถานะลอจกของพอรตทก าหนด ข. ก าหนดขาพอรตทตองการอานคา ค. อานคาดจตอลจากพอรตอนกรม ง. อานคาดจตอลจากพอรตดจตอล 7. ฟงกชน out เปนฟงกชนอะไร ก. ก าหนดขาพอรตทตองการอานคา ข. ก าหนดขอมลดจตอลไปยงพอรตทก าหนด ค. อานคาดจตอลจากพอรตดจตอล 2 ง. อานคาดจตอลจากพอรตดจตอล 1 8. ฟงกชนการอานคาแอนะลอกของ Arduino UNO ใชพอรตอยางไร ก. ก าหนดชองอนพตแอนะลอกทตองการตรงกบขาพอรต A0 ถง A6 ข. ก าหนดชองอนพตแอนะลอกทตองการตรงกบขาพอรต A1 ถง A6 ค. ก าหนดชองอนพตแอนะลอกทตองการตรงกบขาพอรต A2 ถง A6 ง. ก าหนดชองอนพตแอนะลอกทตองการตรงกบขาพอรต A3 ถง A6 9. ฟงกชนเกยวกบการสอสารขอมลอนกรม เมอตองการใชงานชอง UART ตอสายสญญาณอยางไร ก. RxD (ขาพอรต A1) และ TxD (ขาพอรต A0) ข. RxD (ขาพอรต A0) และ TxD (ขาพอรต A1) ค. RxD (ขาพอรต 1) และ TxD (ขาพอรต 0) ง. RxD (ขาพอรต 0) และ TxD (ขาพอรต 1) 10. uart_available คอฟงกชนอะไร ก. ตวแปรจ านวนเตม 64 บต แบบไมคดเครองหมายของโมดล UART ข. ปดคาตวเลขใหอยในชวงทก าหนดของโมดล UART ค. ตรวจสอบการรบขอมลเขามาของโมดล UART ง. คาต าสดของชวงทก าหนดของโมดล UART
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
5 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
การพฒนาโปรแกรมภาษา C/C++ ดวย Arduino ส าหรบบอรด Arduino ด าเนนการภายใตการสนบสนน
ของไฟลไลบรารหลกททาง Arduino จดเตรยมให ผนวกเขากบไฟลไลบรารทพฒนาขนมาเปนเฉพาะส าหรบบอรด
Arduino ทงนเพอชวยลดความซบซอนในการเขยนโปรแกรมควบคมลง Arduino IDE ไดบรรจไฟลไลบรารทชวยให
การเขยนโปรแกรมภาษา C/C++ เพอใชงานไมโครคอนโทรลเลอรท าไดงายขน
รวมถงผเรมตนใหมกสามารถเรยนรเพอใชงานไมโครคอนโทรลเลอรได โดยไมจ าเปนตองศกษาเพอลงลก
ในรายละเอยดของสถาปตยกรรมของไมโครคอนโทรลเลอร ไฟลไลบรารทส าคญและใชงานกบบอรด Arduino
ประกอบดวย
5.1 ไลบรารโปรแกรมส าหรบ Arduino
EEPROM บรรจไลบรารและค าสงส าหรบตดตอกบหนวยความจ าขอมลออพรอม ภายในตวไมโคร
คอนโทรลเลอร เมอตองการใชงานตองผนวกไฟลไลบรารไวในตอนตนของโปรแกรมดวยค าสง
#include <EEPROM.h>
LiquidCrystal บรรจไลบรารและค าสงส าหรบตดตอกบโมดล LCD แบบอกขระเพอแสดงผลขอความและ
ตวเลข รองรบทงการตดตอแบบ 4 บตและ 8 บต ใชงานไดกบโมดล LCD 8, 16 และ 20 ตวอกษร 1, 2 และ 4
บรรทด เมอตองการใชงานตองผนวกไฟลไลบรารไวในตอนตนของโปรแกรมดวยค าสง
#include <LiquidCrystal.h>
servo บรรจไลบรารและค าสงส าหรบขบเซอรโวมอเตอร ตองท างานรวมกบเซอรโวมอเตอรและตองใชไฟ
เลยงแยกส าหรบเซอรโวมอเตอร เมอตองการใชงานตองผนวกไฟลไลบรารไวในตอนตนของโปรแกรมดวยค าสง
#include <servo.h>
SoftwareSerial บรรจไลบรารและค าสงส าหรบใชงานขาพอรตของ Arduino ในการสอสารขอมลอนกรม
ไลบรารจะถกน ามาใชงานเมอ ขาเชอมตอพอรตอนกรมหลก (RxD และ TxD) ของ Arduino ถกใชงานไปแลว และ
มความตองการตดตออปกรณทตองใชการสอสารขอมลอนกรม การใชงานไลบรารน จะชวยใหผใชงานสามารถใช
ขาพอรตของ Arduino ขาอนทวางมาท าหนาทเปนขาพอรตส าหรบสอสารขอมลอนกรม เมอตองการใชงานตอง
ผนวกไฟลไลบรารไวในตอนตนของโปรแกรมดวยค าสง #include <SoftwareSerial.h>
หนวยท 5ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
6 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
SPI บรรจไลบรารและค าสงส าหรบตดตอกบอปกรณผานบส SPI (Serial Peripheral Interface) โดย
ตองใชขาพอรต 12 (MISO), 11 (MOSI) และ 10 (SS) ในการตดตออปกรณทท างานผานบสแบบ SPI ประกอบ
ดวยไอซหนวยความจ าออพรอมในอนกรม 93Cxxx, ไอซแปลงสญญาณแอนะลอกเปนดจตอล, ไอซแปลง
สญญาณดจตอลเปนแอนะลอก, ไอซวดอณหภม , ไอซขบ LED ตวเลข 7 สวน เปนตน เมอตองการใชงานตองผนวก
ไฟลไลบรารไวในตอนตนของโปรแกรมดวยค าสง #include <SPI.h>
Wire บรรจไลบรารและค าสงส าหรบตดตอกบอปกรณผานบส I2C โดยตองใชขาพอรต A4 (SDA) และ
A5 (SCL) ในการตดตออปกรณ ทท างานผานบส I2C มมากมายเชนไอซหนวยความจ าออพรอมในอนกรม
24Cxxx , ไอซแปลงสญญาณแอนะลอกเปนดจตอล , ไอซแปลงสญญาณดจตอลเปนแอนะลอก ,ไอซวดอณภม ,
ไอซขยายพอรตอนพตเอาตพต, โมดลวทย FM, ตวตรวจจบความชน, ตวตรวจจบความดนบรรยากาศ, ตว
ตวตรวจจบความเรงแบบ 3 แกน เปนตน เมอตองการใชงานตองผนวกไฟลไลบรารไวในตอนตนของโปรแกรมดวย
ค าสง #include <Wire.h>
ส าหรบฮารดแวร Arduino Leonardo ซงบอรด Arduino กเปนฮารดแวรแบบหนงทเขากนไดม
ไลบรารพเศษทเพมเตมขนมานนคอ ไลบราร USB ในการใชงานไลบรารของไลบราร USB นไมตองท าการผนวก
ไลบรารเพมเตมแตอยางใด ผพฒนาโปรแกรมสามารถเรยกใชงานไลบรารไดเลย ไลบราร USB ม 2 ไลบรารยอยคอ
Mouse บรรจไลบรารและค าสงเพอท าใหฮารดแวร Arduino Leonardo หรอบอรด Arduino ท างาน
เปนเมาส USB
Keyboard บรรจไลบรารและค าสงเพอท าใหฮารดแวร Arduino Leonardo หรอบอรด Arduino ท างาน
เปนคยบอรด USB นอกเหนอไปจากไลบรารมาตรฐานและไลบราร USB ททาง Arduino เตรยมมาใหพรอมใชงาน
การเรยกใชงานชดค าสงยอยตางๆ เพอการพฒนาโปรแกรมควบคมส าหรบบอรด Arduino ผพฒนาตอง
ผนวกไฟลไลบรารหลก Arduino.h โดย #include <Arduino.h> เพอประกาศใหตวแปลภาษาหรอคอมไพเลอร
รจกชดค าสงยอยตางๆ ทก าลงจะถกเรยกใชงานจากไฟลไลบราร Arduino.h ไลบรารยอย ของไฟลไลบราร
Arduino.h ประกอบดวย
glcd บรรจไลบรารและค าสงส าหรบแสดงผลขอความ, ตวเลข และสรางภาพกราฟกสทจอแสดงผลแบบ
กราฟก LCD สของแผงวงจร GLCD-XT ไลบรารนมการการก าหนดขาใช งานทเฉพาะเจาะจง
sleep บรรจไลบรารและค าสงส าหรบการหนวงเวลา
in_out บรรจไลบรารและค าสงส าหรบอานคาอนพตดจตอลและสงคาออกทางขาพอรตเอาตพตดจตอล
analog บรรจไลบรารและค าสงส าหรบอานคาจากอนพตแอนะลอกทตอกบตวตรวจจบ
sound บรรจไลบรารและค าสงส าหรบสรางเสยงเพอขบออกล าโพง ฟงกชนนมการก าหนดขาใชงานท
เฉพาะเจาะจง
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
7 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
motor บรรจไลบรารและค าสงส าหรบขบมอเตอรไฟตรง 2 ชอง ตองท างานรวมกบวงจรขบ
มอเตอรทใชไอซ TB6612 และตองใชไฟเลยงแยกส าหรบมอเตอรไฟตรง ไลบรารนมการก าหนดขาใชงานท
เฉพาะเจาะจง
servoMotor บรรจไลบรารและค าสงส าหรบขบเซอรโวมอเตอรตองท างานรวมกบเซอรโวมอเตอร
และตองใชไฟเลยงแยกส าหรบเซอรโวมอเตอร ไลบรารนมการก าหนดขาใชงานทเฉพาะเจาะจง
serial บรรจไลบรารและค าสงส าหรบสอสารขอมลอนกรมผานทางพอรต USB และผานทางขาพอรต TxD
และ RxD ของบอรด Arduino
IRremote บรรจไลบรารและค าสงส าหรบอานรหสของปมรโมตคอนโทรลอนฟราเรด ทใชในเครองใช
ไฟฟา เมอตองการใชงานไลบรารน ตองผนวกไฟลไวในตอนตนของโปรแกรมหลงค าสง #include <Arduino.h>
ดวยค าสง #include <IRremote.h> ในการเรยนรเพอใชงานบอรด Arduino จะใชไฟลไลบรารทงแบบมาตรฐาน
และไฟล Arduino.h รวมกน เพอชวยใหการพฒนาโปรแกรมส าหรบการใชงานมประสทธภาพสงสด และสามารถ
ท าความเขาใจไดงาย ทงนเพอประโยชนในการตอยอดการเรยนรของผใชงานในวงกวาง
5.2 ไลบรารเกยวกบเวลา
5.2.1 sleep และdelay
เปนไลบรารหนวงเวลาโดยประมาณภายในโปรแกรมในหนวยมลลวนาท
รปแบบ
void sleep(unsigned int ms)
void delay(unsigned int ms)
พารามเตอร
ms - ก าหนดคาเวลาทตองการหนวงในหนวยมลลวนาทมคา 0 ถง 65,535
ตวอยางท 5.1
sleep(20); // หนวงเวลาประมาณ 20 มลลวนาท
delay(1000); // หนวงเวลาประมาณ 1 วนาท
5.2.2 delay_us
เปนไลบรารหนวงเวลาโดยประมาณภายในโปรแกรมในหนวยไมโครวนาท
รปแบบ
void delay_us(unsigned int us)
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
8 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
พารามเตอร
us - ก าหนดคาเวลาทตองการหนวงในหนวยไมโครวนาทมคา 0 ถง 65,535
ตวอยางท 5.2
delay_us(100); // หนวงเวลาประมาณ 100 ไมโครวนาท
5.3 ไลบรารเกยวกบการอานคาดจตอล
5.3.1 in
เปนไลบรารอานคาสถานะลอจกของพอรตทก าหนดเปนหนงในไลบราร การอานและเขยนคากบพอรต
อนพตเอาตพต
รปแบบ
char in(x)
พารามเตอร
x - ก าหนดขาพอรตทตองการอานคา
การคนคา
เปน 0 หร อ 1
ตวอยางท 5.4
char x; // ประกาศตวแปร x เพอเกบคาผลลพธจาการอานคาระดบสญญาณ
x = in(2); // อานคาดจตอลจากพอรตดจตอล 2 มาเกบไวทตวแปร x
5.3.2 out
เปนไลบรารก าหนดระดบสญญาณหรอขอมลดจตอลไปยงพอรตทก าหนด
รปแบบ
out(char _bit,char _dat)
พารามเตอร
bit - ก าหนดขาพอรตทตองการ
ตวอยางท 5.5
out(4,1); // ก าหนดใหขาพอรต 4/A6 เปนเอาตพตดจตอลและมคาเปน “1”
out(6,0); // ก าหนดใหขาพอรต 6/A7 เปนเอาตพตดจตอลและมคาเปน “0”
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
9 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
5.4 ไลบรารเกยวกบการอานคาแอนะลอก
5.4.1 analog
เปนไลบรารอานคาขอมลแอนะลอก และแปลงเปนสญญาณดจตอลของไมโครคอนโทรลเลอร ทพอรต
A0 ถง A6 ซงใชในการเชอมตอกบตวตรวจจบ ทใหผลการท างานในรปแรงดนไฟฟาในยาน 0 ถ ง +5V
รปแบบ
unsigned int analog(unsigned char channel)
พารามเตอร
channel - ก าหนดชองอนพตแอนะลอกทตองการมคา 0 ถง 6 ซงตรงกบขาพอรต A0 ถง A6
การคนคา
เปนขอมลทไดจากการแปลงสญญาณของโมดลแปลงสญญาณแอนะลอกเปนดจตอลภายในไมโคร
คอนโทรลเลอร จากชองอนพตทก าหนด โดยขอมลมความละเอยด 10 บต ดงนนคาทเปนไปไดคอ 0 ถง 1,023
5.4.2 knob
เปนไลบรารอานคาขอมลจากตวตานทานปรบคาได KNOB มาเสยบเขากบบอรด Arduino มการท างาน
เหมอนกบค าสง analog() แตคาทอานไดมคาในชวง 80 ถง 1023 เนองจากตวตานทานปรบคาไดทเชอมตออย
รปแบบ
unsigned int knob()
การคนคา
คาทอานไดจากตวตานทานปรบคาได KNOB มคาระหวาง 80 ถง 1023
ตวอยางท 5.6
int val=0; // ก าหนดคาตวแปรส าหรบเกบคาแอนะลอก
val=knob(); // อานคาจากตวตานทานปรบคาได KNOB เกบในตวแปร val
5.4.3 sw_ok()
เปนไลบรารตรวจสอบสถานะสวตช OK บนแผงวงจร จะใชงานไดเมอน าแผงวงจรมาเสยบเขา
กบบอรด Arduino โดยใหสถานะ “เปนจรง” เมอมการกดสวตช และ “เปนเทจ” เมอไมมการกดสวตช
รปแบบ
unsigned char sw_ok()
การคนคา
1 (เปนจรง) เมอมการกดสวตช
0 (เปนเทจ) เมอไมมการกดสวตช
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
10 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
ตวอยางท 5.7
if(sw_ok())
{
beep(); // เมอกดสวตช OK จะมเสยง “ตด” ดงออกล าโพง
}
5.4.4 sw_ok_press()
เปนไลบรารวนตรวจสอบการกดสวตช OK บนแผงวงจร ตองรอจนกระทงสวตชถกปลอยหลงจาก
การกดสวตช จงจะผานไลบรารนไปกระท าค าสงอนๆ
ตวอยางท 5.8
........
sw_ok_press(); // รอจนกระทงเกดกดสวตช OK
......
5.5 ไลบรารเกยวกบการสอสารขอมลอนกรม
เปนไฟลไลบรารสนบสนนชดค าสงเกยวกบการรบสงขอมลผานโมดลสอสารขอมลอนกรม (UART)
5.5.1 การเชอมตอทางฮารดแวร
เมอตองการใชงานชอง UART ใหตอสายจากจดตอพอรต USB บนบอรด Arduino (เปนจดตอเดยวกบท
ใชในการอปโหลด) เขากบพอรต USB ของคอมพวเตอร เมอตองการใชงานชอง UART ตอสายสญญาณเขากบจด
ตอ RxD (ขาพอรต 0) และ TxD (ขาพอรต 1)
5.5.2 uart
เปนไลบรารส าหรบสงขอมลสายอกขระออกจากโมดล UART มอตราบอดเรมตนท 4,800 บต
วนาท
รปแบบ
void uart(char *p,...)
พารามเตอร
p - รบรหสของกลมขอความทตองการสงออกจากภาคสงของโมดล UART โดยสามารถก าหนด
รปแบบการแทรกสญลกษณพเศษเพอใชรวมในการแสดงผลไดดงน
รหสบงคบการท างาน
%c หรอ %C แสดงผลตวอกษร 1 ตว
%d หรอ %D แสดงผลตวเลขฐานสบชวงตงแต -32,768 ถง +32,767
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
11 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
%l หรอ %L แสดงผลตวเลขฐานสบชวงตงแต -2,147,483,648 ถง +2,147,483,647
%f หรอ %F แสดงผลขอมลแบบจ านวนจรง (แสดงทศนยม 3 หลก)
\r ก าหนดใหขอความชดไปทางดานซายของบรรทด
\n ก าหนดใหขอความขนบรรทดใหม
5.5.3 uart_set_baud
เปนไลบรารก าหนดอตราบอดในการสอสารของโมดล UART กบคอมพวเตอร
รปแบบ
void uart_set_baud(unsigned int baud)
พารามเตอร
baud - อตราบอดในการสอสารของโมดล UART กบคอมพวเตอรมคา 2400 ถง 115,200
ตวอยางท 5.9
uart_set_baud(4800); // ก าหนดอตราบอดในการสอสารขอมลเปน 4,800 บตตอวนาท
5.5.4 uart_available
เปนไลบรารตรวจสอบการรบขอมลเขามาของโมดล UART เมอตดตอกบคอมพวเตอร
รปแบบ
unsigned char uart_available(void)
การคนคา
- เปน “0” เมอยงไมมขอมลเขามา
- มากกวา 0 เมอมขอมลเขามาโดยมคาเทากบจ านวนของอกขระทไดรบ
ตวอยางท 5.10
char x =uart_available();
// ตรวจสอบวามขอมลเขามาทางภาครบของโมดล UART หรอไมถา x มคามากกวา 0 แสดงวามขอมลเขา
5.5.5 uart_getkey
เปนไลบรารอานขอมลจากบฟเฟอรตวรบของโมดล UART
รปแบบ
char uart_getkey(void)
การคนคา
- เปน “0” เมอไมมการรบอกขระใดๆ เขามายงวงจรภาครบของโมดล UART
- เปนคาของอกขระทรบไดในรปแบบของรหสแอสก
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
12 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
สรปเนอหาสาระส าคญ
ไลบรารโปรแกรมส าหรบ Arduino เปนไลบรารเกยวกบเวลา ไลบรารเกยวกบเสยง ไลบรารเกยวกบการอานคาดจตอล ไลบรารเกยวกบการอานคาแอนะลอก และไลบรารเกยวกบการสอสารขอมลอนกรม ทใชเปนประจ าคอไลบรารอานคาขอมลแอนะลอกและแปลงเปนสญญาณดจตอลของไมโครคอนโทรลเลอร ทพอรต A0 ถง A6 ซงใชในการเชอมตอกบตวตรวจจบทใหผลการท างานในรปแรงดนไฟฟาในยาน 0 ถ ง +5V รปแบบ unsigned int analog(unsigned char channel) พารามเตอร channel - ก าหนดชองอนพตแอนะลอกทตองการมคา 0 ถง 6 ซงตรงกบขาพอรต A0 ถง A6 การคนคาเปนขอมลทไดจากการแปลงสญญาณของโมดลแปลงสญญาณแอนะลอกเปนดจตอลภายในไมโครคอนโทรลเลอร จากชองอนพตทก าหนด โดยขอมลมความละเอยด 10 บต ดงนนคาทเปนไปไดคอ 0 ถง 1,023
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
13 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
เรอง ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก ใชเวลา 20 นาท ******************************************************************************************************* ค าชแจง แบบฝกหดมทงหมด 2 ตอน ประกอบดวยตอนท 1 และตอนท 2 (20 คะแนน) 2. แบบฝกหดตอนท 1 เปนค าถามแบบถก-ผด มทงหมด 20 ขอ (10 คะแนน) 3. แบบฝกหดตอนท 2 เปนค าถามแบบปรนย มทงหมด 10 ขอ (10 คะแนน)
ค าชแจง ใหผเรยนกาเครองหมายถก ในขอทคดวาถก และกาเครองหมายผด ในขอทคดวาผด ค าชแจง ใหผเรยนกาเครองหมายถก ในขอทคดวาถก และกาเครองหมายผด ในขอทคดวาผด 1. %c หรอ %C แสดงผลตวอกษร 1 ตว 2. %d หร อ %D แสดงผลตวเลขฐานสบชวงตงแต -32,768 ถง +32,767 3. %l หร อ %L แสดงผลตวเลขฐานสบชวงตงแต -2,147,483,648 ถง +2,147,483,647 4. %f หร อ %F แสดงผลขอมลแบบจ านวนจรง (แสดงทศนยม 3 หลก) 5. \r ก าหนดใหขอความชดไปทางดานซายของบรรทด 6. \n ก าหนดใหขอความขนบรรทดใหม 7. อตราบอดในการสอสารของโมดล UART กบคอมพวเตอรมคา 400 ถง 115,200 8. เมอตองการใชงานชอง UART ใหตอสายจากจดตอพอรต USB บนบอรด Arduino 9. การเชอมตอกบตวตรวจจบทใหผลการท างานในรปแรงดนไฟฟาในยาน 0 ถ ง +3.3V 10. sound(1200,500); // ก าเนดสญญาณเสยงความถ 500Hz นาน 1200 มลลวนาท
แบบฝกหดหนวยท 5
แบบฝกหดตอนท 1
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
14 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
ค าชแจง ใหผเรยนเลอกค าตอบทถกทสดแลวกาเครองหมายกากบาท () ใหครบทกขอ 1. LiquidCrystal เมอตองการใชงานตองผนวกไฟลไลบรารดวยค าสง
ก. #include < LiquidCrystal.o> ข. #include < LiquidCrystal.h> ค. #include < LiquidCrystal.b> ง. #include < LiquidCrystal.d>
2. SoftwareSerial ในการสอสารขอมลอนกรม ไลบรารจะถกน ามาใชงานเมอ ก. พอรตอนกรมหลก (RxD และ TxD) ของ Arduino ไมถกใชงาน ข. พอรตอนกรมหลก (RxD และ TxD) ของ Arduino เสย ค. พอรตอนกรมหลก (RxD และ TxD) ของ Arduino ถกใชงาน ง. พอรตอนกรมหลก (RxD และ TxD) ของ Arduino ท างานไดปกต
3. ในการตดตออปกรณทท างานผานบสแบบ SPI ประกอบดวย ก. ไอซแปลงสญญาณแอนะลอกเปนดจตอล ข. ไอซแปลงสญญาณดจตอลเปนแอนะลอก, ค. ไอซวดอณหภม , ไอซขบ LED ตวเลข 7 สวน
ง. ถกทกขอ 4. ไลบราร Serial.println() มรปแบบอยางไร
ก. Serial.print(b,FORMAT); ข. Serial.println(b,FORMAT); ค. initialization; condition;
ง. Serial.print(b,FORMAT); กบ Serial.println(b,FORMAT); 5. Arduino Leonardo สามารถเรยกใชงานไลบราร USB โดยม 2 ไลบรารยอยคอ ก. Mouse / Keypad ข. Mouse / Keyboard ค. Keypad / Keyboard ง. USB 1 / USB 2
แบบฝกหดตอนท 2
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
15 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
6. ไลบรารเกยวกบเวลา มอะไรบาง ก. deboun และ delay ข. sleep และ boun
ค. boun และ delay ง. sleep และdelay
7. sleep และ delay ก าหนดคาเวลาทตองการหนวงในหนวยใด ก. มลลวนาท ข. ไมโครวนาท
ค. นาโนวนาท ง. วนาท
8. ไลบรารเกยวกบการอานคาแอนะลอก เปนไลบรารเกยวกบ ก. อานคาขอมลแอนะลอกแปลงเปนสญญาณแอนะลอก ข. อานคาขอมลดจตอลและแปลงเปนสญญาณดจตอล ค. อานคาขอมลดจตอลและแปลงเปนสญญาณแอนะลอก ง. อานคาขอมลแอนะลอกและแปลงเปนสญญาณดจตอล
9. UART มอตราบอดเรมตนท ก. 9600 ข. 2400
ค. 19200 ง. 4800
10. uart_available คอไลบรารอะไร ก. คาต าสดของชวงทก าหนด ข. ตรวจสอบการรบขอมลเขามาของโมดล UART ค. ปดคาตวเลขทนอยกวาหรอมากกวาใหอยในชวงทก าหนด ง. ตวแปรจ านวนเตม 64 บต แบบไมคดเครองหมาย
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
16 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
***************************************************************************************************ค าชแจง ใหผเรยนทกคนท าการทดลองตามปฎบตการทดลองหนวยท 5 เรอง ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอกใชเวลา 180 นาท ( 20 คะแนน)
จดประสงคเชงพฤตกรรม
1. สามารถใชไลบรารไดถกตอง 2. สามารถแกปญหาในการท างานของบอรด Arduino Uno R3 ได 3. สามารถตอใชงานและอพโหลดโปรแกรมใหกบบอรด Arduino Uno R3 ได
อปกรณการทดลอง
1. เครองคอมพวเตอรและโปรแกรม Arduino IDE 1.6.9 1 ชด 2. USB Cable Arduino Uno R3 1 เสน 3. Arduino Uno R3 Board 1 บอรด ขอควรระวง 1. ควรระวงไมวางบอรด Arduino Uno R3 หรอชลตางๆ บนโตะโลหะหรอทวางทเปนโลหะเพราะอาจเกดการลดวงจรของภาคจายไฟได
2. ไมควรตอสายตอวงจรในบอรด Arduino Uno R3 ทงไว ควรถอดสายตอวงจรออกใหหมด เพราะผลการทดลองอาจเกดการผดพลาดไมเปนไปตามทฤษฎได
3. ไมควรถอดสายสายโหลด USB เขาออกตลอดเวลา เพราะอาจท าใหภาคจายไฟของบอรด Arduino Uno R3 เสยหายได
ปฏบตการทดลองหนวยท 5 เรอง ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
17 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
การทดลองท 5.1 การลบขอมลใน EEPROM
EEPROM Library บรรจไลบรารและค าสงส าหรบตดตอกบหนวยความจ าขอมลออพรอม ภายในตว
ไมโครคอนโทรลเลอร เมอตองการใชงานตองผนวกไฟลไลบรารไวในตอนตนของโปรแกรมดวยค าสง
#include <EEPROM.h>
Hardware Required
Arduino or Genuino Board
Circuit / Schematics
.
CODE
/* * EEPROM Clear * * Sets all of the bytes of the EEPROM to 0.
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
18 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
* Please see eeprom_iteration for a more in depth * look at how to traverse the EEPROM. * This example code is in the public domain. */ #include <EEPROM.h> void setup() { // initialize the LED pin as an output. pinMode(13, OUTPUT); /*** Iterate through each byte of the EEPROM storage. Larger AVR processors have larger EEPROM sizes, E.g: - Arduno Duemilanove: 512b EEPROM storage. - Arduino Uno: 1kb EEPROM storage. - Arduino Mega: 4kb EEPROM storage. Rather than hard-coding the length, you should use the pre-provided length function. This will make your code portable to all AVR processors. ***/ for (int i = 0 ; i < EEPROM.length() ; i++) { EEPROM.write(i, 0); } // turn the LED on when we're done digitalWrite(13, HIGH); } void loop() { /** Empty loop. **/ } ผลการทดลอง............................................................................................................................. ........................................................................................................................................................................... ...................................................................................................................................................................................................................................................................................................................................................... ........................................................................................................................................................................... ..............................................
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
19 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
การทดลองท 5.2 การอานขอมลใน EEPROM
Hardware Required
Arduino or Genuino Board
Circuit / Schematics
Code
/* * EEPROM Read * Reads the value of each byte of the EEPROM and prints it * to the computer. * This example code is in the public domain. */ #include <EEPROM.h>
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
20 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
// start reading from the first byte (address 0) of the EEPROM int address = 0; byte value; void setup() { // initialize serial and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } } void loop() { // read a byte from the current address of the EEPROM value = EEPROM.read(address); Serial.print(address); Serial.print("\t"); Serial.print(value, DEC); Serial.println(); /*** Advance to the next address, when at the end restart at the beginning. Larger AVR processors have larger EEPROM sizes, E.g: - Arduno Duemilanove: 512b EEPROM storage. - Arduino Uno: 1kb EEPROM storage. - Arduino Mega: 4kb EEPROM storage. Rather than hard-coding the length, you should use the pre-provided length function. This will make your code portable to all AVR processors. ***/ address = address + 1; if (address == EEPROM.length()) { address = 0; } /***
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
21 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
As the EEPROM sizes are powers of two, wrapping (preventing overflow) of an EEPROM address is also doable by a bitwise and of the length - 1. ++address &= EEPROM.length() - 1; ***/ delay(500); } ผลการทดลอง.............................................................................. .......................................................................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................... ........................................................................................................................................................................................................................... ........................................................................................................................................................................... ............................................
การทดลองท 5.3 การเขยนขอมลลง EEPROM
Hardware Required
Arduino or Genuino Board
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
22 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
Circuit / Schematics
Code
/* * EEPROM Write * Stores values read from analog input 0 into the EEPROM. * These values will stay in the EEPROM when the board is * turned off and may be retrieved later by another sketch. */ #include <EEPROM.h> /** the current address in the EEPROM (i.e. which byte we're going to write to next) **/ int addr = 0; void setup() { /** Empty setup. **/ } void loop() { /*** Need to divide by 4 because analog inputs range from 0 to 1023 and each byte of the EEPROM can only hold a value from 0 to 255. ***/
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
23 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
int val = analogRead(0) / 4; /*** Write the value to the appropriate byte of the EEPROM. these values will remain there when the board is turned off. ***/ EEPROM.write(addr, val); /*** Advance to the next address, when at the end restart at the beginning. Larger AVR processors have larger EEPROM sizes, E.g: - Arduno Duemilanove: 512b EEPROM storage. - Arduino Uno: 1kb EEPROM storage. - Arduino Mega: 4kb EEPROM storage. Rather than hard-coding the length, you should use the pre-provided length function. This will make your code portable to all AVR processors. ***/ addr = addr + 1; if (addr == EEPROM.length()) { addr = 0; } /*** As the EEPROM sizes are powers of two, wrapping (preventing overflow) of an EEPROM address is also doable by a bitwise and of the length - 1. ++addr &= EEPROM.length() - 1; ***/ delay(100); } ผลการทดลอง............................................................................................................................. ................................................................................................................................... ........................................................................ ..............
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
24 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
............................................................................................................................. ..............................................
การทดลองท 5.4 Software Serial
Hardware Required
Arduino or Genuino Board
Circuit / Schematics
Code /* Software serial multple serial test Receives from the hardware serial, sends to software serial. Receives from software serial, sends to hardware serial. The circuit: * RX is digital pin 10 (connect to TX of other device) * TX is digital pin 11 (connect to RX of other device) Note:
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
25 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
Not all pins on the Mega and Mega 2560 support change interrupts, so only the following can be used for RX: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69 Not all pins on the Leonardo support change interrupts, so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI). created back in the mists of time modified 25 May 2012 by Tom Igoe based on Mikal Hart's example This example code is in the public domain. */ #include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); // RX, TX void setup() { // Open serial communications and wait for port to open: Serial.begin(57600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } Serial.println("Goodnight moon!"); // set the data rate for the SoftwareSerial port mySerial.begin(4800); mySerial.println("Hello, world?"); } void loop() { // run over and over if (mySerial.available()) { Serial.write(mySerial.read());
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
26 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
} if (Serial.available()) { mySerial.write(Serial.read()); } } ผลการทดลอง............................................................................................................................. ......................................................................................................................... ............................................................................................................................................................................................................................. ........................................................................................................................................................................... ..............................................
การทดลองท 5.5 Two Port Receive
Hardware Required
Arduino or Genuino Board
Circuit / Schematics
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
27 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
Code
/* Software serial multple serial test Receives from the two software serial ports, sends to the hardware serial port. In order to listen on a software port, you call port.listen(). When using two software serial ports, you have to switch ports by listen()ing on each one in turn. Pick a logical time to switch ports, like the end of an expected transmission, or when the buffer is empty. This example switches ports when there is nothing more to read from a port The circuit: Two devices which communicate serially are needed. * First serial device's TX attached to digital pin 10(RX), RX to pin 11(TX) * Second serial device's TX attached to digital pin 8(RX), RX to pin 9(TX) Note: Not all pins on the Mega and Mega 2560 support change interrupts, so only the following can be used for RX: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69 Not all pins on the Leonardo support change interrupts, so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI). created 18 Apr. 2011 modified 19 March 2016 by Tom Igoe based on Mikal Hart's twoPortRXExample This example code is in the public domain. */ #include <SoftwareSerial.h> // software serial #1: RX = digital pin 10, TX = digital pin 11 SoftwareSerial portOne(10, 11);
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
28 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
// software serial #2: RX = digital pin 8, TX = digital pin 9 // on the Mega, use other pins instead, since 8 and 9 don't work on the Mega SoftwareSerial portTwo(8, 9); void setup() { // Open serial communications and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } // Start each software serial port portOne.begin(9600); portTwo.begin(9600); } void loop() { // By default, the last intialized port is listening. // when you want to listen on a port, explicitly select it: portOne.listen(); Serial.println("Data from port one:"); // while there is data coming in, read it // and send to the hardware serial port: while (portOne.available() > 0) { char inByte = portOne.read(); Serial.write(inByte); } // blank line to separate data from the two ports: Serial.println(); // Now listen on the second port portTwo.listen(); // while there is data coming in, read it // and send to the hardware serial port: Serial.println("Data from port two:"); while (portTwo.available() > 0) {
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
29 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
char inByte = portTwo.read(); Serial.write(inByte); } // blank line to separate data from the two ports: Serial.println(); } ผลการทดลอง............................................................................................................................. ........................................................................................................................................................................................................................ .............................................................................................................................. ........................................................................................................................................................................... ..............................................
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
30 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
สรปผลการทดลอง ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
ปญหาอปสรรคหรอขอเสนอแนะ
...........................................................................................................................................................................
........................................................................................................................................................................... ตารางการประเมนผลคะแนนภาคปฏบต
หวขอการพจารณาภาคปฏบต ระดบคะแนน การทดลองท 5.1 EEPROM Clear 4 คะแนน การทดลองท 5.2 EEPROM Read 4 คะแนน
การทดลองท 5.3 EEPROM Write 4 คะแนน การทดลองท 5.4 Software Serial 4 คะแนน การทดลองท 5.5 Two Port Receive 4 คะแนน
รวมคะแนนภาคปฏบต
…........คะแนน
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
31 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
**********************************************************************************
เรอง ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก ใชเวลา 20 นาท วชา ไมโครคอนโทรลเลอรเบองตน รหสวชา (2127-2107) ระดบชน ประกาศนยบตรวชาชพ (ปวช.) สาขาวชา เมคคาทรอนกส ค าชแจง 1. แบบทดสอบมทงหมด 10 ขอ (10 คะแนน) 2. ใหผเรยนเลอกค าตอบทถกทสดแลวกาเครองหมายกากบาท () ลงในกระดาษค าตอบ
1. หนวยความจ าขอมลออพรอม ภายในตวไมโครฯเมอตองการใชงานตองผนวกไฟลไลบรารดวยค าสง ก. #include<EEPROM.o> ข. #include< EEPROM.d> ค. #include<EEPROM.h> ง. #include<EEPROM. b>
2. servo เมอตองการใชงานตองผนวกไฟลไลบรารดวยค าสง ก. #include<servo.h> ข. #include<servo.d> ค. #include <servo.b> ง. #include<servo.o> 3. Arduino UNO บรรจฟงกชน Wire ส าหรบตดตอกบอปกรณผานบส ก. GSM ข. SPI ค. I2C ง. UART 4. Arduino UNO บรรจฟงกชนและค าสงส าหรบตดตอกบ SPI โดยตองใชขาพอรต ก. 10 (MISO), 11 (MOSI) และ 12 (SS) ข. 12 (MISO), 11 (MOSI) และ 10 (SS) ค. 11 (MISO), 12 (MOSI) และ 13 (SS) ง. 13 (MISO), 12 (MOSI) และ 11 (SS)
แบบทดสอบหลงเรยน หนวยท 5 เรอง ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก
หนวยท 5 ไลบรารโปรแกรมส าหรบ Arduino และการอานคาแอนะลอก เรยบเรยงโดยครทนพงษ ภรกษ
32 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน
5. บส I2C Arduino UNO ตองใชขาพอรต ก. A1 (SDA) และ A2 (SCL) ข. A2 (SDA) และ A3 (SCL) ค. A3 (SDA) และ A4 (SCL) ง. A4 (SDA) และ A5 (SCL)
6. ฟงกชนเกยวกบพอรตอนพตเอาตพต ฟงกชน in เปนฟงกชนอะไร ก. ก าหนดขาพอรตทตองการอานคา ข. อานคาสถานะลอจกของพอรตทก าหนด ค. อานคาดจตอลจากพอรตดจตอล ง. อานคาดจตอลจากพอรตอนกรม 7. ฟงกชน out เปนฟงกชนอะไร ก. ก าหนดขอมลดจตอลไปยงพอรตทก าหนด ข. ก าหนดขาพอรตทตองการอานคา ค. อานคาดจตอลจากพอรตดจตอล 1 ง. อานคาดจตอลจากพอรตดจตอล 2 8. ฟงกชนการอานคาแอนะลอกของ Arduino UNO ใชพอรตอยางไร ก. ก าหนดชองอนพตแอนะลอกทตองการตรงกบขาพอรต A3 ถง A6 ข. ก าหนดชองอนพตแอนะลอกทตองการตรงกบขาพอรต A2 ถง A6 ค. ก าหนดชองอนพตแอนะลอกทตองการตรงกบขาพอรต A1 ถง A6 ง. ก าหนดชองอนพตแอนะลอกทตองการตรงกบขาพอรต A0 ถง A6 9. ฟงกชนเกยวกบการสอสารขอมลอนกรม เมอตองการใชงานชอง UART ตอสายสญญาณอยางไร ก. RxD (ขาพอรต 0) และ TxD (ขาพอรต 1) ข. RxD (ขาพอรต 1) และ TxD (ขาพอรต 0) ค. RxD (ขาพอรต A0) และ TxD (ขาพอรต A1) ง. RxD (ขาพอรต A1) และ TxD (ขาพอรต A0) 10. uart_available คอฟงกชนอะไร ก. คาต าสดของชวงทก าหนดของโมดล UART ข. ตรวจสอบการรบขอมลเขามาของโมดล UART ค. ปดคาตวเลขใหอยในชวงทก าหนดของโมดล UART ง. ตวแปรจ านวนเตม 64 บต แบบไมคดเครองหมายของโมดล UART