Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore หน่วยที่ 2 เรื่อง ชุดคำสั่งและการเขียนโปรแกรมควบคุม

หน่วยที่ 2 เรื่อง ชุดคำสั่งและการเขียนโปรแกรมควบคุม

Published by kik.fuu2021, 2021-05-28 12:59:13

Description: หน่วยที่ 2 เรื่อง ชุดคำสั่งและการเขียนโปรแกรมควบคุม

Search

Read the Text Version

0 เอกสารประกอบการสอน 36 หนว่ ยท�ี 2 ชดุ คาํ ส่ังและการเขยี นโปรแกรมควบคมุ

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 26 หนว่ ยที่ 2 ชดุ คาสัง่ และการเขยี นโปรแกรมควบคมุ สาระสาคญั การเขียนโปรแกรมควบคุมการทางานไมโครคอนโทรลเลอร์ ซอฟต์แวร์ที่ใชใ้ นการพัฒนางาน สาหรับบอร์ด Arduino คือโปรแกรมที่เรียกว่า Arduino IDE (Integrated Development Environment) ในการเขียนโปรแกรมและคอมไพล์ลงบอร์ด จะอ้างองิ ตามภาษา C / C++ เป็นการเขียนโปรแกรมท่ีมี ความยืดหยุ่นมากกว่า และสามารถพัฒนางานได้เร็วกว่าการเขียนโปรแกรมด้วยภาษาแอสเซมบลี การเขียนโปรแกรมเพื่อควบคุมการทางานของ Arduino IDE โดยเรียกใช้ฟังก์ชั่นและไลบรารีที่ทาง Arduino IDE ได้จัดเตรียมฟังก์ช่ันพ้ืนฐาน เช่น ฟังก์ชั่นเกี่ยวกับขาพอร์ตอินพุตเอาต์พุตดจิ ิตอล, อินพุต เอาต์พุตแอนะล็อก เป็นต้น นอกจากฟังก์ช่ันพื้นฐานเหล่าน้ีแล้ว นักพัฒนาหลาย ๆ ท่านที่ร่วมในโครงการ Arduino นี้ก็ได้เพ่ิมไลบรารีอ่ืน ๆ เช่น ไลบรารีควบคุมมอเตอร์, การติดต่อกับอุปกรณ์บัส I2C ฯลฯ ในการ เรยี กใช้งาน ตอ้ งเพ่มิ บรรทัด #include เพอ่ื ผนวกไฟลท์ ่เี หมาะสมกอ่ นเรยี กใช้ฟงั กช์ ่ัน สาระการเรยี นรู้ 2.1 การตดิ ตัง้ ซอฟต์แวร์ Arduino IDE 2.2 การใชง้ าน Arduino IDE 2.3 โครงสรา้ งภาษา ตัวแปร ค่าคงท่ี 2.4 ฟงั ก์ชนั่ ชุดคาสง่ั และการเขียนโปรแกรมควบคมุ สาหรับไมโครคอนโทรลเลอร์ จดุ ประสงค์เชิงพฤติกรรม เพื่อให้นักเรยี น 1. สามารถอธิบายความหมายของคาส่ังภาษาซไี ด้อย่างถกู ต้อง 2. สามารถเขียนโปรแกรมด้วยคาสัง่ ภาษาซี Arduino ไดอ้ ยา่ งถกู ตอ้ ง 3. เตรยี มความพรอ้ มดา้ นวัสดุ อปุ กรณส์ อดคลอ้ งกบั งานได้อย่างถูกต้อง หน่วยที่ 2 : ชดุ คำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 27 แบบทดสอบก่อนเรียน หนว่ ยท่ี 2 ชุดคาส่งั และการเขยี นโปรแกรมควบคมุ คาสง่ั จงเลอื กคาตอบท่ีถูกที่สุดเพยี งข้อเดียว 1. การตดิ ตั้ง Arduino IDE ตอ้ งไป Download โปรแกรมที่ใด? ก. https://www.arduino.cc ข. https://www.arduinocc.com ค. www.arduino.com ง. https://www.arduinothai.cc จ. www.arduinocc.com 2. โปรแกรม Arduino IDE คาว่า IDE ยอ่ มาจาก? ก. Integrat Developer Environment ข. Integrated Development Environment ค. Integrated Developer Enterprise ง. Integer Development Enterprise จ. Integer Development Eclipse 3. เราสามารถเรยี กดูพอร์ตจากส่วนใดของคอมพวิ เตอร์? ก. Driver Manager ข. Driver License ค. Device Manager ง. Developer License จ. Device License 4. คาสง่ั Verify เรียกใชเ้ พ่ือต้องการอะไร? ก. สรา้ ง Sketch ใหม่ ข. บนั ทกึ Sketch ค. ตรวจเช็คไวยกรณ์ของโปรแกรม ง. อปั โหลดโปรแกรม จ. ลบ Sketch 5. ใชส้ ัญลกั ษณใ์ ดเพ่ือต้องการแสดงคาอธิบายลงโปรแกรม? ก. ++ ข. * ค. %% ง. // จ. && หน่วยที่ 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 28 6. คาสง่ั ใดเปน็ คาสั่งหน่วงเวลา? ก. digitalWrite ข. digitalRead ค. pinMode ง. delay จ. delete 7. บอดเรต (baud rate) คืออะไร? ก. อัตราเร็วในการรบั ส่งข้อมลู ทตี ้องกาหนดค่า ข. พอรต์ ในการเชอ่ื มต่อบอรด์ ค. บนั ทกึ โปรแกรมลา่ สดุ ง. หน่วยความจาไมโครคอนโทรลเลอร์ จ. ความถี่ 8. อธบิ ายคาสง่ั if? ก. คาสั่งท่ีใชใ้ นการตรวจสอบเงอ่ื นไข ข. กาหนดโหมดของ GPIO ค. การบวกลบทางคณิตศาสตร์ ง. เรียกใชไ้ ลบรารีก่ ่อนคอมไพลเ์ ลอรป์ ระมวลผล จ. การเขียนผังงาน 9. ตัวแปรชนิด char มีขนาดตัวแปรกบี่ ิต? ก. 8 ข. 16 ค. 32 ง. 64 จ. 128 10. โครงสร้างโปรแกรมของ Arduino แบ่งได้เปน็ สองสว่ นคือ? ก. void setup() และ void run() ข. void setup() และ void main() ค. void main() และ void loop() ง. void setup() และ void loop() จ. void main() และ void run() หน่วยที่ 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 29 การเขียนโปรแกรมไมโครคอนโทรลเลอร์ Arduino สามารถเขียนไดทงั้ ภาษาแอสเซมบลี และภาษาระดับสงู ได้แก่ ( ภาษาซี ขน้ึ อยู(กับว่าผู้พัฒนาโปรแกรมเลือกใช้ภาษาใดมาใช้สาหรับเขียน โปรแกรมเพื่อควบคุมการทางานของไมโครคอนโทรลเลอร์ 2.1 การตดิ ตงั้ ซอฟต์แวร์ Arduino IDE การใช้งาน Arduino เร่ิมต้น ต้องมีโปรแกรมสาหรับใช้เขียนโปรแกรมลงบอร์ด Arduino กันก่อน ซึ่งโปรแกรมท่ีนิยมใช้ก็คือ Arduino IDE จากเว็บ www.arduino.cc ซึ่งใช้งานง่ายและฟรี ใช้ร่วมกับบอร์ด Arduino ได้ทุกรุ่น โดยรุ่นท่ีออกแบบสาหรับผู้เริ่มต้นคือบอร์ด Arduino Uno มีราคาไม่แพงและมีโคดตัวอย่างให้ศึกษาได้มากมาย สามารถใช้สั่งงานเปิด/ปิดไฟ ทาเป็นเคร่ือง ควบคุมอุณหภูมิในฟาร์มต้นไม้ ใช้ส่ังงานจากโทรศัพท์มือถือ และอีกหลาย ๆ โปรเจค เท่าท่ีสามารถ จนิ ตนาการได้ บทนถ้ี อื เป็นจดุ เร่มิ ต้นสาหรับ Arduino โดยจะตอ้ งตดิ ตัง้ โปรแกรม Arduino IDE ก่อน ลงโปรแกรม Arduino IDE ดังนี้ 2.1.1 ดาวน์โหลดโปรแกรม Arduino IDE โหลดโปรแกรม Arduino IDE ได้ฟรที เ่ี ว็บไซต์ https://www.arduino.cc/en/Main/Software รปู ท่ี 2.1 หน้าต่างเวบ็ ไซตส์ าหรับดาวน์โปรแกรม Arduino IDE ท่มี า : https://www.arduino.cc/en/Main/Softwareสามารถเลือกดาวนโ์ หลดโปรแกรมใช้งานได้ ตามระบบปฏิบัติการได้ ดังน้ี 1. Windows Installer, for Windows XP and up 2. Windows ZIP file for non admin install 3. Windows app Requires Win 8.1 or 10 4. Mac OS X 10.7 Lion or newer หน่วยท่ี 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 30 5. Linux 32 bits 6. Linux 64 bits 7. Linux ARM สาหรับบทเรียนนเ้ี ลือก “Windows Installer, for Windows XP and up” จากนั้นทาการคลกิ เลือกปุ่ม “JUST DOWNLOAD” และรอจนกว่าโหลดเสร็จเรียบร้อยสาหรับระบบปฎบิ ตั ิการ Windows เม่ือดาวนโ์ หลดเสร็จแล้ว กดเปิดไฟล์ arduino-xxx.exe เพ่ือติดตัง้ โปรแกรม กด Next ไปเรื่อย ๆ ตามปกติ ดังรูปท่ี 2.2 รูปท่ี 2.2 ดาวน์โหลดโปรแกรม Ardiuno IDE รปู ที่ 2.3 หน้าต่างติดตง้ั โปรแกรม Ardiuno IDE หน่วยท่ี 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 31 รปู ที่ 2.4 หนา้ ต่างยนิ ยอม License กอ่ นทาการตดิ ต้งั Ardiuno IDE รปู ท่ี 2.5 หน้าต่างเลือกส่วนเสรมิ ในการติดตง้ั โปรแกรม Ardiuno IDE รปู ท่ี 2.6 หน้าตา่ งเลอื กที่ตั้งโปรแกรม Ardiuno IDE หน่วยท่ี 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 32 รูปที่ 2.7 หน้าต่างการติดตง้ั โปรแกรม Ardiuno IDE สาเร็จ 2.1.2 การตั้งค่าเริ่มต้นการใช้งาน หลังจากติดตั้งโปรแกรม Arduino IDE เสร็จเรียบร้อยแล้ว ให้เปิดโปรแกรม Arduino จากไอคอนหน้าจอ ให้เราเปิดโปรแกรมตัวอย่าง โดยเลือกจากเมนู File > Examples > 01.Basics > Blink ดังรปู ที่ 2.8 รปู ท่ี 2.8 หน้าตา่ งการต้งั คา่ เร่มื ตน้ การใชง้ าน หน่วยท่ี 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 33 จากนั้นทาการเลือกชื่อบอร์ดไมโครคอนโทรลเลอรจ์ ากเมนู Tool > Board > เลือกชื่อบอร์ด (Arduino/Genuino Uno) ดงั รูปที่ 2.9 รูปที่ 2.9 หน้าตา่ งการเลือกชื่อบอรด์ และทาการเลือกพอร์ตของบอร์ดไมโครคอนโทรลเลอร์ที่เชื่อมต่ออยู่ ดังรูปท่ี 2.10 สามารถ ดเู ลขพอรต์ ทเ่ี ชอ่ื มต่อได้จากรูปที่ 2.11 รูปที่ 2.10 หนา้ ต่างการตดิ ตง้ั โปรแกรม Ardiuno IDE สาเร็จ หน่วยท่ี 2 : ชดุ คำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 34 1. คลิก 3. คลิก ขวา 2. คลกิ เลอื ก เลือก 4. ดู พอรต์ รปู ท่ี 2.11 การดูพอรต์ ท่เี ชื่อมตอ่ กับบอรด์ Arduino 2.1.3 การติดตั้งไดรเ์ วอรส์ าหรับบอร์ด Arduino บริษัทบอรด์ Arduino ปัจจบุ ันมหี ลายรุ่น ซ่ึงแต่ละรุ่นอาจใช้ชิพสาหรับติดต่อสื่อสารผ่านพอร์ต USB แตกต่างกันไป ซ่ึงบางรุ่นมีไดร์ฟเวอร์ มาให้พร้อมในตัวโปรแกรม Arduino IDE แล้ว เช่นบอร์ดท่ีใช้ชิพ CP210x, FTDI หรือบอร์ดท่ีใช้ ไมโครคอนโทรลเลอร์เป็นตัวส่ือสารผ่าน USB ดังนั้นการติดต้ังผู้ใช้งานสามารถเรียกใช้ได้เลย โดย ไม่ต้องหาดาวน์โหลดไดร์ฟเวอร์เพ่ิมเติม ยกเว้นบอร์ดที่ใช้ชิพ CH340 CH341 (เช่น บอร์ด Arduino Nano 3.0 เลือกใช้ชิพเบอร์น้ีในบางผู้ผลิต) ซ่ึงผู้ใช้งานจะต้องไปหาดาวน์โหลดไดร์ฟเวอร์เพื่อมา ตดิ ตัง้ เอง 2.2 ลกั ษณะทั่วไปสาหรับการเรม่ิ ตน้ การใชง้ านของโปรแกรม Arduino IDE สาหรับหน้าต่างของโปรแกรม Arduino IDE ออกมาให้ใช้งานง่ายและดูสบายตาสาหรับการ เขียนโปรแกรมโดยมสี ว่ นประกอบหลัก ๆ ดงั รปู ที่ 2.12 โดยมีสว่ นประกอบดงั นี้ Menu Bar: เปน็ ส่วนที่ไวส้ าหรับตัง้ คา่ หรือดูข้อมลู ตา่ ง ๆ รวมถึงการ save, open และ create ไฟล์ Toolbar: ประกอบไปด้วยหลาย ๆ ปุม่ ได้แก่ Verify: Compile เพอ่ื เช็ควา่ โปรแกรมเขยี นถูกไวยกรณ์หรอื ปา่ ว Upload: อัปโหลดโปรแกรมลงบอร์ด ซึ่งจะทาการ Compile ก่อนโดยอัติโนมตั ิ New: สรา้ ง Sketch ใหม่ Open: เปิด Sketch ทม่ี ีอยู่ หน่วยที่ 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 35 Save: บนั ทึก Sketch Serial Monitor: สาหรับแสดงข้อมลู ที่ได้รับหรือถูกสง่ จากบอรด์ Arduino Text Editor / Coding Area: เปน็ พืน้ ท่ีสาหรบั แสดงโปรแกรมท่เี ราเขยี น Debugging Console: แสดงสถานะของการ Compile และ Upload โปรกรม รวมถงึ ขอ้ ผิดพลาดตา่ ง ๆ รปู ที่ 2.12 หน้าตา่ งและสว่ นประกอบต่าง ๆ ของโปรแกรม Arduino IDE 2.2.1 Menu Bar: File เป็นส่วนท่ีไว้สาหรับตั้งค่าหรือดูข้อมูลต่าง ๆ รวมถึงการ save, open และ create ไฟล์ โดยแตล่ ะเมนปู ระกอบด้วยคาส่ังต่าง ๆ ดงั น้ี New: ใช้สรา้ งไฟล์ Sketch ตัวใหมเ่ พอ่ื เรมิ่ เขียนโปรแกรมใหม่ Open: ใช้เปดิ สเก็ตช์งานที่บนั ทกึ ไวก้ อ่ นหน้า Sketchbook: ใชเ้ ปิดไฟลส์ เก็ตช์ล่าสดุ ที่เปดิ ใช้งานเสมอ Example: ใชใ้ นการเลือกเปดิ ไฟล์ Sketch ตวั อยา่ งที่บรรจุและรวบรวมไวใ้ นโฟลเดอร์ ของ Arduino หน่วยท่ี 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 36 Save: ใช้ในการบันทกึ ไฟล์ Sketch ปจั จุบนั Save As: ใช้บันทึกไฟล์ Sketch โดยการเปล่ียนชื่อไฟล์ Upload to I/O บอร์ด: ใช้อัปโหลดโปรแกรมไปยังแผงวงจร Arduino หรือ ฮาร์ดแวร์ ของ Arduino Page Setup: ตั้งค่าหน้ากระดาษของไฟล์ Sketch ปัจจุบัน Print: ส่งั พิมพ์โคด้ ของไฟล์ Sketch ปจั จบุ นั ทางเครอื่ งพมิ พ์ Preference: ใช้กาหนดค่าการทางานของโปรแกรม Quit: ใชจ้ บการทางานและออกจากโปรแกรม 2.2.2 Menu Bar: Edit ขณะที่พิมพ์โปรแกรมใช้คาส่ังในเมนูน้ีในการส่ังยกเลิกคาส่ังท่ีแล้ว ทาซา้ และรายการคาสงั่ ตา่ ง ๆ ทค่ี วรทราบดงั น้ี Undo: ยกเลิกคาส่ังหรือการพิมพ์คร้ังสุดทา้ ย Redo: ทาซา้ คาสัง่ หรือการพิมพค์ รงั้ สดุ ทา้ ย Cut: ตดั ขอ้ ความทเี่ ลือกไวไ้ ปเกบ็ ในคลิปบอรด์ ของโปรแกรม Copy: คดั ลอกขอ้ ความทเี่ ลอื กไวม้ าเก็บในคลิปบอร์ด Paste: นาข้อความที่อยูใ่ นคลิปบอร์ดมาแปะลงในตาแหนง่ ทีเ่ คอรเ์ ซอร์ชอ้ี ยู่ Select All: เลือกขอ้ ความท้งั หมด Comment/Uncomment: ใช้เติมหรือลบเคร่ืองหมาย “//” เพื่อสรา้ งหรือยกเลิกหมาย เหตหุ รอื คาอธิบายลงในโปรแกรม 2.2.3 Menu Bar: Sketch เป็นเมนสาหรับการคอมไพล์โปรแกรมและการเพ่ิมไลเบอรี่โดย มีเมนูยอ่ ยดังนี้ Verify/Compile: ใช้คอมไพลแ์ ปลโปรแกรมภาษาซีท่เี ราเขียนขึ้นให้เปน็ ภาษาเครอ่ื ง Show Sketch folder: ส่งั เปดิ โฟลเดอรท์ ่ีเกบ็ โปรแกรมของผใู้ ช้ Add File: เพ่ิมไฟล์ให้กับ Sketch Book ปัจจุบัน เมื่อใช้คาสั่งน้ี โปรแกรม Arduino จะทาการคัดลอกไฟลท์ ี่เลือกไว้ไปเก็บไว้ในโฟลเดอรเ์ ดียวกนั กับโปรแกรมท่ีกาลังพฒั นา Import Library: เป็นคาสง่ั เรียกใช้เพ่ือนาเข้าไลบรารีเพิ่มเติม เมื่อคลกิ เลือกคาสั่งนี้แล้ว โปรแกรม Arduino IDE แสดงไลบรารีให้เลือก เมื่อเลือกแล้วโปรแกรมสามารถเรียกใช้ไลเบอรีน้ัน ๆ ด้วยการแทรกบรรทัดคาสง่ั #include ตามดว้ ยชอื่ ไลเบอร่ีน้ัน ๆ ลงในส่วนตน้ ของไฟล์ 2.2.4 Menu Bar: Tools ใช้จัดรูปแบบของโค้ดโปรแกรมท่ีเขียนขน้ึ เลือกรุ่นของฮาร์ดแวร์ Arduino และเลือกพอร์ตทใ่ี ชง้ านกบั บอร์ด Arduino มดี ังนี้ Auto Format: จดั รูปแบบของโคด้ โปรแกรมอตั โนมตั ิ Archive Sketch: สั่งบีบอัดไฟล์โปรแกรมทั้งโฟลเดอร์หลักและโฟลเดอร์ย่อยของไฟล์ Sketch ปัจจุบันไฟล์ท่ีสรา้ งใหม่จะมีชอ่ื เดยี วกับไฟล์ Sketch ปจั จบุ ัน หน่วยที่ 2 : ชดุ คำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 37 Board: เลือกรนุ่ ฮารด์ แวรข์ องบอร์ดไมโครคอนโทรลเลอร์ Arduino Serial Port: เลือกหมายเลขพอร์ตของคอมพิวเตอร์ท่ีต่อกับฮาร์ดแวร์ Arduino และ บอรด์ Arduino 2.3 โครงสรา้ งภาษา ตัวแปร ค่าคงที่ โปรแกรมสาหรับบอร์ด Arduino จะต้องเขียนโปรแกรมโดยใช้ Arduino Programming Language ซึ่งตัวภาษาของ Arduino เป็นการนา Open Source Project ชื่อ Wiring มาพัฒนาต่อ ภาษาของ Arduino แบ่งได้เป็น 2 ส่วนหลักคือ โครงสร้างภาษา (Structure) ตัวแปร ค่าคงท่ีและฟังก์ช่ัน (Function) ภาษาของ Arduino จะอ้างอิงตามภาษา C/C++ หรืออาจกล่าวได้ว่าการเขียนโปรแกรม สาหรบั บอร์ด Arduino ก็คือการเขยี นโปรแกรมภาษา C โดยเรยี กใช้ฟงั กช์ ั่นและไลบรารีทีท่ าง Arduino ไดเ้ ตรยี มไวใ้ ห้แล้ว โครงสรา้ งโปรแกรมของ Arduino สามารถแบง่ ออกเปน็ 2 ส่วนหลกั ๆ คือ 1. โครงสร้างภาษา (Structure) ตัวแปร และค่าคงที่ 2. ฟงั กช์ ่นั (Function) สาหรับหัวข้อนี้จะอธิบายโครงสร้างของโปรแกรมของ Arduino แบ่งได้เป็นสองส่วนคือ void setup() และ void loop() โดยฟังก์ชั่น setup() จะทางานเพียงครั้งเดียวเม่ือโปรแกรมเร่ิมทางานเพ่ือ เป็นโหมดการกาหนดค่าการทางานต่าง ๆ ของขาที่ใช้งาน การกาหนดการสื่อสารของบอร์ด ไมโครคอนโทรลเลอร์กับอุปกรณ์ต่อพ่วงต่าง ๆ เป็นต้น ส่วนการทางาน loop() เป็นส่วนทางาน โปรแกรมฟังก์ช่ันนี้ต่อเน่ืองกันตลอดเวลาตามโค้ดที่ถูกโปรแกรมข้ึนเช่น อ่านค่าอินพุต คานวน หรือ ส่งั งานขาเอาต์พตุ ฯลฯ 2.3.1 สว่ นของฟังกช์ ัน่ setup() เป็นส่วนต้นของการเขียนโปรแกรม ฟังก์ช่ันนี้จะทางานเพียงครั้งเดียวเพ่ือกาหนดค่า การทางานของขาต่าง ๆ ของไมโครคอนโทรลเลอร์รวมถึงการกาหนดโหมดเริ่มต้นของไลเบอรีท่ี เรยี กใช้งาน ฯลฯ หน่วยที่ 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 38 2.3.2 สว่ นของฟงั กช์ ัน่ loop() การทางานของฟังกช์ ่ัน loop() จะแตกต่างไปจาก ฟังก์ชั่น setup() คือเป็นการทางานต่อเนื่องตลอดเวลาตามโปรแกรมที่ถูกเขียนข้ึน นอกจากภายใน ฟังก์ชั่นนี้ผู้ใช้งานสามารถเขียนโปรแกรมเรียกใช้ฟังก์ชั่นภายย่อยเพ่ือรับ-ส่งค่า คานวน หรือ ส่ังการ ทางานของขาเอาต์พตุ ต่าง ๆ ตามเงอื่ นไขโปรแกรมได้ รปู ที่ 2.13 แสดงสว่ น void setup() และ void loop() หน่วยท่ี 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 39 ตัวอย่าง รูปท่ี 2.14 แสดงโปรแกรมส่วนของ ฟงั กช์ น่ั setup() และ loop() 2.3.3 ชุดคาสั่ง คาสั่ง if คาสั่ง if เป็นคาสั่งที่ใช้ในการตรวจสอบเง่ือนไข (Condition) ในกรณีท่ีเงือนไข ของโปรแกรมเป็นจริง (True) ลาดับถัดไปในการทางานของโปรแกรมจะทางานในชุดคาส่ังที่ 1 (Statement1) ซึ่งอยูภ่ ายในปีกกา ({ … }) แตเ่ ง่อื นไขท่ีเป็นเท็จ (False) โปรแกรมจะยกเลิกคาสัง่ น้ันทันที คาส่งั if else คาส่ัง if…else เป็นคาส่ังที่ใช่ในการตรวจสอบเงื่อนไข (Condition) ซ่ึง เป็นรูปแบบการทางานลักษณะเดียวกับ if แต่ในการการใช้งานคาสั่ง if…else มักจะใช้ในการกาหนด รปู แบบการทางานของโปรแกรมให้สามารถเลือกทาคาส่งั ได้ 2 ชดุ โดยในกรณีที่เงือ่ นไขของคาส่ังเป็น จริง (True) ลาดับถัดไปในการทางานของโปรแกรมจะทางานในชุดคาส่ังท่ี 1 (Statement1) ซ่ึงอยู่ ภายในวงเล็บปกี กา ({…}) น่ันก็คือจะทางานภายใต้คาส่ัง if เท่านั้น และในกรณีเง่ือนไขเป็นเทจ็ ลาดับ ไปในการทางานของโปรแกรมจะทางานในชุดคาส่ังที่ 2 (Statement2) ซ่ึงอยู่ภายในวงเล็บปีกกา ({…}) นน่ั ก็คอื จะทางานภายใตค้ าสั่ง else เทา่ นั้น คาส่ัง switch case คาส่ัง switch..case เป็นคาส่ังท่ีใช้ในการเลือกให้โปรแกรม ทางานที่ชุดคาสั่งหนึ่ง (statement) ซ่ึงการที่โปรแกรมจะสามารถเลือกทางานท่ี statement ใด ๆ ได้น้ัน จะต้องขึ้นอยู่กับการตรวจสอบเงื่อนไข (condition) กับค่า (expression) เสมอ ซึ่งค่าท่ี หน่วยที่ 2 : ชดุ คำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 40 สามารถนามาตรวจสอบเง่ือนไขได้น้ันสามารุใช้ได้กับข้อมูลท่ีเป็นตัวเลขจานวนเต็ม และ ตัวอักษร 1 ตวั อกั ษร ดังนี้นเราสามารถใช้งานคาสัง่ switch case ไดส้ ะดวกกว่าคาสงั่ if และ if..else คาสงั่ for การทางานของคาสั่ง for ในภาษาซี เริ่มต้นด้วยการกาหนดค่าเริม่ ต้นให้กับ ตัวแปร (assignment) ที่ทาหน้าท่ีควบคุมลูปการทางานของโปรแกรม จากนี้นจึงทดสอบว่าเงื่อนไข (condition) เป็นจริงหรือไม่ ซ่ึงจะทาการเปรียบเทียบกันระหว่างค่า assignment กับค่าเงื่อนไข ใน กรณีท่ีเป็นจริง (True) จะทาคาสั่งต่าง ๆ ท่ีอยู่ใน ({…}) จากนั้นจะเพิ่มหรือลดค่าของตัวแปรที่ควบคุม ลูป แล้วจึงทดสอบเงื่อนไขอีกคร้ังการทางานจะวนซ้าจนกระทั่งเง่ือนไขเป็นเทจ็ (False) การวนลูปจึง จะสนิ้ สุดลง คาสั่ง while คาส่ัง while ในภาษซเี ปน็ คาสั่งทีก่ าหนดให้โปรแกรมทาซ้าอีกแบบหนึ่ง ในภาษาซี นิยมใช้ในกรณีท่ีต้องการตรวจสอบเง่ือนไขของโปรแกรมว่าจริงหรือไม่ ในกรณีท่ีเงื่อนไข เป็นจริง (True) ก็จะทาซ้า แต่ในกรณีที่เง่ือนไขเป็นเท็จ (False) ก็จะออกจากการทางานซ้า ซึ่ง เงื่อนไขที่เราใช้ในการตรวจสอบของคาส่ัง while นั้นอาจจะใช้กับกรณีท่ีเรารู้จานวนรอบที่แน่นอน เช่น การวนรอบตั้งแต่ index = 1 ถึง index = 10 หรือวนรอบแบบที่ไม่ทราบจานวนรอบที่แน่นอน ได้เช่นกัน อย่างไรก็ตามถ้าตัวแปรที่ตรวจสอบน้ันมีเงื่อนไขเป็นจริงตลอดเวลา โปรแกรมก็จะทาซ้า แบบไปไม่สิ้นสุด ซ่ึงการเขียนโปรแกรมลักษระนี้เราควรระมัดระวังมากท่ีสุด ฉะนั้นจะต้องเขียน โปรแกรมให้มโี อกาสออกจากการวนรอบทาซา้ ใหไ้ ด้ 2.3.4 ตัวกระทาทางคณิตศาสตร์ บวก ลบ คูณ และหาร ใช้หาค่าผลรวม ผลต่าง ผลคูณ และผลหาร ค่าของตัวถูกกระทาสองตัวโดยให้คาตอบมีประเภทตรงกับตัวถูกกระทาท้ังสองตัว เช่น 9/4 ให้คาตอบเท่ากับ 2 เน่ืองจากท้ัง 9 และ 4 เป็นตัวแปรเลขจานวนเต็ม (int) นอกจากน้ีตัวกระทา ทางคณิตศาสตรอ์ าจทาใหเ้ กิดโอเวอร์โฟลว์ (overflow) ถา้ ผลลัพธ์ทไี่ ด้มขี นาดใหญ่เกนิ กวา่ จะสามารถ เก็บในตัวแปรประเภทน้ัน ถ้าตวั ทีถ่ กู กระทาต่างประเภทกันผลลพั ธ์ท่ีได้ 9/4 = 2 หรอื 9/4 = 2.25 ตารางที่ 2.1 สัญลักษณ์ ความหมาย ตวั อยา่ ง + การบวก x+y - การลบ x–y * การคณู x*y / การหาร x/y % การหารเอาคา่ เศษ x%y ++ การเพิ่มค่าข้นึ 1 จานวน x++ -- การลดค่าขน้ึ 1 จานวน x-- หน่วยที่ 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 41 2.3.5 ตัวกระทาเปรียบเทียบ การเขียนโปรแกรมบนระบบไมโครคอนโทรลเลอร์ ส่วนใหญ่ จะต้องมีการทระทาทางลอจิก ซึ่งจะเกี่ยวข้องกับการทางานของแบบระบบดิจิทัล และเราสามารถใช้ สัญลักษณ์ต่าง ๆ ท่ีเกี่ยวข้องกับการกระทาทางลอจิกร่วมกับการเขียนโปรแกรม เพ่ือควบคุมการ ทางานของไมโครคอนโทรลเลอร์ได้ ซงึ่ สญั ลักษณแ์ ละตวั อยา่ งการใชง้ านแสดงดงั ตารางท่ี ตารางที่ 2.2 ความหมาย ตัวอยา่ ง กระทาแบบแอนด์ x&y สญั ลกั ษณ์ กระทาแบบออร์ x|y & เงอื่ นไขแบบแอนด์ x && y | เงอ่ื นไขแบบออร์ x || y && กระทาแบบนอ็ ต || กระทาแบบเอก็ ซค์ ลซู ฟี ออร์ !x ! การเลื่อนบติ ไปทางซ้าย x^0x01 ^ การเลอ่ื นบติ ไปทางขวา x << 1 << x >> 1 >> 2.3.6 ชนดิ ของตัวแปร และ อาร์เรย์ ชนิดของตัวแปร (Variable type) ในภาษซี ท่ีเราใช้ในการเขียนโปรแกรมบนระบบ ไมโครคอนโทรลเลอร์ มีอยดู่ ้วยกันหลายรูปแบบ เช่น ตัวแปรแบบเก็บจานวนจริง ตัวแปรแบบเก็บค่า จานวนทศนิยมซึ่งตัวแปรแต่ละชนิดจะมีขอบเขตของการเก็บข้อมูลที่แตกต่างกัน ดังน้ันการประกาศ ตวั แปรให้คอมไพล์เลอร์ประมวลผลได้อยา่ งถูกต้องน้นั เราต้องประกาศตัวแปรให้ถูกต้องตามชนิดของ ข้อมลู ท่ตี ้องการใช้งานดงั ตารางที่ 2.3 อาร์เรย์ (Array) คือการประกาศตัวแปรที่ใช้สาหรับเก็บข้อมูลชนิดเดียวกัน ซึ่งการ ประกาศตัวแปรในลักษณะน้ีข้อมูลที่ถูกจัดเก็บจะถูกเรียงติดกันตามลาดีบ ต้ังแต่ตาแหน่งเริ่มต้น คือ ลาดับที่ 0 จนถึงลาดับสูงสุดของอาร์เรย์ ซึ่งจะขึ้นอยู่กับการกาหนดขนาดของอาร์เรย์อ้างถึงตาแหน่ง ของข้อมูลที่เราต้องการได้ทันที ท้ังน่ีในการประตัวแปรแบบอาร์เรย์นั้นต้องทราบว่าข้อมูลท่ีเก็บน้ันมี ขนาดเทา่ ใด เพ่อื จะได้เลอื กชนิดของตวั แปรท่ีจะประกาศได้อย่างเหมาะสม ตารางที่ 2.3 ขนาดตวั แปร(บติ ) ขอบเขตของตวั แปร 8 -128 ถงึ 127 ชนิดตัวแปร 8 0 ถึง 255 char 16 -32,768 ถงึ 32,767 unsigned char int หน่วยท่ี 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 42 unsigned int 16 0 ถงึ 65,535 long 32 -2,147,483,648 ถงึ 2,147,483,647 32 0 ถงึ 4,294,967,295 unsigned long 32 3.4x10-38 ถงึ 3.4x1038 float 64 1.7x10-38 ถงึ 1.7x1038 double รปู แบบ : ชนดิ ของตวั แปร ชอ่ื ของตัวแปร ตวั อย่างการประกาศตัวแปร char value[5] // กาหนดตัวแปรแบบอาร์เรย์ชื่อ value ขนาดสมาชิก 5 ตวั unsigned long dat[100] // กาหนดตัวแปรแบบอารเ์ รย์ชือ่ dat ขนาดสมาชกิ 100 ตัว float temp[25]; // กาหนดตวั แปรแบบอาร์เรย์ชอื่ temp ขนาดสมาชกิ 5 ตัว 2.3.7 ไวยากรณภ์ าษา C / C++ ของ Arduino เซมิโคลอน - semicolon ; วงเล็บปีกกา - curly brace { } หมายเหตุบรรทัดเดียวและหลายบรรทัด // และ /* ... */ เป็นส่วนของโปรแกรมที่ ผู้ใช้เขียนเพ่ืมเติมว่าโปรแกรมทางานอย่างไร โดยส่วนที่เป็นหมายเหตุจะไม่ถูกคอมไพล์ ไม่นาไป ประมวลผล มปี ระโยชน์มากสาหรับการตรวจสอบโปรแกรมภายหลังหรือใช้แจง้ ให้เพื่อน ร่วมงานหรือ บุคคลอ่ืนทราบว่าบรรทัดน้ีใช้ทาอะไร ตัวหมายเหตุภาษาซี โดยการเพ่ิมเครื่องหมายสเลช 2 ตัวหน้า บรรทัด และการเพิ่มเครอ่ื งหมายสเลชค่กู บั ดอกจนั คล่อมขอ้ ความและปดิ ด้วยดอกจันคู่กับสเลข ตวั อยา่ งการใช้งานหมายเหตุ // หมายเหตบุ รรทัดเดียว /* หมายเหตหุ ลายบรรทัด หมายเหตุหลายบรรทดั หมายเหตุหลายบรรทัด */ #define เป็นคาส่ังที่ใช้งานมาก ในการกาหนดค่าคงท่ีให้กับโปรแกรม ในการกาหนด ค่าคงท่ไี ม่ได้เปลืองพ้ืนท่ี หน่วยความจาของไมโครคอนโทรลเลอร์แต่อย่างไร เมื่อถึงขึ้นตอนแปลภาษา คอมไพเลอร์จะแทนท่ตี ัวอกั ษรข้อความด้วยคา่ ทกี่ าหนดไว้ ใน Arduino จะใช้คาส่ัง # define ตรงกับ ภาษาซี #include ใช้ส่ังให้รวมไฟล์อ่ืน ๆ เข้ากับไฟล์โปรแกรมหลักก่อน แล้วจึงทาการคอมไพล์ โปรแกรม หน่วยที่ 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 43 คาสงวนของ Arduino คาสงวนคือ ค่าคงท่ี ตัวแปร และฟังก์ช่ันที่กาหนดไว้เป็นส่วน หน่ึงของภาษาซี ของ Arduino ห้ามนาคาเหลา่ น้ไี ปตงั้ ชือ่ ตวั แปรแสดงได้ดงั ตารางที่ 2.4 ตารางที่ 2.4 Constants Port Datatypes other Constants HIGH DDRB boolean += abs pinMode constrain LOW PINB byte +[ acos print cos INPUT PORTB char OUTPUT DDRC class ] analogRead println default SERIAL PINC default DISPLAY PORTC do =&& analogWrite pulseIn delay PI DDRD double HALF_ PI PIND int || attachInterrupts radians delayMicroseconds TWO_PI PORTD long LSBFIRST private ,/ asin this detachInterrupts MSBFIRST protected CHANGE public / atan tone digitalWrite FALLING return RISING shot ?: atan2 true digitalRead false signed true static log available write else null switch throw && begin # USB exp Try Unsigned !| bit Keyboard false Void while | bitRead Mouse find ^^ bitWrite read findUntil = bitSet press float == bitClear release floor ++ boolean releaseAll for != byte readBytes HALF_PI - case readBytesUntil if % ceil return int / char round log * char serial loop { class serial1 map } abs serial2 max / / acos serial3 micros ** setTimeout millis . Setup min << shiftIn new () shiftOut noInterrupts >> sin noTone sq null sqrt parseInt tan parseFloat หน่วยที่ 2 : ชดุ คำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 44 แบบทดสอบหลงั เรยี น หนว่ ยท่ี 2 ชุดคาสัง่ และการเขยี นโปรแกรมควบคุม คาสงั่ จงเลอื กคาตอบทถ่ี ูกทส่ี ดุ เพยี งข้อเดยี ว 1. การตดิ ต้ัง Arduino IDE ต้องไป Download โปรแกรมท่ใี ด? ก. https://www.arduino.cc ข. https://www.arduinocc.com ค. www.arduino.com ง. https://www.arduinothai.cc จ. www.arduinocc.com 2. โปรแกรม Arduino IDE คาวา่ IDE ย่อมาจาก? ก. Integrat Developer Environment ข. Integrated Development Environment ค. Integrated Developer Enterprise ง. Integer Development Enterprise จ. Integer Development Eclipse 3. เราสามารถเรียกดูพอรต์ จากสว่ นใดของคอมพวิ เตอร์? ก. Driver Manager ข. Driver License ค. Device Manager ง. Developer License จ. Device License 4. คาส่งั Verify เรียกใชเ้ พื่อตอ้ งการอะไร? ก. สรา้ ง Sketch ใหม่ ข. บันทึก Sketch ค. ตรวจเชค็ ไวยกรณ์ของโปรแกรม ง. อัปโหลดโปรแกรม จ. ลบ Sketch 5. ใช้สัญลักษณใ์ ดเพ่อื ตอ้ งการแสดงคาอธิบายลงโปรแกรม? ก. ++ ข. * ค. %% ง. // จ. && หน่วยท่ี 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 45 6. คาสง่ั ใดเปน็ คาสั่งหน่วงเวลา? ก. digitalWrite ข. digitalRead ค. pinMode ง. delay จ. delete 7. บอดเรต (baud rate) คืออะไร? ก. อัตราเร็วในการรบั ส่งข้อมลู ทตี ้องกาหนดค่า ข. พอรต์ ในการเชอ่ื มต่อบอรด์ ค. บนั ทกึ โปรแกรมลา่ สดุ ง. หน่วยความจาไมโครคอนโทรลเลอร์ จ. ความถี่ 8. อธบิ ายคาสง่ั if? ก. คาสั่งท่ีใชใ้ นการตรวจสอบเงอ่ื นไข ข. กาหนดโหมดของ GPIO ค. การบวกลบทางคณิตศาสตร์ ง. เรียกใชไ้ ลบรารีก่ ่อนคอมไพลเ์ ลอรป์ ระมวลผล จ. การเขียนผงั งาน 9. ตัวแปรชนิด char มีขนาดตัวแปรกบี่ ิต? ก. 8 ข. 16 ค. 32 ง. 64 จ. 128 10. โครงสร้างโปรแกรมของ Arduino แบ่งได้เปน็ สองสว่ นคือ? ก. void setup() และ void run() ข. void setup() และ void main() ค. void main() และ void loop() ง. void setup() และ void loop() จ. void main() และ void run() หน่วยที่ 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 46 แบบฝึกหดั หนว่ ยท่ี 2 ชุดคาสั่งและการเขยี นโปรแกรมควบคุม ตอนที่ 1 ใหผ้ ้เู รยี นกาเครอื่ งหมายถูก () หน้าขอ้ ทคี่ ิดวา่ ถกู และกาเคร่ืองหมายผิด () ในข้อท่คี ิดว่าผดิ ซอฟต์แวรท์ ี่ใชใ้ นการพัฒนาบอรด์ Arduino นัน้ คอื โปรแกรมทีเ่ รียกว่า Arduino LDP ขนดของโปรแกรม Arduino โดยปกตแิ ลว้ จะใหญ่กว่าโคด้ AVR โคด้ Arduino เขา้ ถงึ จากรีจสิ เตอร์โดยตรง โหลดโปรแกรม IDE ฟรีท่เี วป http://Arduino.cc/en/Main/Software ระบบปฎบิ ิการ Linux ไมส่ ามารถลงโปรแกรม Arduino IDE ได้ ชิพ CP210x และ FTDI เป็นตัวสอื่ สารผ่าน USB ของบอรด์ ไมโครคอนโทรลเลอร์ เมนู (Menu) เปน็ สว่ นไวส้ าหรบั ตรวจเชค็ วา่ โปรแกรมเขียนถูกไวยกรณ์หรือปา่ ว แถบเครอ่ื งมือ (Toolbar) เปน็ การนาคาส่งั ท่ีใช้งานนานๆครง้ั มาสร้างเป็นปุ่ม พนื้ ทเ่ี ขยี นโปรแกรม (Coding Area) เป็นพนื้ ทส่ี าหรับเขียนโปรแกรมภาษา C/C++ Debugging Console เป็นพ้นื ทแี่ สดงคา่ จากคาสั่ง AnalogRead หน่วยที่ 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 47 ตอนท่ี 2 ใหผ้ เู้ รียนเลอื กคาตอบที่ถูกทส่ี ดุ แล้วกาเคร่ืองหมายกากบาท () ใหค้ รบทกุ ข้อ 1. พนื้ ท่ี Text Editor เปน็ พื้นทสี่ าหรบั เขยี นโปรแกรมภาษา? ก. ภาษา VHDL ข. ภาษา JavaScript ค. ภาษา Python ง. ภาษา C/C++ 2. เมนู File > Sketchbook ใชส้ าหรับ? ก. เปิดไฟล์ Sketchbook ท่ีเราสร้างไว้ ข. เปดิ ไฟล์โปรแกรมตวั อย่างของ Arduino ค. ตั้งคา่ การบันทึกโปรแกรม ง. บนั ทกึ โปรแกรมลา่ สดุ ไปยัง Sketchbook 3. เมนู Edit > Undo ใชส้ าหรับ? ก. คัดลอกข้อความทีเ่ ลือกไว้มาเกบ็ ในคลปิ บอร์ด ข. เลือกข้อความทั้งหมด ค. ตดั ขอ้ ความที่เลือกไวไ้ ปเก็บในคลิบอร์ด ง. ยกเลกิ คาสั่งหรอื การพิมพ์ครง้ั สุดทา้ ย 4. เมนู Sketch > Verify/Compile ใช้สาหรับ? ก. ส่งั เปิดโฟลเดอร์ท่ีเกบ็ โปรแกรมของผ้ใู ช้ ข. เรยี กใชเ้ พื่อนาเข้าไลบรารีเพ่มิ เติม ค. ใช้คอมไพล์แปลโปรแกรมภาษาซีให้เปน็ ภาษาเครอ่ื ง ง. เพมิ่ ไฟล์ใหก้ บั Sketch Book ปจั จุบนั 5. เม่อื คอมไพลโ์ ปรแกรมเสร็จ Debugging Console แสดงขอ้ ความ? ก. Done Compiling ข. Done Computer ค. Ok Compiling ง. Gone Compiling 6. ขอ้ ใดคือค่า Baud Rate? ก. 4080 ข. 6900 ค. 115200 ง. 56700 7. ตวั กระทาเปรียบเทยี บใช้สาหรับประกอบกับคาส่งั ใด ก. if() และ while() ข. for() และ if() ค. if() และ random() ง. setup() และ else() หน่วยท่ี 2 : ชดุ คำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 48 ตอนท่ี 3 ให้ผูเ้ รียนทาการทดลองการติดตงั้ Arduino IDE และทดสอบ Arduino Uno R3 โดยใช้ เวลา 180 นาที จุดประสงค์เชงิ พฤตกิ รรม 1. สามารถติดตงั้ และทดสอบบอร์ด Arduino Uno R3 ได้ 2. สามารถแก้ปญั หาท่ีทาใหก้ ารตดิ ตั้งไมส่ าเรจ็ ในการตดิ ตั้งบอรด์ Arduino Uno R3 ได้ 3. สามารถทดสอบการทางานของบอร์ด Arduino Uno R3 ได้ อปุ กรณ์การทดลอง 1 โปรแกรม 1 เสน้ 1. โปรแกรม Arduino IDE 1 บอรด์ 2. สายโหลด USB Arduino Uno R3 1 ชดุ 3. บอรด์ Arduino Uno R3 1 เคร่อื ง 4. สายต่อวงจร 1 ตวั 5. เคร่อื งคอมพิวเตอร์ 6. แผงตอ่ วงจร การทดลองท่ี 2.1 รูปที่ 2.15 ตัวอยา่ งการเช่ือมตอ่ บอร์ด Arduino กับคอมพิวเตอร์ ข้ันตอนการทดลอง 1. ดาวน์โหลดโปรแกรม Arduino IDE 2. ตดิ ต้ังโปรแกรมให้ตรงกบั ระบบปฏิบตั กิ ารของคอมพวิ เตอร์ 3. เปิดโปรแกรมตัวอยา่ ง File > Examples > 01.Basics > Blink ประเมินผลการทดลอง 1. สามารถติดตั้งโปรแกรม Arduino IDE ได้ถกู ตอ้ ง 10 คะแนน 2. สามารถทดสอบและอธบิ ายการทางานไดถ้ กู ตอ้ ง 10 คะแนน …………………………………… คะแนน รวมคะแนนภาคปฏิบัติ หน่วยท่ี 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 49 การทดลองที่ 2.2 ข้นั ตอนการทดลอง 1. ตอ่ วงจรตามรูปที่ 2.16 2. เขยี นโปรแกรมอา่ นคา่ จากสวติ ช์ 2.1 เมอ่ื กดสวิตชค์ า้ งไว้ใหห้ ลอด LED บนบอรด์ (pin 13) กระพรบิ ดว้ ยความเร็ว 1 ครง้ั ต่อ 2 วนิ าที 2.2 เม่อื ปล่อยสวิตชใ์ หห้ ลอด LED บนบอรด์ (pin 13) กระพริบดว้ ยความเร็ว 1 ครัง้ ตอ่ 100 มิลลวิ ินาที รูปที่ 2.2 รูปแบบการต่อวงจรการทดลองที่ 2.2 ประเมินผลการทดลอง 10 คะแนน 10 คะแนน 1. สามารถเขยี นโปรแกรมได้ถกู ต้องตามเง่ือนไข 2. สามารถทดสอบและอธบิ ายการทางานได้ถูกต้อง ……………………… คะแนน รวมคะแนนภาคปฏิบตั ิ หน่วยที่ 2 : ชดุ คำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 50 การทดลองที่ 2.3 ข้ันตอนการทดลอง 1. ตอ่ วงจรตามรูปที่ 2.16 2. เงอ่ื นไขในการเขยี นโปรแกรม 2.1 ใชค้ าสั่ง switch-case (ตัวอยา่ งโปรแกรม File > Examples > 05.Control > switchCase) 2.2 รบั ค่าจาก Serial Monitor (โดยใช้ฟงั กช์ ่ัน Serial.Read() ) 2.3 ใช้ LED บนบอรด์ แสดงความเรว็ ในการกระพรบิ 4 ระดับ ประเมินผลการทดลอง 1. สามารถเขียนโปรแกรมได้ถูกต้องตามเงื่อนไข 10 คะแนน 2. สามารถทดสอบและอธบิ ายการทางานได้ถูกต้อง 10 คะแนน รวมคะแนนภาคปฏิบัติ …………………… คะแนน หน่วยท่ี 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 51 เฉลยแบบทดสอบกอ่ นเรียน 5. ง 10. ง หนว่ ยที่ 2 ชดุ คาส่ังและการเขยี นโปรแกรมควบคุม 1. ก 2. ข 3. ก 4. ค 6. ง 7. ก 8. ก 9. ก เฉลยแบบทดสอบหลังเรยี น 5. ค 10. ข หน่วยท่ี 2 ชุดคาสัง่ และการเขยี นโปรแกรมควบคุม 1. ค 2. ง 3. ข 4. ก 6. ข 7. ง 8. ค 9. ก เฉลยแบบฝึกหดั หนว่ ยที่ 2 ชุดคาสง่ั และการเขยี นโปรแกรมควบคุม ตอนที่ 1 ให้ผ้เู รียนกาเคร่อื งหมายถกู () หนา้ ข้อท่คี ิดว่าถกู และกาเคร่ืองหมายผดิ () ในข้อทคี่ ิดวา่ ผิด  ซอฟตแ์ วร์ที่ใช้ในการพัฒนาบอร์ด Arduino นัน้ คอื โปรแกรมทเ่ี รยี กวา่ Arduino LDP  ขนดของโปรแกรม Arduino โดยปกติแล้วจะใหญ่กว่าโคด้ AVR  โค้ด Arduino เขา้ ถึงจากรจี สิ เตอรโ์ ดยตรง  โหลดโปรแกรม IDE ฟรที เี่ วป http://Arduino.cc/en/Main/Software  ระบบปฏิบตั กิ าร Linux ไมส่ ามารถลงโปรแกรม Arduino IDE ได้  ชพิ CP210x และ FTDI เปน็ ตัวสือ่ สารผ่าน USB ของบอร์ดไมโครคอนโทรลเลอร์  เมนู (Menu) เป็นสว่ นไว้สาหรบั ตรวจเชค็ ว่าโปรแกรมเขียนถูกไวยกรณห์ รอื ปา่ ว  แถบเครือ่ งมอื (Toolbar) เปน็ การนาคาส่งั ทีใ่ ช้งานนาน ๆ คร้งั มาสร้างเป็นปุ่ม  พน้ื ทเี่ ขยี นโปรแกรม (Coding Area) เป็นพ้นื ท่ีสาหรับเขียนโปรแกรมภาษา C/C++  Debugging Console เป็นพืน้ ทแี่ สดงค่าจากคาส่งั Analog Read ตอนที่ 2 ให้ผ้เู รียนเลือกคาตอบที่ถูกท่สี ุดแลว้ กาเคร่ืองหมายกากบาท () ให้ครบทุกข้อ เฉลยแบบฝึกหดั หนว่ ยท่ี 2 ชุดคาสั่งและการเขียนโปรแกรมควบคุม 1. ง 2. ก 3. ง 4. ค 5. ก 6. ค 7. ก 8. ค 9. ก 10. ข หน่วยที่ 2 : ชุดคำสงั่ และกำรเขียนโปรแกรมควบคมุ


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook