บทเรียนโมดูลท่ี 2
สมรรถนะย่อยที่ 1-5
อาชพีหนังสอื อิเลก็ ทรอนิกส์ e-book
นักออกแบบและพัฒนา
ระบบอิเลก็ ทรอนกิ ส์อตั โนมัติ
คณะครศุ าสตรอ์ ตุ สาหกรรมและเทคโนโลยี มหาวทิ ยาลัยเทคโนโลยีราชมงคลศรวี ิชยั
ทุนอดุ หนุนการวิจยั จากสานกั งานคณะกรรมการกองทุนส่งเสรมิ วิทยาศาสตร์ วจิ ัยและนวตั กรรม
ประจาปีงบประมาณ 2564
อระัตบโบนอมิเลัต็กิ ทรอนิกส์
บทเรียนโมดลู หลกั สตู รอาชีพนักออกแบบและพฒั นาระบบอเิ ลก็ ทรอนิกส์อัตโนมตั ิ
โมดลู ที่ 2 เรื่อง พัฒนาซอฟต์แวรส์ าหรบั ระบบอิเลก็ ทรอนิกส์อตั โนมตั ิ
คาแนะนาการใชบ้ ทเรยี นโมดูล
ข้นั ตอนการใช้บทเรยี นโมดลู
1. ศกึ ษาคาแนะนาการใชบ้ ทเรียนและโครงสรา้ งบทเรยี นโมดูล
2. ทาแบบทดสอบก่อนเรียนเพอ่ื ตรวจสอบความร้พู ้ืนฐานของตนเอง
3. การศึกษาบทเรยี นโมดลู นกั เรียนสามารถศกึ ษาเปน็ รายบุคคลหรอื รายกลมุ่ ยอ่ ยจานวน 3 – 5 คน
4. ศกึ ษารายละเอยี ดของเน้อื หาแต่ละตอน พร้อมท้ังทาตามกิจกรรมต่าง ๆ ท่ีกาหนดในบทเรียน เช่น บันทึกเนื้อหาทา
การทดลอง ทาแบบฝึกหัดหรอื กจิ กรรมอ่ืน ๆ ตามทก่ี าหนดไวใ้ นโมดูล
5. ตรวจแบบฝึกหัดหรือกิจกรรม จากแนวคาตอบท้ายโมดูลเพ่ือตรวจสอบว่านักเรียนมีความเข้าใจในเนื้อหาน้ัน ๆ
หรอื ไม่ ถา้ ผิดนักเรียนควรทาการศึกษาอกี ครง้ั พรอ้ มท้งั ปรกึ ษาเพ่อื นในกลุม่ และซกั ถาม ครูผ้สู อนใหเ้ กดิ ความเข้าใจก่อน
ทาการศึกษาตอ่ ไป
6. ทาแบบทดสอบหลังเรียน เพื่อตรวจสอบว่าตนเองมีความรู้ผ่านเกณฑ์การประเมิน โดยมีเกณฑ์การประเมินร้อยละ
80 และ ใหผ้ ่านไปเรียนโมดูลต่อไป
7. นักเรียนท่ีไม่ผ่านเกณฑ์การประเมินร้อยละ 80 ให้นักเรียนเรียนซ่อมเสริม และให้กลับไปศึกษาเนื้อหาในโมดูลตาม
ขัน้ ตอนอีกคร้งั พรอ้ มทัง้ ปรกึ ษาและซกั ถามครูจนเกิดความเข้าในเนื้อหาแล้วจึงทาแบบทดสอบหลังเรียนชุดเดิมอีกครั้ง
ถ้าผา่ นเกณฑ์การประเมินจงึ เรยี นโมดลู ต่อไป
8. ขณะทากจิ กรรมนักเรียนตอ้ งมคี วามซ่อื สัตย์ต่อตนเอง โดยต้องไม่ดแู นวทางการตอบเพราะจะไม่มีประโยชน์ใด ๆ ต่อ
นกั เรยี น
9. การเรยี นรู้ดว้ ยวิธนี ้ี นักเรยี นจาตอ้ งซอื่ สตั ยต์ ่อตนเองและมีความเช่ือม่ันในตนเองว่าทุกคนมีสามารถในการเรียนและ
ผา่ นเกณฑก์ ารประเมินผลทกี่ าหนดไวไ้ ด้หากมีความตง้ั ใจจรงิ และมีความม่งุ ม่ัน
อระัตบโบนอมเิ ลัต็กิ ทรอนกิ ส์ สารบญั
คาแนะนาการใชบ้ ทเรียนโมดูล หนา้
ขัน้ ตอนการใชบ้ ทเรยี นโมดลู
การเขยี นโปรแกรม ควบคุมแบบแยกส่วนเปน็ โมดลู สาหรบั ระบบอเิ ลก็ ทรอนิกส์ 1
อตั โนมตั ิจากโจทกท์ ่ีกาหนด 2
20
โครงสร้าง หน้าที่ และเนื้อหาของไฟลซ์ อรส์ โค้ดของโปรแกรม 23
การรวบรวมโปรแกรมยอ่ ยทุกส่วนเขา้ เป็นโปรแกรมระบบ 24
การเลอื กวิธกี ารกาหนดเงือ่ นไขในการคอมไพลแ์ ละลิงคซ์ อร์สโคด้ 26
ทีเ่ หมาะสมกบั การทางาน 51
51
การปฏิบัตกิ ารใชเ้ คร่อื งมอื ในการสรา้ งซอฟตแ์ วร์และตดิ ต้ังลงบอร์ด
หลกั การ เคร่ืองมอื และวธิ กี ารพฒั นาแบบขา้ มแพลตฟอรม์ 58
58
การปรบั แต่ง และแกไ้ ข Code Warning และ Error
การวิเคราะหส์ าเหตุ เครื่องมือ และข้อความท่รี ายงาน 63
การแจง้ เตือน/ความผดิ พลาด 64
การทดสอบโปรแกรม แตล่ ะโมดลู
การกาหนดเงอ่ื นไขและดาเนินการทดสอบฟงั กช์ ันเพ่ือตรวจสอบ
รูปแบบความผิดพลาดทีก่ าหนด
บรรณานุกรม
แหล่งอ้างองิ รปู ภาพ
1 รอะตั บโบนอมิเลตั ็กิ ทรอนกิ ส์
บทเรยี นโมดลู หลักสูตรอาชพี นักออกแบบและพัฒนาระบบอเิ ลก็ ทรอนกิ ส์อตั โนมัติ
โมดูลท่ี 2 เร่อื ง พฒั นาซอฟตแ์ วร์สาหรบั ระบบอเิ ลก็ ทรอนิกสอ์ ัตโนมัติ
ระบบอิเลก็ ทรอนกิ สอ์ ตั โนมตั ิ
ระบบอัตโนมัติ คือ ระบบทีท่ างานผา่ นการควบคุมจากคอมพิวเตอร์ อาจจะเป็นอุปกรณ์อิเล็กทรอนิกส์
ทีส่ ามารถเรมิ่ ทางานไดด้ ้วยตวั เองตามโปรแกรมทม่ี นษุ ยเ์ ป็นผู้ควบคมุ ไว้ เช่นระบบรดน้าอัตโนมัติ ระบบตอบรับโทรศัพท์
อัตโนมัติ ระบบอัตโนมัติเข้ามามีบทบาทมากข้ึนในปัจจุบันทั้งในด้านวิศวกรรม อุตสาหกรรม และรวมไปถึงการดาเนิน
ชีวติ ประจาวันของมนษุ ย์ ระบบอตั โนมตั ิถกู คดิ คน้ มาเพอื่ ให้สามารถลดการใช้ทรัพยากรที่ไม่จาเป็น และตอบสนองความ
ตอ้ งการของมนษุ ย์
ในด้านอุตสาหกรรมจะเห็นการใช้ระบบอัตโนมัติมากข้ึน เนื่องจากด้านอุตสาหกรรมต้องการที่จะลด
ค่าใชจ้ ่ายและเพมิ่ คุณภาพให้กับสินค้าหรือบริการ ระบบอัตโนมัติในอุตสาหกรรมเช่น หุ่นยนต์อุตสาหกรรม (Industrial
Robots) รถขนส่งAGV สายพานการผลิต (Conveyer) รวมท้ังระบบ PLCs (Programmable Logic Control) เป็นต้น
การใช้เทคโนโลยีดังกล่าวเข้ามาช่วยในอุตสาหกรรมสามารถช่วยแก้ไขปัญหาท่ีเกิดจากมนุษย์ (Human Error) และเพ่ิม
ประสิทธภิ าพในการผลติ มากยิ่งขน้ึ
โดยโมดูลทผ่ี ่านมาได้เรยี นรู้ เรื่องการพัฒนาฮาร์ดแวร์สาหรับระบบอิเล็กทรอนิกส์อัตโนมัติ ซ่ึงเนื้อหาที่
ผ่านมา จะเก่ียวข้องกับ ระบบอิเล็กทรอนิกส์อัตโนมัติ,อุปกรณ์อิเล็กทรอนิกส์, ไมโครคอนโทรเลอร์ , Arduino Uno,
NodeMCU ESP8266 , อุปกรณ์ต่าง ๆของโมดูลอินพุต-เอาต์พุต , การประกอบตกแต่งระบบ , การทดสอบระบบและ
รวมถงึ การใชเ้ ครอื่ งมอื วัดทางไฟฟ้า ซึ่งเน้ือหาท่ีผ่านมาน้ันเป็นการพัฒนาฮาร์ดแวร์สาหรับระบบอิเล็กทรอนิกส์อัตโนมัติ
ในส่วนของโมดูลนี้จะเป็นการพัฒนาซอฟต์แวร์สาหรับระบบอิเล็กทรอนิกส์อัตโนมัติ ซ่ึงเนื้อหาในโมดูลนี้จะเป็นการ
เช่อื มต่อซอฟแวร์ระบบอเิ ล็กทรอนกิ ส์อัตโนมตั ิ การเขียนในการควบคมุ การส่ังงานอปุ กรณเ์ ซ็นเซอร์
1.เขยี นโปรแกรม ควบคุมแบบแยกสว่ นเปน็ โมดลู สาหรบั ระบบอเิ ล็กทรอนกิ ส์อัตโนมตั ิ
ภาษาซีเกิดขึ้นในปี ค.ศ. 1972 ผู้คิดค้นคือ Dennis Rittchie โดยพัฒนามาจากภาษา B และ ภาษา
BCPL แต่ยงั ไมมีการใช้งานอยา่ งกว้างขวางนัก ในปี ค.ศ. 1978 Brain Kernighan ได้รว่ มกับ Dennis Ritchie มาพัฒนา
มาตรฐานของภาษาซี เรียกว่า K&R ทาให้มีผู้สนใจเกี่ยวกับภาษาซีมากขึ้น จึงเกิดภาษาซีอีกหลายรูปแบบเพราะยังไม่มี
การกาหนดรูปแบบภาษาซีทีเ่ ปน็ มาตรฐาน และในปี 1988 Ritchie จึงได้กาหนดมาตรฐานของภาษาซีเรียกว่า ANSI C
เพื่อใช้เป็นตัวกาหนดมาตรฐานในการสร้างภาษาซีรุ่นต่อไปภาษาซี เป็นภาษาซีระดับกลางเหมาะสมสาหรับการเขียน
โปรแกรมแบบโครงสร้าง เป็นภาษาที่มีความยืดหยุ่นมากคือใช้งานได้กับเครื่องต่างๆ ได้และปัจจุบันภาษาซีเป็นภาษา
พ้นื ฐานของภาษาโปรแกรมรุน่ ใหม่ ๆ เชน่ C++
ระบบอเิ ล็กอทัตรอโนนมิกสัต์ ิ 2
โครงสร้าง หนา้ ท่ี และเน้อื หาของไฟลซ์ อร์สโค้ดของโปรแกรม
การเขียนโปรแกรมสาหรับบอร์ด Arduino จะต้องเขียนโปรแกรมโดยใช้ภาษาของ Arduino (Arduino
Programming Language) ซ่ึงตัวภาษาของ Arduino ก็นาเอาโอเพ่นซอร์สโปรเจ็กต์ชื่อ Wiring มาพัฒนาต่อ
ภาษา ของ Arduino แบ่งได้เป็น 2 ส่วนหลักคือโครงสร้างภาษา (Structure) ตัวแปรค่าคงที่และฟังก์ช่ัน
(Function) ภาษาของ Arduino จะอ้างอิงตามภาษา C/C++ จึงอาจกล่าวได้ว่าการเขียนโปรแกรมสาหรับ
Arduino (ซึ่งกร็ วมถึง บอร์ด Arduino) ก็คือการเขียนโปรแกรมภาษา C
การใช้งาน Arduino เรมิ่ ต้น เราตอ้ งมีโปรแกรมสาหรบั ใชเ้ ขียนโปรแกรมลงบอร์ด Arduino กันก่อน ซ่ึง
โปรแกรมที่นิยมใช้ก็คือ Arduino IDE จากเว็บ www.arduino.cc ซ่ึงใช้งานง่ายและฟรีด้วย ใช้ร่วมกับบอร์ด
Arduino ได้ทุกรนุ่ โดยรนุ่ ทอ่ี อกแบบสาหรับผ้เู รมิ่ ตน้ คอื บอร์ด Arduino Uno มีราคาไม่แพงและมีโคดตัวอย่างให้
ศึกษาได้มากมาย สามารถใช้ส่ังงานเปิด/ปิดไฟ ทาเป็นเคร่ืองควบคุมอุณหภูมิในฟาร์มต้นไม้ ใช้สั่งงานจาก
โทรศัพท์มือถือ และอีกหลาย ๆ โปรเจ็ค เท่าท่ีเราสามารถจินตนาการได้ บทน้ีถือเป็นจุดเร่ิมต้นสาหรับ Arduino
โดยเราจะตอ้ งตดิ ตงั้ โปรแกรม Arduino IDE กอ่ น
1.1 ข้ันตอนการปฏบิ ัติ
1. ดาวน์โหลด Arduino IDE โดยไปท่ี https://www.arduino.cc และไปที่ click ท่ี Download
ภาพที่ 1.1 ดาวน์โหลด Arduino IDE [1]
3 อระตั บโบนอมิเลตั ก็ ิ ทรอนกิ ส์
2. เลอื กระบบปฎิบัตกิ ารของเครอื่ งคอมพวิ เตอร์ท่ีใชใ้ นการเขียนโปรแกรม Arduino
ภาพท่ี 1.2 เลือกระบบปฎบิ ตั กิ ารของเคร่อื งคอมพิวเตอร์ [3]
3. กด JUST DOWNLOAD (หากต้องการร่วมบริจาคช่วยการพฒั นา Arduino Software
สามารถกด CONTRIBUTE & DOWNLOAD)
ภาพท่ี 1.3 JUST DOWNLOAD [1]
ระบบอิเลก็ อทัตรอโนนมิกสัต์ ิ 4
4.บันทึกไฟลต์ ิดต้ังโปรแกรมไปยงั โฟลเดอรท์ ีต่ ้องการ
ภาพที่ 1.4 บนั ทกึ ไฟล์ [1]
5.Unzip ไฟลต์ ิดต้ัง
ภาพที่ 1.5 Unzip ไฟล์ติดตั้ง [1]
5 รอะัตบโบนอมิเลัตก็ ิ ทรอนกิ ส์
6.คลิกทไ่ี ฟล์ arduino.exe
ภาพที่ 1.6 ไฟล์ arduino.exe [1]
7.หนา้ ตา่ งโปรแกรม Arduino จะปรากฏข้นึ ดังรูป
ภาพที่ 1.7 หน้าต่างโปรแกรม Arduino [1]
ระบบอเิ ล็กอทตั รอโนนมิกสัต์ ิ 6
8.สร้าง Shortcut บน Desktop เพ่ือความสะดวกในการเปิดโปรแกรมในครง้ั ตอ่ ๆไป
ภาพที่ 1.8 Shortcut บน Desktop [1]
9.จะปรากฏไอคอนของโปรแกรม Arduino บน Desktop ดังแสดงในรปู
ภาพท่ี 1.9 ไอคอน Arduino บน Desktop [1]
7 รอะัตบโบนอมเิ ลตั ็กิ ทรอนิกส์
1.2 โครงสร้างของไฟลซ์ อรส์ โค้ดของโปรแกรม
รหัสต้นฉบับ หรือ รหัสต้นทาง หรือ ซอร์ซโค้ด (อังกฤษ: source code) หรืออาจจะเรียกว่า ซอร์ซ
หรือ โค้ด คือข้อความที่เป็นชุดที่ถูกเขียนขึ้น และสามารถอ่านและเข้าใจได้ ใช้สาหรับภาษาโปรแกรม ในการ
เขียนโปรแกรมแบบใหม่ รหัสต้นฉบับนิยมเก็บไว้ในไฟล์หลายไฟล์แยกจากกัน เพื่อให้ง่ายในการเรียกใช้ส่วนย่อย
ของคาสงั่ นั้น ถงึ แม้วา่ รหัสต้นฉบับถูกเขียนขึ้นในลักษณะที่ให้อ่านและแก้ไขได้ง่าย รหัสต้นฉบับจะถูกเปลี่ยนเป็น
ภาษาคอมพิวเตอร์ เพ่ือใช้ในการประมวลผลสาหรับคอมพิวเตอร์โดยคอมไพเลอร์สาหรับโปรแกรมนั้น หรือ
คานวณในทนั ทีโดยใช้อนิ เตอร์พรีเตอรเ์ ขา้ มาช่วย
ภาพท่ี 1.10 ตวั อยา่ งไฟล์ซอรส์ โคด้ ภาษาซี [3]
ระบบอเิ ลก็ อทัตรอโนนมกิ สตั ์ ิ 8
โครงสร้างของไฟล์ซอร์สโค้ดของโปรแกรมแบ่งออกเปน็ 3 ส่วนคอื
ภาพท่ี 1.11 โครงสร้างของไฟลซ์ อรส์ โคด้ [3]
• ส่วนหัวของโปรแกรม
จะเร่ิมต้ังแต่บรรทัดแรกของโปรแกรมจนถึงบรรทัดก่อน main() มีไว้เพ่ือเขียนคาส่ังพิเศษบางอย่างที่
ต้องการให้ทางานก่อนเข้าสู่การทางานของตัวโปรแกรม เรียกว่า Preprocessor Directives นอกจากน้ียังเป็น
สว่ นทีใ่ ช้กาหนดขอ้ มลู และตวั แปรที่จะนาไปใช้ในตวั โปรแกรมอีกด้วย
Preprocessor Directives คือคาส่ังรูปแบบหน่ึงของภาษาซีที่มีความพิเศษ ถ้าตัวแปลภาษาซีตรวจ
พบว่ามีการใช้ Preprocessor Directives ภายในโปรแกรม Preprocessor Directives เหล่าน้ันจะถูกแปล
ความหมายเป็นอันดับแรกก่อนคาสั่งประเภทอ่ืน การเขียนคาส่ัง Preprocessor Directives ต้องข้ึนต้นด้วย
เครอื่ งหมาย # แต่ไม่ตอ้ งลงทา้ ยด้วยเครอื่ งหมาย;
9 รอะัตบโบนอมเิ ลัตก็ ิ ทรอนกิ ส์
คาส่งั ทอี่ ย่ใู นกลมุ่ ของ Preprocessor Directives ได้แก่ #include, #define, #ifdef, #undef
เป็นตน้ Preprocessor Directives ท่ีนา่ สนใจและตอ้ งใช้งานเป็นประจาคือ
#include
Preprocessor Directives #include ใช้สาหรับสั่งให้ตัวแปลภาษาซี นา header file (ไฟล์ท่ีระบุช่ือต่อ
จาก #include) มารวมกับโปรแกรมกอ่ นทจี่ ะแปลภาษา สามารถเขยี นได้ 2 รูปแบบดงั น้ี
แบบที่ 1 #include <header file>
เช่น #include<stdio.h> โดยคอมไพเลอร์จะค้นหาเฮดเดอร์ไฟล์ที่ระบุจากไดเรกทอรี่ที่เก็บเฮด
เดอร์ไฟลโ์ ดยเฉพาะ (สาหรบั โปรแกรม Turbo C++ คือไดเรกทอรีช่ ่อื include)
แบบท่ี 2 #include “header file”
เช่น #include “stdio.h” โดยคอมไพเลอร์จะค้นหาเฮดเดอร์ไฟล์ท่ีระบุจากไดเรกทอรี่เดียวกันกับ
source code น้นั ถ้าไม่พบจะคน้ หาจากไดเรกทอรที่ ี่เกบ็ เฮดเดอรไ์ ฟลโ์ ดยเฉพาะ
Header File คอื อะไร
เป็นไฟล์ส่วนหัวท่ีมีการประกาศรายละเอียดของคาสั่งในภาษา C หลายคาสั่งเอาไว้ให้ผู้เขียนโปรแกรม
เรียกใช้ได้ header file จะมีนามสกุล .h เช่น stdio.h เป็นต้น แต่ละไฟล์จะเก็บการประกาศของคาสั่งสาหรับใช้
งานดา้ นต่างๆ ไม่เหมือนกัน การ include ไฟล์ .h ให้ประกาศไว้ท่ีด้านบนของโปรแกรมและเราสามารถ include
ไฟล์ .h เขา้ มาหลายไฟล์ในโปรแกรมเดียวกนั ไดเ้ ช่น
#include<stdio.h>
#include<conio.h>
void main()
{
......
}
ระบบอิเล็กอทัตรอโนนมิกสัต์ ิ 10
Header File ที่สาคัญ
stdio.h กลมุ่ ฟงั กช์ ันทใี่ ช้งานด้าน input/output ทั่วไปและชดุ คาส่ังจดั การไฟล์
conio.h กลุม่ ฟงั ก์ชันท่ใี ช้ควบคุมการแสดงผล, รับคา่ จากคีย์บอรด์
string.h กลุ่มฟงั กช์ ันท่ใี ช้จัดการข้อความเช่น รวมข้อความ, ค้นหาอักขระ
math.h กลุม่ ฟงั กช์ นั ดา้ นการคานวณทางคณิตศาสตร์เช่น sin, cos, tan, log เป็นตน้
ไฟล์ .h เหล่าน้ีจะถูกติดตั้งมาพร้อมกับ Turbo C++ โดยติดตั้งพร้อมกับ Library ของภาษา C ด้วย
โดยเก็บอยู่ในโฟลเดอร์ include และ lib ไฟล์ต่างๆ ที่อยู่ในโฟลเดอร์ทั้งสองมีความสาคัญมากในการคอมไพล์
โปรแกรม
• ส่วนของฟงั ก์ชนั หลกั
ฟังก์ชันหลักของภาษาซีคือ main() โดยขอบเขตของฟังก์ชันจะถูกกาหนดด้วยเครื่องหมาย { และ }
กล่าวคอื การทางานของฟังกช์ นั จะเริ่มต้นท่เี คร่ืองหมาย { และสิ้นสดุ ที่เคร่อื งหมาย }
ฟงั ก์ชนั main() อาจเขยี นในรปู ของ void main(void) ก็ได้ซงึ่ มีความหมายเหมือนกัน
ไม่คืนค่าใดๆกลับออกไปจากฟังก์ช่ัน
Void main(void)
ไม่รบั คา่ ใดๆ เข้ามาในฟังก์ชัน่
ฟังก์ชัน main() ทาหน้าที่รับค่ามาเก็บไว้ในตัวแปร a และตัวแปร b แล้วส่งค่าของตัวแปรทั้งสองไปยัง
ฟังก์ชัน sum() เพ่ือคานวณหาผลรวมเมื่อคานวณผลรวมแล้วจะส่งค่าของผลรวมกลับไปยังฟังก์ชัน main() จากนั้น
ฟงั กช์ ัน main() จะแสดงคา่ ของผลรวม
#include<stdio.h> //คาส่ังตวั ประมวลผลกอ่ น
int a, b, c; //คาส่งั ประกาศครอบคลมุ
int sum(int x, int y); //คาส่ังแบบฟังกช์ นั
void main() //ฟังก์ชัน main()
{ //เริ่มต้นฟังกช์ นั main()
scanf(“%d”, &a); //คาสั่งรบั ค่าตัวแปร
scanf(“%d”, &b); //คาสัง่ รบั ค่าตวั แปร
c = sum(a, b); //เรียกฟงั กช์ นั sum()
printf(“\n%d + %d = %d”,a, b, c); //แสดงผล
} //จบฟงั ก์ชันmain()
int sum (int x, int y) //ฟงั กช์ ัน sum()
{ //เรมิ่ ต้นฟังก์ชันsum()
return (x + y); //คาสง่ั รวมค่าและสง่ ค่ากลับ
} //จบฟังก์ชนั sum()
11 อระตั บโบนอมิเลตั ก็ ิ ทรอนกิ ส์
• สว่ นรายละเอียดของโปรแกรม
เป็นส่วนของการเขียนคาสั่งเพอื่ ใหโ้ ปรแกรมทางานตามที่ออกแบบไว้
ตวั อย่าง #include <stdio.h> ส่วนหวั โปรแกรม
void main(void) ฟงั ก์ชนั หลัก
{ จุดเรม่ิ ตน้ ของฟงั กช์ ัน
printf (“hello world”); รายละเอยี ดหรือคาส่งั
} จุดส้ินสดุ ของฟงั กช์ นั
ตัวแปร (variables)
คอมพิวเตอรม์ ีสว่ นประกอบท่ีสาคัญส่วนหนึ่งคือหน่วยความจาซ่ึงเปรียบได้กับสมองของมนุษย์ทาหน้าที่เก็บ
ข้อมูลในขณะท่ีประมวลผลในการประมวลผลแต่ละคร้ังมักต้องใช้ข้อมูลจานวนมากซึ่งจาเป็นจะต้องเก็บไว้ใน
หน่วยความจาเป็นเก็บแล้วจะต้องทราบตาแหน่งท่ีนาข้อมูลเข้าไปเก็บไว้ภายในของหน่วยความจาด้วยเพ่ือให้
สามารถนาข้อมูลเหล่านัน้ กลับมาประมวลผลไดด้ งั นนั้ ตวั แปรจงึ มีหนา้ ที่สาคัญที่ช่วยในการเก็บข้อมูลแต่ละประเภท
ทีผ่ ใู้ ช้ป้อนเข้าสู่โปรแกรม
• ชนดิ ขอ้ มูล (data types)
ขอ้ มูลท่ีใชใ้ นโปรแกรมมีหลายชนิดซ่ึงนักเขียนโปรแกรมต้องเลือกใช้ตามความเหมาะสมกับการใช้งานข้อมูล
มีขนาดที่แตกต่างกันไปตามชนิดข้อมูลนอกจากน้ีแล้วชนิดข้อมูลยังอาจมีขนาดท่ีแตกต่างกันโดยข้ึนกับเครื่อง
คอมพวิ เตอรแ์ ละตัวแปลโปรแกรมทใ่ี ชใ้ นการประมวลผลแต่โดยทวั่ ไปแล้วในไมโครคอมพวิ เตอรช์ นิดข้อมูล
ภาพที่ 1.12 ตารางชนดิ ขอ้ มูล [3]
ระบบอเิ ล็กอทตั รอโนนมิกสตั ์ ิ 12
มีการใชใ้ นโปรแกรมและขนาดดงั นี้
• กฎการตั้งช่ือตัวแปร
การต้ังช่ือตัวแปรมีขอ้ กาหนดดงั นี้
- ประกอบด้วย a ถงึ z, o ถึง 9 และ _ เท่านัน้
- อกั ขระตัวแรกต้องเปน็ a ถงึ z และ _
- หา้ มใช้ช่ือเฉพาะ
- ตวั พมิ พใ์ หญ่ตวั พิมพ์เลก็ มีความหมายท่แี ตกต่างกนั
- มีความยาวไดส้ งู สุด 31 ตัวอักษร
• การประกาศตัวแปร
การประกาศตวั แปรทาไดโ้ ดยเขียนข้อความสัง่ ขน้ึ ต้นดว้ ยชนิดข้อมูลตามด้วยชอ่ื ตวั แปรและจบ
ข้อความส่ังประกาศตัวแปรดว้ ยเคร่ืองหมายอฒั ภาค (;) ดังนี้
ชนดิ ขอ้ มลู ชอ่ื ตัวแปร;
ถ้าต้องการประกาศตัวแปรชนิดเดียวกันหลายตัวต้องคั่นระหว่างตัวแปรด้วยเครื่องหมายจุลภาค
(,) และจบด้วยเคร่ืองหมายอัฒภาค (;) ดังน้ี
ชนิดข้อมลู ชอ่ื ตวั แปร1, ช่อื ตัวแปร2; 46 เช่น
int count; //ประกาศตวั แปรช่อื count ใช้เก็บขอ้ มลู ชนดิ integer
int m, n; //ประกาศตวั แปรชอ่ื m และ n ใช้เกบ็ ข้อมูลชนิด integer
intnum = 10; //ประกาศตัวแปรช่อื numและเก็บคา่ 10 ไว้ในตวั แปรดังกล่าว
charstr = ‘a’; //ประกาศตวั แปรช่อื strและเกบ็ ค่าอกั ขระ a ไวใ้ นตัวแปรดังกล่าว
การแสดงผลและการรบั คา่
• ฟงั ก์ช่นั printf()
ฟังก์ชัน่ printf() เปน็ ฟังก์ชันจากคลงั ท่ีมาพรอ้ มกับตัวแปลโปรแกรมภาษาซีใชส้ าหรับการ
แสดงผลมีรูปแบบดังนี้ printf(“สายอักขระควบคุม”, ตัวแปร);โดยท่ีสายอักขระควบคุมประกอบด้วย 3
สว่ นคอื
- ตวั อกั ขระทีจ่ ะแสดง
- รปู แบบการแสดงผลขนึ้ ตน้ ด้วยเครือ่ งหมายเปอร์เซน็ ต์ (%)
- ลาดบั หลกี (escape sequence)
ตัวแปรคอื ช่อื ของตวั แปรท่จี ะแสดงผล
รปู แบบการแสดงผล (format specifiers)
การกาหนดรปู แบบการแสดงผล
- ข้ึนต้นด้วยเครอ่ื งหมายเปอร์เซน็ (%)
- ตามดว้ ยอกั ขระ 1 ตวั หรือหลายตวั โดยท่อี ักขระนัน้ มีความหมายดงั น้ี
13 อระตั บโบนอมิเลัตก็ ิ ทรอนิกส์
ภาพที่ 1.13 ตารางการแสดงผลและการรบั คา่ [3]
ลาดบั หลีก (escape sequence)
ในการแสดงผลบางสง่ิ บางอย่างท่ีจะแสดงอาจไม่ใช่ตัวอักษรจึงไม่สามารถท่ีจะเขียนสิ่งที่จะ แสดงไว้ใน
โปรแกรมได้เช่นต้องการเขียนโปรแกรมให้ส่งเสียงหรือต้องการให้เล่ือนขึ้นบรรทัดใหม่ก่อน47 แสดงข้อความ
ดังนั้นในการเขียนโปรแกรมเพื่อแสดงผลส่ิงที่ไม่ใช่ตัวอักขระปกติจะต้องใช้ลาดับหลีกเพ่ือ ช่วยในการกาหนด
อักขระพเิ ศษหรือสง่ิ ทไ่ี ม่ใช่อกั ขระที่ต้องการใหโ้ ปรแกรมแสดง
ลาดับหลีกจะเขียนขึ้นต้นด้วยเคร่ืองหมาย \ (back slash) แล้วตามด้วยอักขระในการทางาน
เครื่องหมายทับกลับหลังจะบอกใหเ้ คร่ืองคอมพิวเตอร์ทราบว่าให้หลีกเล่ียงการตีความอักขระที่ตามหลัง มาน้ีใน
ลักษณะปกตเิ พราะอกั ขระเหลา่ น้ีจะมีความหมายพเิ ศษแตกตา่ งออกไป
ภาพท่ี 1.14 ตารางลาดบั หลกี [3]
ระบบอเิ ล็กอทตั รอโนนมกิ สัต์ ิ 14
• ฟงั ก์ชันscanf()
ฟงั ชันscanf() เป็นฟังก์ชันท่ีใช้ในการรับขอ้ มลู จากแปน้ พมิ พโ์ ดยจะบอกเลขที่อยขู่ องตวั แปรใน
หนว่ ยความจาแล้วจงึ นาคา่ ท่ีรบั มาเก็บไวต้ ามทอ่ี ยูน่ ัน้ โดยมีรูปแบบดังนี้
scanf(“%รูปแบบ”, &ตัวแปร);
โดยที่&ตวั แปรหมายถงึ เลขทอ่ี ยู่ (address) ของตัวแปรทจ่ี ะรบั คา่ มาเก็บในหน่วยความจา
การคานวณทางคณติ ศาสตร์
ในการเขียนโปรแกรมเพื่อทาการคานวณทางคณิตศาสตร์จะต้องใช้ตัวดาเนินการต่างๆซ่ึงมีวิธีการใช้งานและ
การทางานดังนี้
ภาพท่ี 1.15 ตารางการคานวณทางคณิตศาสตร์ [3]
15 รอะัตบโบนอมิเลัตก็ ิ ทรอนกิ ส์
ตวั ดาเนนิ การเอกภาค (unary operator)
ตัวดาเนินการเอกภาคคือการใช้ตัวดาเนินการกับตัวแปรตัวเดียวในท่ีนี้จะแสดงการใช้ตัวดาเนินการ 2 ตัวกับตัว
แปรตวั เดยี วซึง่ มีลกั ษณะการใช้ 2 แบบคือ
ภาพที่ 1.16 ตารางตัวดาเนินการเอกภาค [3]
ตวั ดาเนินการประกอบ (compound operator)
ตัวดาเนินการประกอบเป็นการใช้ตัวดาเนินการหน่ึงตัวร่วมกับเครื่องหมายเท่ากับการใช้ตัว ดาเนินการ
ประกอบจะช่วยให้เขียนขอ้ ความส่งั ได้สนั้ และเรว็ ขึ้น
ภาพที่ 1.17 ตารางตัวดาเนนิ การประกอบ [3]
ระบบอเิ ล็กอทตั รอโนนมกิ สตั ์ ิ 16
ผังงาน (flowchart)
ผงั งานคอื แผนภาพท่มี กี ารใชส้ ัญลักษณร์ ปู ภาพและลกู ศรท่ีแสดงถึงขน้ั ตอนการทางานของโปรแกรมหรือระบบ
ทลี ะขน้ั ตอนรวมไปถึงทศิ ทางการไหลของข้อมลู ต้งั แตแ่ รกจนได้ผลลพั ธ์ตามทีต่ ้องการ
ประโยชนข์ องผงั งาน
• ช่วยลาดบั ข้นั ตอนการทางานของโปรแกรมและสามารถนาไปเขยี นโปรแกรมไดโ้ ดยไมส่ ับสน
• ชว่ ยในการตรวจสอบและแก้ไขโปรแกรมไดง้ า่ ยเมื่อเกิดข้อผิดพลาด
• ช่วยใหก้ ารดดั แปลงแกไ้ ขทาได้อยา่ งสะดวกและรวดเร็ว
• ช่วยใหผ้ ้อู ืน่ สามารถศกึ ษาการทางานของโปรแกรมไดอ้ ย่างง่ายและรวดเรว็ มากขนึ้
การเขียนผังโปรแกรมจะประกอบไปด้วยการใช้สัญลักษณ์มาตรฐานต่างๆที่เรียกว่าสัญลักษณ์ ANSI
(American National Standards Institute) ในการสร้างผงั งานดังตวั อย่างที่แสดงในรปู ตอ่ ไปน้ี
ภาพที่ 1.18 ตารางผงั งาน [3]
17 อระตั บโบนอมิเลัตก็ ิ ทรอนกิ ส์
หนา้ ทแี่ ละเนอื้ หาของไฟลซ์ อรส์ โค้ดของโปรแกรม
1) หนา้ ท่ีไฟลซ์ อร์สโค้ดของโปรแกรม
คาสง่ั หรือโคด้ ในโปรแกรม ซง่ึ เขยี นด้วยภาษาคอมพิวเตอร์ ภาษาต่างๆ เช่น C, Java , pascal
เป็นต้น มนุษย์สามารถอ่านเข้าใจได้ ซึ่งโปรแกรมเมอร์จะต้องเขียนก่อนท่ีโปรแกรมจะถูกแปลไปเป็นคาส่ัง
ภาษาเครอ่ื ง ทค่ี อมพวิ เตอร์สามารถเขา้ ใจได้ ตรงกันขา้ มกับ object code ซ่ึงแปลไปจาก source code เพื่อให้
เคร่ืองอ่าน คนอ่านไม่ได้ มีเพียงภาษาเครื่องเท่านั้นที่คอมพิวเตอร์รู้จักและทางานตามคาสั่งได้ทันที ดังน้ัน
โปรแกรมที่เขียนข้ึนโดยใช้ภาษาอื่น ๆจนได้ source code จึงต้องแปลเป็นภาษาเคร่ืองก่อน โดยCompiler
แปลต้นฉบับ Source code ทั้งโปรแกรมให้เป็น Object Code ส่วนโปรแกรมที่เขียนข้ึนเรียกว่า Source
Program โปรแกรมท่ีแปลแลว้ เรยี กวา่ Object Program
2) การเขียนโปรแกรม (Source Code)
ใช้ editor เขียนโปรแกรมภาษาซีและทาการบันทึกไฟล์ให้มีนามสกุลเป็น .c เช่น work.c
เป็นตน้
editor คือ โปรแกรมที่ใช้สาหรับการเขียนโปรแกรม โดยตัวอย่างของ editor ท่ีนิยมนามาใช้ในการ
เขียนโปรแกรมได้แก่ Notepad,Edit ของ Dos ,TextPad และ EditPlus เป็นต้น ผู้เขียนโปรแกรมสามารถ
เลอื กใชโ้ ปรแกรมใขนั้ ตอนการเขยี นโปรแกรมหรือพฒั นาโปรแกรม มีขน้ั ตอนโดยสงั เขปดังนี้
การวิเคราะห์ปญั หาและความตอ้ งการ (Problem Analysis and Requirement Analysis)
การกาหนดและคุณสมบัตขิ องโปรแกรม (Specification)
การออกแบบ (Design)
การเขยี นรหัสโปรแกรม (Coding)
การคอมไพล์ (Compilation)
การทดสอบการทางานของโปรแกรม (Testing)
การจัดทาเอกสาร (Documentation)
การเช่ือมต่อ (Integration)
การบารงุ รกั ษา (Maintenance)
ระบบอิเลก็ อทัตรอโนนมิกสตั ์ ิ 18
1. การวิเคราะห์ปัญหาและความต้องการ (Problem Analysis and Requirement
Analysis)
เปน็ การแยกแยะรายละเอียดของปัญหาและความต้องการออกเป็นส่วนย่อยๆ ให้ครอบคลุมการทางาน
ของโปรแกรมท่ีต้องการเขียนทั้งหมด เพื่อให้เห็นถึงองค์ประกอบ ความสัมพันธ์ ความต้องการ และแนวทางการ
แกป้ ญั หาทถ่ี กู ตอ้ งอยา่ งครบถ้วน
2. การออกแบบ (Design)
เป็นการออกแบบวิธีการแก้ปัญหา โดยการกาหนดขั้นตอน ทิศทาง รูปแบบการทางานของโปรแกรม
ผลลัพธ์ของโปรแกรม วิธีการประมวลผลและสูตรสมการต่างๆ การนาเข้าข้อมูล การกาหนดตัวแปรให้สอดคล้อง
กับขอ้ มูล การเลอื กใชโ้ ปรแกรมภาษา ท้งั นเี้ พื่อให้การทางานของโปรแกรมเปน็ ไปอยา่ งถกู ต้อง และมีประสิทธิภาพ
มากท่ีสุด การออกแบบสามารถทาได้หลายวิธี แต่วิธีท่ีได้รับความนิยมได้แก่ การเขียนข้ันตอนวิธี (Algorithms)
การเขยี นผงั งาน (Flowcharts) และการเขยี นรหสั ลาลอง (Pseudo Code)
3. การเขียนรหัสโปรแกรม (Coding)
เป็นการเขียนรหัสโปรแกรมลงในโปรแกรมภาษาท่ีเลือกไว้ ตามวิธีการท่ีได้ออกแบบไว้แล้ว โดยใช้
คอมพวิ เตอร์ที่ทาการติดต้ังโปรแกรมภาษาเอาไว้พร้อมท่ีจะทาการลงรหัสโปรแกรมและทดสอบความถูกต้องของ
โปรแกรม
4. การทดสอบการทางานของโปรแกรม (Testing)
เปน็ การทดสอบผลการทางานของโปรแกรมวา่ มคี วามถูกต้องและมีประสิทธิภาพหรือไม่ การทดสอบทา
ไดโ้ ดยการป้อนคา่ ตา่ งๆ ตามทโ่ี ปรแกรมกาหนด แล้วสงั เกตผลลัพธ์ท่ีได้ หากพบว่าผลลัพธ์ไม่ถูกต้องก็ย้อนกลับไป
แก้ไขรหสั โปรแกรม หากพบว่าไม่มีประสิทธิภาพ เช่น โปรแกรมทางานช้า โปรแกรมไม่ครอบคลุมความต้องการก็
อาจย้อนกลับไปแก้ไขรหัสโปรแกรมหรือออกแบบวิธีการแก้ปัญหาใหม่ สาหรับการทดสอบนั้นจะต้องป้อนท้ัง
ข้อมูลดา้ นบวก (ขอ้ มลู ทโี่ ปรแกรมต้องการ) และข้อมูลด้านลบ (ข้อมูลทีโ่ ปรแกรมไม่ตอ้ งการ)
3) ไวยากรณภ์ าษาซี
1. ประกาศชื่อแทน เป็นการประกาศใช้ช่ืออื่นแทนค่าท่ีต้องการเพื่อให้สะดวกต่อการเขียนโปรแกรม รูปแบบ
เปน็ ดงั นี้
constant Name: ชือ่ ท่ตี อ้ งการกาหนดตง้ั
value: คา่ ทตี่ อ้ งการกาหนดให้ช่ือน้ันมีค่าเท่ากับ
19 อระตั บโบนอมเิ ลัตก็ ิ ทรอนกิ ส์
ตวั อยา่ ง
#define LED 13
หมายถงึ กาหนดใหคา้ ว่า LED มคี า่ เท่ากบั 13
2. การรวมไฟล์อ่ืนเข้ามาร่วม เป็นการประกาศไฟล์อ่ืน ๆ เข้ามารวมกับตัวโปรแกรมก่อนการ คอมไพล์
รปู แบบเปน็ ดังนี้
file: ชื่อไฟล์ที่ต้องการนาเขา้ มารวมกับโคด้ โปรแกรมทก่ี าลงั เขียนขนึ้
ตัวอย่าง
#include <SPI.h>
หมายถงึ ให้โปรแกรมคอมไพลเลอรท์ าการรวมไฟลท์ ชี่ ่อื SPI.h ก่อนทาการคอมไพล์
3. การใส่หมายเหตุลงในโค้ดโปรแกรม เป็นการใส่ข้อความใด ๆ ลงในโคด้โปรแกรมเพื่อท่ีจะอธิบาย
โปรแกรมหรือเพื่อบันทึกความจาว่าโค้ดในตาแหน่งน้ันๆ เขียนข้ึนเพื่อประสงค์สิ่งใด การใส่หมายเหตุจะต้องใส่
เคร่อื งหมายเพอ่ื ให้คอมไพลเ์ ลอร์ขา้ มการคอมไพลใ์ นส่วนนี้ รูปแบบเปน็ ดงั น้ี
4. การใส่เครื่องหมายทา้ ยฟงั ก์ชัน ภาษาซเี ป็นภาษาที่มีการใส่เคร่ืองหมายท้ายฟังก์ชันซ่ึงเป็นสิ่งท่ีแตกต่าง
และโดดเดน่ กวา่ โปรแกรมในภาษาอ่นื ๆ โดยมหี ลักการคิดดังน้ี
การเขยี นคาส่ังในภาษาชี จะต้องเขยี นให้ถูกตอ้ งตามข้อกาหนด ดังน้ี
1. คาส่งั ในภาษาชี จะตอ้ งเขยี นดว้ ยตวั อักษรเลก็ เชน่ printf);
2. ทุกคาส่งั ตอ้ งลงทา้ ยดว้ ยเครือ่ งหมายเซมิโคลอน :
3. สามารถเขียนคาสั่งภาษาชีได้อย่างอิสระ เนื่องจากภาษาซี ไม่ได้จากัดรูปแบบการเขียนคาส่ังที่ตายตัว
ดังน้ันเราอาจจะเขียนคาสั่งติดกันไปเรื่อยๆ โดยไม่เว้นบรรทัดก็ได้ แต่เพื่อให้โปรแกรมที่เราเขียนอ่านง่าย และง่าย
ต่อการแก้ไข ควรจะเขียนคาสง่ั ทลี ะบรรทัด
ระบบอิเล็กอทตั รอโนนมิกสตั ์ ิ 20
2. รวบรวมโปรแกรมยอ่ ยทกุ ส่วนเขา้ เป็นโปรแกรมระบบ
การรวบรวมและการใช้งานโปรแกรมย่อย (Sub Program) และฟังก์ชัน (Function) เพ่ือให้
ผเู้ รียนมีความรคู้ วามเข้าใจและสามารถพัฒนาขึน้ มาใช้งานเองได้
2.1 โปรแกรมยอ่ ย (Subprogram)
โปรแกรมย่อย (Subprogram) เป็นการเขียนโปรแกรมแยกออกเป็นส่วน ๆ จากโปรแกรมหลัก เน่ืองจาก ใน
ระบบงานท่ใี หญ่หรอื โปรแกรมทม่ี คี วามสลับซบั ซ้อน การเขียนโปรแกรมใหส้ มบูรณ์ภายใน โปรแกรมเดียวจะไม่เป็น
ผลดีต่อโปรแกรมเอง เน่ืองจากเมื่อเวลาผ่านไปต้องการแก้ไขโปรแกรม จะมีความยุ่งยากเกิดขึ้น ดังน้ันจึงมีการ
พัฒนาโปรแกรมแล้วทาการแบ่งโปรแกรมการทางานออกเป็นส่วน ๆ หรือแบ่ง ออกเป็นโปรแกรมย่อย ๆ จะเกิด
ผลดีมากกวา่
2.1.1 การสรา้ งโปรแกรมยอ่ ย
การสร้างโปรแกรมย่อย สามารถทาได้โดยมีการประกาศคีย์เวิร์ด Sub และจบด้วย End Sub เพื่อบอก
ขอบเขตของโปรแกรมยอ่ ยนัน้ ภายใน Sub จะเป็นคาส่ัง (Code) การทางานของโปรแกรมตามที่ ผู้เขียนโปรแกรม
ตอ้ งการ
ภาพท่ี 2.1 การสร้างโปรแกรมยอ่ ย [4]
21 รอะตั บโบนอมิเลตั ็กิ ทรอนิกส์
จากโครงสร้างโปรแกรมย่อยจะพบว่าหลังช่ือโปรแกรมย่อยจะมีเครื่องหมายวงเล็บ ซึ่งภายในวงเล็บ
จะมีพารามิเตอร์ประกาศไว้ (Parameter) ซึ่งโปรแกรมย่อยจะนาพารามิเตอร์น้ีไปทาการประมวลผล ภายใน
โปรแกรมยอ่ ยตอ่ ไป แตถ่ ้าโปรแกรมยอ่ ยใดไม่จาเป็นต้องมีการรับค่าเพ่ือนามาใช้ประมวลผลพารามิเตอร์นี้อาจไม่
จาเปน็ ต้องประกาศไวก้ ไ็ ด้
2.1.2 ตัวอยา่ งการเขยี นโปรแกรมยอ่ ย
ตัวอย่างต่อไปนี้เป็นตัวอย่างการเขียนโปรแกรมย่อย โดยเป็นการเขียนโปรแกรมย่อยเพ่ือทาการ
คานวณหาพื้นท่ีสามเหล่ียมมุมฉาก (0.5 x ฐาน x สูง) โดยโปรแกรมย่อยนี้จะกาหนดชื่อว่า TriangleArea และมี
การรบั ค่าเขา้ มาประมวลผล 2 ค่า คอื ค่าความกวา้ งของฐาน (Base) และคา่ ความสูงของสามเหลี่ยม (Height) ซ่ึง
เมอื่ ทาการประมวลผลแล้ว จะมีหนา้ ตา่ งแจง้ ผลลัพธก์ ารคานวณแสดงขึ้นมา โปรแกรมยอ่ ยดังกล่าว สามารถเขียน
ได้ ดงั นี้
ภาพที่ 2.2 การใช้งานโปรแกรมยอ่ ย [4]
2.1.3 การใช้งานโปรแกรมยอ่ ย
โปรแกรมย่อยหากมีการสร้างขึ้นไว้แล้ว แต่ไม่มีการเรียกเพ่ือใช้งาน โปรแกรมย่อยน้ันจะไม่มี การ
ทางานเกดิ ข้ึน เนอื่ งจากโปรแกรมย่อยเป็นโปรแกรมท่พี ฒั นาหรือสรา้ งขนึ้ เพอื่ นาไปให้กบั โปรแกรมหลกั
สาหรับการเรียกใช้งานโปรแกรมย่อยที่สร้างขึ้น สามารถเรียกใช้ได้โดยการเรียกผ่านช่ือ โปรแกรม
ย่อยแล้วตามด้วยเครื่องหมายวงเล็บ เช่น MySub() และหากโปรแกรมย่อยน้ัน มีการรับค่าเข้ามา ประมูลผล
ภายใน กใ็ ห้ทาการส่งคา่ เขา้ มาโดยผา่ นวงเล็บ เช่น MySub(“ข้อความ”) เป็นต้น ดูตัวอย่างการ เรียกใช้โปรแกรม
ย่อย
ระบบอเิ ล็กอทัตรอโนนมิกสตั ์ ิ 22
สังเกตหมายเลขบรรทัดที่ 4 ซึ่งเป็นการเรียกใช้งานโปรแกรมย่อยท่ีชื่อว่า angleArea ท่ีได้สร้างไว้แล้ว
โดยมีการส่งค่าพารามิเตอร์มาให้แก่โปรแกรมย่อยดังกล่าว 2 ค่า คือ เลข 3และ 2 TriangleArea (3, 2) การส่ง
คา่ พารามเิ ตอร์ หากมีการส่งคา่ มากกวา่ 1 ค่าให้คนั คา่ ขอ้ มูลด้วย เคร่อื งหมาย comma (,)
ภาพที่ 2.3 การใชง้ านโปรแกรมยอ่ ย [4]
2.1.4 การตง้ั ช่อื โปรแกรมย่อยและฟงั ก์ชัน
การพัฒนาหรือการเขียน โค้ดโปรแกรมสาหรับโปรแกรมย่อยหรือฟังก์ชัน จาเป็นต้องมีการตั้งช่ือ
โปรแกรมยอ่ ยหรือฟงั กช์ นั นั้น ๆ ซึง่ การตง้ั ชื่อดังกล่าว Visual Basic จะมีข้อกาหนดในการตงั้ ช่ือ ดังนี้
1. ชอ่ื โปรแกรมย่อยหรอื ช่อื ฟงั ก์ชนั ควรเป็นชื่อทสี่ ื่อความหมายถึงการใชง้ าน
2. ช่อื โปรแกรมย่อยหรอื ช่ือฟังกช์ ันไมข่ ้นึ ต้นด้วยตัวเลข
3. ช่ือโปรแกรมย่อยหรือชื่อฟังก์ชนั ไมม่ กี ารเว้นวรรค
4. ชื่อโปรแกรมย่อยหรือช่ือฟังก์ชันไม่ใช้อักษรพิเศษใด ๆ ยกเว้นเคร่ืองหมาย Under Score (-) 5.
ชอ่ื โปรแกรมย่อยหรอื ชือ่ ฟงั ก์ชันไม่ตั้งช่ือเป็นภาษาไทย
23 รอะัตบโบนอมเิ ลัตก็ ิ ทรอนกิ ส์
ภาพที่ 2.4 ตวั อย่างการต้ังชอ่ื โปรแกรมยอ่ ยและฟงั กช์ ัน [4]
2.2 การเลอื กวธิ ีการกาหนดเงื่อนไขในการคอมไพล์และลิงคซ์ อร์สโคด้ ที่เหมาะสมกบั การทางาน
2.2.1 วธิ กี ารกาหนดเงอ่ื นไขในการคอมไพลแ์ ละลิงค์ซอรส์ โค้ด
การสร้างโปรแกรมท่สี ามารถใช้งานได้ขึน้ มาโปรแกรมหน่งึ ในภาษาซีมีข้ันตอนดงั น้ี
1. สร้างตัวโปรแกรมท่เี ป็นตัวอกั ษรหรอื เรยี กว่า ซอร์สไฟล์ (Source file) โดยมีนามสกุลเป็น .c
หรือ .cpp ขึ้นมาก่อน โดยใช้โปรแกรมท่ีสามารถเขียนไฟล์ที่เก็บอักขระ (Editor) ใด ๆ ก็ได้ อักษรหรืออักขระใด
ๆ นั้น จะตอ้ งอยใู่ นรปู แบบของการโปรแกรมภาษา (ขัน้ ตอนนค้ี อื การสร้างโปรแกรมท่ีเป็นภาษามนษุ ย์นนั่ เอง)
2. คอมไพล์เลอร์ของภาษาซี (C Compiler) จะทาการแปลงซอร์สไฟล์ จากอักขระใด ๆ ให้เป็น
รหัสท่ีเครื่องคอมพิวเตอร์สามารถเข้าใจได้เก็บไว้ในอีกไฟล์หนึ่งเรียกว่า ไฟล์วัตถุประสงค์ (Object file) ท่ีมี
นามสกลุ .obj (ขัน้ ตอนน้ีเรียกว่า การคอมไพล์ เป็นการแปลงภาษามนุษย์เป็นภาษาเครื่องน่นั เอง)
3. ตัวเชื่อม (Linker) จะทาการตรวจสอบว่าในโปรแกรมที่เขียนข้ึนน้ัน มีการเรียกใช้งานฟังก์ชัน
มาตรฐานใด จากห้องสมุดของภาษาซี (C Library) บ้างหรือไม่ ถ้ามี ตัวเชื่อมจะทาการรวมเอาฟังก์ชันเหล่านั้น
เข้ากับไฟล์วัตถุประสงค์ แล้วจะได้ไฟล์ที่สามารถทางานได้ โดยมีนามสกุลเป็น .exe (ข้ันตอนน้ีเรียกว่า การลิงค์
เป็นการรวมฟังกช์ ันสาเรจ็ รูปเขา้ ไป แล้วสรา้ งไฟล์ทท่ี างานได้)
ภาพที่ 2.5 แสดงขน้ั ตอนการคอมไพล์และลิงค์โปรแกรมภาษาซี [4]
ระบบอิเล็กอทตั รอโนนมิกสตั ์ ิ 24
3. ปฏิบตั กิ ารใช้เครอื่ งมอื ในการสรา้ งซอฟต์แวรแ์ ละติดตั้งลงบอร์ด
เมอ่ื การเขียนโปรแกรมเป็นศาสตร์วิชาแขนงหนึ่ง ดังน้ัน จึงมีวิชาท่ีว่าด้วยหลักการเขียนโปรแกรมขึ้นมา ซ่ึง
หลักการดังกล่าว ทาให้ผู้เร่ิมต้นศึกษาได้เข้าใจว่า กว่าจะได้โปรแกรมข้ึนมาสักโปรแกรมหน่ึง จะต้องผ่านขั้นตอน
อะไรมากอ่ น เพื่อนาไปสู่โปรแกรมที่ได้รับการพัฒนาข้ึน สามารถแก้ไขปัญหาได้จริงและบรรลุผลได้ในท่ีสุด ดังน้ัน
เมื่อต้องการฝึกฝนการเขียนโปรแกรมที่ถูกต้อง มีระบบระเบียบ จึงควรฝึกปฏิบัติตามข้ันตอนแล้วฝึกให้เป็นนิสัย
โดยขั้นตอนของ "วงจรการพัฒนาโปรแกรม“
3.1 ความหมายของวงจรการพฒั นาโปรแกรม
วงจรการพัฒนาโปรแกรม (Program Development Life Cycle : PDLC) คือ ข้ันตอนหรือกระบวนการ
ทางานทน่ี กั พัฒนาโปรแกรม (Programmer) ใช้ในการสรา้ งโปรแกรม โดยวงจรการพัฒนาโปรแกรมจะมีแนวทาง
และขั้นตอนการปฏิบัติต่างๆ ท่ีจะช่วยให้การทางานเป็นไปในทิศทางเดียวกันและง่ายต่อการพัฒนาโปรแกรม ซ่ึง
วงจรการพัฒนาโปรแกรมจะมขี ้นั ตอนทงั้ หมด 6 ขน้ั ตอนดังนี้
1.ข้ันวเิ คราะห์ความต้องการ (Requirement Analysis and Feasibility Study)
2.ขั้นวางแผนแกไ้ ขปญั หา (Algorithm Design)
3.ขั้นดาเนินการเขยี นโปรแกรม (Program Coding)
4.ข้ันทดสอบและแกไ้ ขโปรแกรม (Program Testing and Debugging)
5.ข้ันการเขยี นเอกสารประกอบ (Documentation)
6.ขั้นบารุงรักษาโปรแกรม (Program maintenance)
25 รอะตั บโบนอมิเลตั ก็ ิ ทรอนกิ ส์
Program Development Life Cycle : (PDLC)
ภาพท่ี 3.1 วงจรการพฒั นาโปรแกรม [5]
จากรูปดังกล่าว จะพบว่า การเขียนโปรแกรม มิได้ถูกจัดลาดับไว้เป็นขั้นตอนแรกเลย แต่ถูกกลับจัดใน
ลาดบั ท้ายๆ เน่อื งจาก ก่อนการเขียนโปรแกรม ส่ิงที่สาคัญท่ีสุดท่ีต้องได้รับการดาเนินการก่อนก็คือ การวิเคราะห์
ความตอ้ งการ ทาความเข้าใจกับปัญหา แล้วพัฒนาวิธีการแก้ไขปัญหา จากนั้นจึงค่อยเขียนโปรแกรม โดยข้ันตอน
การเขยี นโปรแกรม
ปฏิบัตกิ ารใช้เครอื่ งมอื ในการสร้างซอฟต์แวรแ์ ละตดิ ตั้งลงบอร์ด
การเขียนโปรแกรมสาหรับบอร์ด Arduino จะต้องเขียนโปรแกรมโดยใช้ภาษาของ Arduino
(Arduino Programming Language) ซึ่งตัวภาษาของ Arduino ก็นาเอาโอเพ่นซอร์สโปรเจ็กต์ชื่อ Wiring มา
พัฒนาต่อ ภาษา ของ Arduino แบ่งได้เป็น 2 ส่วนหลักคือโครงสร้างภาษา (Structure) ตัวแปรค่าคงท่ีและ
ฟังก์ช่ัน (Function) ภาษาของ Arduino จะอ้างอิงตามภาษา C/C++ จึงอาจกล่าวได้ว่าการเขียนโปรแกรม
สาหรบั Arduino (ซ่ึงกร็ วมถงึ บอรด์ Arduino) กค็ ือการเขยี นโปรแกรมภาษา C
ระบบอิเล็กอทตั รอโนนมิกสัต์ ิ 26
3.2 หลักการ เครอ่ื งมือ และวิธีการพัฒนาแบบข้ามแพลตฟอร์ม
3.1.1 ขั้นตอนของการพัฒนาโปรแกรม
1. ขน้ั วเิ คราะหค์ วามตอ้ งการ (Requirement Analysis and Feasibility Study)
2.ขน้ั วางแผนแกไ้ ขปญั หา (Algorithm Design)
3.ขน้ั ดาเนนิ การเขียนโปรแกรม (Program Coding)
4.ขั้นทดสอบและแกไ้ ขโปรแกรม (Program Testing and Debugging)
5.ขัน้ การเขียนเอกสารประกอบ (Documentation)
6.ข้นั บารุงรกั ษาโปรแกรม (Program maintenance)
ภาพท่ี 3.2 ขนั้ ตอนของวงจรการพัฒนาโปรแกรม [5]
27 อระตั บโบนอมเิ ลตั ็กิ ทรอนกิ ส์
ขั้นตอนของวงจรการพัฒนาโปรแกรมจะประกอบไปด้วยทั้งหมด 6 ขน้ั ตอน ดังน้ี
1. ข้นั วิเคราะหค์ วามตอ้ งการ (Requirement Analysis and Feasibility Study)
ข้ันตอนนี้เป็นข้ันตอนแรกสุดท่ีนักเขียนโปรแกรม จะต้องทาก่อน ลงมือเขียนโปรแกรม เพื่อทาความเข้าใจกับ
ปญั หาทเ่ี กดิ ขึน้ และคน้ หา จดุ มุ่งหมาย หรอื สิง่ ท่ีตอ้ งการ ขั้นตอนนถี้ ือว่าเป็นขั้นตอนที่สาคัญที่สุด ก่อนถึงขั้นตอน
การวางแผนแก้ไขปัญหา และดาเนินการเขียนโปรแกรม โดยในขั้นวิเคราะห์ความต้องการจะใช้เทคนิค "การ
วิเคราะหง์ าน" มาตรวจสอบและวิเคราะหค์ วามตอ้ งการ ดงั น้ี
ภาพที่ 3.3 ขน้ั วเิ คราะห์ความต้องการ [5]
2. ขัน้ วางแผนแกไ้ ขปญั หา หรือการออกแบบโปรแกรม (Algorithm Design)
ข้ันตอนการวางแผนแก้ไขปัญหา เป็นขั้นที่มีการใช้เคร่ืองมือมา ช่วยในการแก้ไขปัญหา จะทาให้ขั้นตอนการ
เขียนโปรแกรมมีความผิดพลาด น้อยลง ซ่ึงเคร่ืองมือท่ีใช้ในการตรวจสอบการทางานของโปรแกรม นั้นจะ ทาให้
ทราบข้นั ตอน การทางานของโปรแกรมไดอ้ ย่างรวดเร็ว ถา้ เราจะเปรยี บเทยี บการเขยี นโปรแกรมเป็นการสร้างบ้าน
แล้ว ข้ันตอนการวางแผนแก้ไขปัญหานี้ เป็นเหมือนการออกแบบแปลนบ้าน ลงใน กระดาษ เพ่ือจะได้นาไปสร้าง
บ้าน ในลาดับไป ซึ่งข้ันตอนการวางแผนแก้ไขปัญหาน้ี ผู้ออกแบบการแก้ไขปัญหา สามารถนาเคร่ืองมือมาช่วยใน
การแก้ไขปญั หาได้ โดยมอี ยหู่ ลายตวั ตามความถนัด หรือความชอบ ซงึ่ เคร่ืองมอื เหลา่ นี้ได้แก่
ระบบอิเลก็ อทตั รอโนนมกิ สัต์ ิ 28
2.1 อัลกอริทึม (Algorithm) คือรูปแบบของการกาหนดการทางานอย่างเป็นข้ันตอน ซึ่งผ่านการ
วิเคราะห์และแยกแยะ เพื่อการแก้ปัญหาต่าง ๆ ตามลาดับขั้น อาจเลือกใช้ภาษาไทยหรือภาษาอังกฤษตามความ
ถนัด เพ่อื นาเสนอขัน้ ตอนของกิจกรรมกไ็ ด้
2.2 ผังงาน (Flowchart) คือแผนภาพที่ใช้แสดงลาดับขั้นตอนการทางานของโปรแกรม ซ่ึงจะใช้ภาพ
สัญลักษณ์ส่ือความหมาย แต่ละขั้นตอนของการทางาน และจะใช้ลูกศรสื่อถึงทิศทางการเดินทางของลาดับการ
ทางาน ซึ่งจะทาใหท้ ราบขนั้ ตอนและลาดบั การทางานของโปรแกรมได้อยา่ งถูกต้อง
2.3 รหัสจาลอง หรือรหัสเทียม (Pseudo-code) คือ การเขียนโปรแกรมในรูปแบบภาษาอังกฤษที่มี
ขั้นตอนและรูปแบบแนน่ อนกะทัดรัด และมองดูคล้ายภาษาระดับสงู ทีใ่ ชก้ บั เคร่ืองคอมพิวเตอร์ ซึ่งรหัสเทียมนั้นจะ
ไม่เจาะจงสาหรับภาษาใดภาษาหน่ึงโครงสรา้ งของรหสั เทยี ม จงึ มสี ว่ นทีค่ ลา้ ยคลึงกนั กับการเขียนโปรแกรมมาก
3. ข้นั ดาเนินการเขยี นโปรแกรม (Program Coding)
ข้ันตอนนี้เป็นการเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ภาษาใดภาษาหน่ึงขึ้นมา โดยเลือกใช้ภาษาที่
เหมาะสมกับลักษณะ ประเภทของงาน และความถนัดของผู้เขียน เช่นถ้าเป็นงานทางด้าน ธุรกิจ ก็เลือกภาษาโค
บอล ถ้าเป็นการพิมพร์ ายงาน ก็เลือกภาษา อารพ์ ีจี หรอื ถา้ จะเขียนโปรแกรมบนเว็บกจ็ ะใช้ภาษา ASP , PHP เป็น
ตน้
4. ข้ันทดสอบและแก้ไขโปรแกรม (Program Testing and Debugging)
ขั้นตอนน้ีเป็นการตรวจสอบจุดผิดพลาดของโปรแกรม (Bugs) ที่เขียนขึ้น และดาเนินการแก้ไข
ข้อผิดพลาดน้ัน เรียกกระบวนการนี้การ Debugs โปรแกรมที่ทางานไม่ได้ตามวัตถุประสงค์ เรียกว่าโปรแกรมมี
Error เกดิ ขนึ้ Error ของโปรแกรมมักมีมาจาก 3 สาเหตใุ หญ่ ๆ คือ
4.1 ข้อผดิ พลาดทางไวยากรณข์ องภาษา (Syntax Error)
4.2 ข้อผดิ พลาดท่เี กิดจากตรรกะโปรแกรมผิด (Logical Error)
4.3 ข้อผดิ พลาดในระหว่างการรันโปรแกรม (Run-time Error)
29
ภาพที่ 3.4 ข้ันทดสอบและแก้ไขโปรแกรม [6]
5. ขั้นการเขยี นเอกสารประกอบ (Documentation)
การทาเอกสารประกอบโปรแกรม คือ การอธิบายรายละเอียดของโปรแกรมว่า จุดประสงค์ของโปรแกรมคือ
อะไร สามารถทางานอะไรได้บ้าง และมีข้ันตอนการทางานของโปรแกรมเป็นอย่างไร ฯลฯ เครื่องมือที่ช่วยในการ
ออกแบบโปรแกรมเช่น ผังงาน หรือ รหัสจาลอง ก็สามารถนามาประกอบกันเป็นเอกสารประกอบโปรแกรมได้ ซึ่ง
เอกสารประกอบโปรแกรมโดยทว่ั ไปจะมีอยู่ ด้วยกัน 2 แบบคือ
5.1 เอกสารประกอบโปรแกรมสาหรบั ผ้ใู ช้ (User Documentation)
เหมาะสาหรบั ผู้ใช้ที่ไม่ต้องเกย่ี วข้องกับการพัฒนาโปรแกรม แต่เป็นผู้ท่ีใช้งานโปรแกรมอย่างเดียว จะเน้นการ
อธิบายเก่ยี วกบั การใชง้ านโปรแกรม เป็นหลัก ตวั อย่างเช่น
1.โปรแกรมนีท้ าอะไร ใช้งานในด้านไหน
2.ขอ้ มลู เข้ามลี กั ษณะอยา่ งไร
3.ข้อมลู ออกหรือผลลพั ธม์ ลี กั ษณะอย่างไร
4.การเรยี กใชโ้ ปรแกรมทาอย่างไร
5.คาส่งั หรือขอ้ มูล ทีจ่ าเป็นให้โปรแกรมเร่มิ ทางาน มีอะไรบา้ ง
6.อธบิ ายเก่ยี วกับประสทิ ธภิ าพ และความสามารถของโปรแกรม
ระบบอิเล็กอทตั รอโนนมกิ สตั ์ ิ 30
5.2 เอกสารประกอบโปรแกรมสาหรับผู้เขียนโปรแกรม (Technical Documentation) จะ
เหมาะสาหรับผู้ใช้ที่ไม่ต้องเกี่ยวข้องกับการพัฒนาโปรแกรม แต่เป็นผู้ที่ใช้งานโปรแกรมอย่างเดียว จะเน้นการ
อธบิ ายเกย่ี วกบั การใช้งานโปรแกรมเป็นหลัก ตัวอย่างเช่น
1.ส่วนที่เป็นคาอธิบายหรือหมายเหตุในโปรแกรมหรือเรียกอีกอย่างหน่ึงว่า คอมเมนท์ (Comment) ซ่ึง
ส่วนใหญ่มักจะเขียนแทรกอยู่ในโปรแกรม อธิบายการทางานของโปรแกรมเป็นส่วน ๆ
2.ส่วนอธิบายด้านเทคนิค ซ่ึงส่วนน้ีมักจะทาเป็นเอกสารแยกต่างหากจาก โปรแกรม จะอธิบายใน
รายละเอยี ดท่มี ากขน้ึ เช่น ช่อื โปรแกรมยอ่ ยต่าง ๆ อะไรบ้าง แตล่ ะโปรแกรมย่อยทาหน้าที่อะไร และคาอธิบายย่อ
ๆ เก่ยี วกับ วัตถุประสงค์ของโปรแกรม เป็นตน้
6. ขั้นบารุงรกั ษาโปรแกรม (Program Maintenance)
ขั้นตอนน้ีคือขั้นตอนสุดท้ายเมื่อโปรแกรมผ่านการตรวจสอบตามข้ันตอนเรียบร้อยแล้ว และถูกนามาให้
ผใู้ ชไ้ ดใ้ ชง้ าน ในช่วงแรกผู้ใช้อาจจะยังไม่คุ้นเคยก็อาจทาให้เกิดปัญหาขึ้นมาบ้าง ดังนั้นจึงต้องมีผู้คอยควบคุมดูแล
และคอยตรวจสอบการทางาน การบารุงรักษาโปรแกรมจึงเป็นข้ันตอนที่ผู้เขียนโปรแกรม ต้องคอยเฝ้าดู และหา
ขอ้ ผิดพลาด ของโปรแกรมในระหวา่ งท่ีผูใ้ ช้ใชง้ านโปรแกรมและปรบั ปรุงแกไ้ ขโปรแกรมเม่อื เกิดข้อผิดพลาดข้ึน
หรือในการใช้งานโปรแกรมไปนาน ๆ ผู้ใช้อาจต้องการ เปลี่ยนแปลงการทางานของระบบเดิมเพ่ือให้
เหมาะสมกับเหตุการณ์ เช่น ต้องการเปล่ียนแปลงหน้าตาของรายงาน มีการเพิ่มเติมข้อมูล หรือลบข้อมูลเดิม
นักเขียนโปรแกรมกจ็ ะต้องคอยปรับปรงุ แก้ไขโปรแกรมตามความต้องการของผู้ใชท้ ี่เปลีย่ นแปลงไปนั้น
3.1.2 เคร่อื งมือ และสว่ นประกอบ แถบเครอ่ื งมือของโปรแกรม Arduino (IDE)
1. ส่วนประกอบของโปรแกรม Arduino (IDE)
ภาพท่ี 3.5 ส่วนประกอบของโปรแกรม Arduino (IDE) [6]
31 รอะตั บโบนอมเิ ลัต็กิ ทรอนิกส์
2. แถบเครอื่ งมอื เมนู มีแถบรายการของคาสั่งตา่ ง ๆ ตอ่ ไปนี้
แถบเครื่องมอื ไฟล์ (File) มีเครื่องมอื ช่วยในคาส่ังต่าง ๆ ซง่ึ แต่ละปุ่มมีหนา้ ที่การใช้งานดงั นี้
1. New : เป็นแถบสรา้ งไฟล์ใหม่เพ่อื เร่มิ การเขียนโปรแกรมใหม่
2. Open : เป็นแถบเปิดไฟลง์ านทเี่ ก็บในโฟลเดอร์
3. Sketchbook : เป็นแถบเปดิ ไฟล์งานลา่ สุด
4. Example : เป็นแถบในการเลือกเปิดไฟล์ตวั อยา่ งที่อยใู่ นโปรแกรม
5. Close : เป็นแถบปดิ ไฟลง์ านล่าสดุ
6. Save : เป็นแถบบนั ทึกไฟลง์ านท่สี รา้ งขนึ้ ปัจจบุ ัน
7. Save As : เปน็ แถบบันทึกไฟลง์ านโดยเปล่ียนช่อื ไฟล์
8. Page Setup : เป็นแถบตงั้ ค่าหนา้ กระดาษของไฟล์งานปัจจุบัน
9. Print : เปน็ แถบสง่ั พมิ พง์ านออกทางเครื่องพิมพ์
10. Preference : เปน็ แถบกาหนดค่าการทางานของโปรแกรม
11. Quit : เป็นแถบใชอ้ อกจากโปรแกรม
ภาพท่ี 3.6 แถบเครื่องมอื ไฟล์ (File) [6]
ระบบอิเลก็ อทัตรอโนนมิกสตั ์ ิ 32
3. แถบเครือ่ งมอื แกไ้ ข (Edit) มเี ครื่องมือช่วยในคาส่ังตา่ ง ๆ ซ่งึ แต่ละปุ่มมหี น้าที่การใชง้ านดงั นี้
1.Undo : เป็นแถบยอ้ นกลับไปคาสัง่ ลา่ สุด
2.Redo : เป็นแถบยอ้ นกลับคืนเมือ่ กดแถบ Undo มากเกนิ ไป
3.Cut : เป็นแถบตดั ขอ้ ความทตี่ อ้ งการคดั ลอก
4.Copy : เป็นแถบสาหรับคดั ลอกข้อความ
5.Paste : เป็นแถบสาหรบั วางขอ้ ความท่ีตัดหรือคัดลอกมา
6.Select All : เปน็ แถบเลือกข้อความท้งั หมด
7.Comment/UnComment : เป็นแถบสาหรับเติมเคร่ืองหมาย // เพื่อสร้างหมายเหตุหรือ คาอธิบาย
ลงในโปรแกรม
8.Increase Indent : เปน็ แถบสาหรับเล่อื นเคอร์เซอร์
9.Decrease Indent : เปน็ แถบสาหรับยกเลกิ การเล่อื นเคอรเ์ ซอร์
10.Find.. : เปน็ แถบค้นหา
11.Find Next : เป็นแถบค้นหาต่อไป
12.Find Previous : เปน็ แถบยอ้ นกลบั การคน้ หา
ภาพที่ 3.7 แถบเครื่องมอื แก้ไข (Edit) [6]
33 รอะตั บโบนอมเิ ลัต็กิ ทรอนกิ ส์
4. แถบเครอื่ งมือสเกตช์ (Sketch) มเี ครอ่ื งมอื ชว่ ยในคาสั่งตา่ ง ๆ ซึ่งแตล่ ะป่มุ มีหนา้ ทกี่ ารใชง้ านดังน้ี
1. Verify/Compile : เปน็ แถบสาหรับการคอมไพลโ์ ปรแกรม
2. Upload : เป็นแถบสาหรบั การอปั โหลดโปรแกรมทเ่ี ขยี นข้ึนลงบอรด์ Arduino
3. Show Sketch folder : เปน็ แถบใชใ้ นการส่งั เปิดโฟลเดอรท์ ่ีเกบ็ โปรแกรม
4. Import Library : เป็นแถบคาสั่งเรยี กใชไ้ ลบรารเี พมิ่ เตมิ
5. Add File : เปน็ แถบเพ่ิมไฟลใ์ ห้กบั สเกตซ์บ๊กุ ปจั จุบนั
ภาพท่ี 3.8 แถบเคร่ืองมือสเกตช์ (Sketch) [6]
5. แถบเครื่องมือ (Tools) มีเครื่องมือช่วยในคาสั่ง ระบบอิเล็กอทตั รอโนนมกิ สัต์ ิ 34
ต่างๆ ซง่ึ แตล่ ะปุ่มมีหน้าทก่ี ารใชง้ านดังน้ี
ภาพที่ 3.9 แถบเครอื่ งมอื (Tools) [6]
1. Auto Format : เป็นแถบจัดรูปแบบโปรแกรม
แบบอัตโนมตั ิ
2. Archive Sketch : เป็นแถบส่ังบีบอัดไฟล์
โปรแกรมท้ังโฟลเดอร์ หลักและโฟลเดอร์ย่อยของไฟล์
งาน ปัจจุบันไฟล์ท่ีสร้างใหม่ให้มีชื่อเดียวกับไฟล์งาน
ปัจจบุ ัน
3. Board:เป็นแถบสาหรับเลือกฮาร์ดแวร์ของ
บอรด์ Arduino
4. Serial Port : เป็นแถบสาหรับเลือกหมายเลข
พอรต์ ของคอมพวิ เตอร์ ท่ตี ่อกบั บอร์ด Arduino
6 แถบเคร่ืองมือตัวช่วย (Help) ถ้าต้องการความ
ช่วยเหลือหรือข้อมูลท่ีเก่ียวข้องกับ โปรแกรมให้เลือกเมนู
นี้ และเลือกแถบเมนูย่อยของโปรแกรม ทาให้โปรแกรม
เปิดไฟลเ์ ว็บเพจท่ีเกย่ี วขอ้ งกบั หัวข้อน้ันทเ่ี ลือก
ภาพที่ 3.10 แถบเครอ่ื งมอื ตัวชว่ ย (Help) [6]
35 อระตั บโบนอมเิ ลัต็กิ ทรอนิกส์
7 ปุ่ม Serial Monitor เป็นปุ่มสาหรับการ
ติดต่อส่ือสารบอร์ด Arduino กับคอมพิวเตอร์ เมื่อ
คลิกปุ่มน้ีคอมพิวเตอร์ทาการเปิดหน้าต่างใหม่ขึ้นมา
แลว้ นาค่าในการรับส่งข้อมูลมาแสดง ที่หน้าต่างท่ีเปิด
ข้ึนน้ี
ภาพที่ 3.11 หนา้ ตา่ งแสดงการติดต่อสอื่ สารบอรด์
Arduino กับคอมพิวเตอร์ [6]
3.1.3 วธิ ตี ิดตง้ั ไลบรารี (Library) ให้กับโปรแกรม Arduino IDE ทาได้ 3 วธิ ดี งั น้ี
1. ตดิ ตัง้ ผ่าน Arduino IDE โดยใช้ Library Manager
2. ติดตง้ั ผ่าน Arduino IDE โดยนาเขา้ ไฟล์ .zip
3. ตดิ ตั้งโดยนาไลบรารีไปวางไว้ในโฟลเดอร์ libraries
หมายเหตุ : วิธตี ิดต้ังแบบที่ 2 และแบบที่ 3 ต้องดาวนโ์ หลดไฟลไ์ ลบรารีมาไวใ้ นเครอ่ื งกอ่ น
ตดิ ตั้งผ่าน Arduino IDE โดยใช้ Library Manager
ข้อจากัด : ไลบรารที จี่ ะตดิ ตง้ั ดว้ ยวธิ ีนี้ จะตอ้ งมขี อ้ มูลอย่ใู นระบบ library index ของ Arduino เทา่ นนั้ ซึ่งหากไม่
มขี ้อมลู อย่ใู นระบบ จะทาใหค้ น้ หาไลบรารเี พื่อตดิ ตง้ั ไม่เจอ ***
คลิกทีเ่ มนู Sketch > Include Library > Manage Libraries… เพ่อื เปดิ Library Manager
ระบบอิเลก็ อทตั รอโนนมิกสัต์ ิ 36
ภาพท่ี 3.12 ติดต้ังไลบราร่ี [7]
รอให้ Library Manager ดาวนโ์ หลด library index จนเสรจ็ จึงจะเริม่ ใชง้ าน Library Manager ได้ (ชา้ เรว็
ข้นึ อยูก่ บั ความเร็วอินเทอร์เนต็ )
ภาพที่ 3.13 Library Manager ดาวน์โหลด [7]
37 รอะัตบโบนอมิเลตั ก็ ิ ทรอนิกส์
พิมพ์ช่ือไลบรารีที่ต้องการจะติดตั้ง เช่น พิมพ์คาว่า taskscheduler สาหรับการค้นหาไลบรารีช่ือ
TaskScheduler
เม่ือเจอไลบรารีท่ีต้องการจะติดต้ัง ให้คลิกปุ่ม Install จากน้ันรอจนกว่าไลบรารีน้ันจะถูกดาวน์โหลด และ
ติดตง้ั จนเสร็จ
ภาพท่ี 3.14 ไลบรารที ี่ตอ้ งการจะตดิ ตงั้ [7]
ถา้ ติดตงั้ เสร็จแลว้ จะข้นึ คาว่า INSTALLED ต่อท้ายชือ่ ไลบรารี (ชา้ เรว็ ขึ้นอยูก่ ับความเรว็ อนิ เทอรเ์ นต็ )
ภาพที่ 3.15 INSTALLED [7]
ระบบอิเลก็ อทตั รอโนนมกิ สัต์ ิ 38
ตดิ ตั้งผา่ น Arduino IDE โดยนาเข้าไฟล์ .zip
ดาวนโ์ หลดไลบรารีท่เี ป็นไฟล์ .zip มาไวใ้ นเคร่ือง
คอมพวิ เตอร์
ภาพที่ 3.16 นาเข้าไฟล์ .zip [7]
คลิกทีเ่ มนู Sketch > Include Library >
Add .ZIP Library…
ภาพที่ 3.17 หนา้ ต่างยอ่ ย [7]
39 รอะตั บโบนอมเิ ลตั ก็ ิ ทรอนกิ ส์
จากนั้นจะมหี น้าต่างยอ่ ยแสดงขึ้นมา ให้เราเลือกไฟล์ไลบรารี .zip ท่เี ราเพ่งิ ดาวนโ์ หลดมา จากนนั้ กดปมุ่ OK
เม่อื ติดตั้งสาเร็จจะมขี อ้ ความขึ้นมาวา่ Library added to your libraries. Check “Include library” menu
ตามรูปดา้ นล่าง
ภาพท่ี 3.18 Library added to your libraries [7]
ตดิ ตง้ั โดยนาไลบรารีไปวางไวใ้ นโฟลเดอร์ libraries
1. ดาวน์โหลดไลบรารีทีเ่ ปน็ ไฟล์ .zip มาไว้ในเคร่ืองคอมพวิ เตอร์
2. แตกไฟล์ .zip จนไดอ้ อกมาเปน็ โฟลเดอร์
3. ย้ายโฟลเดอรท์ ีเ่ พง่ิ แตกไฟล์ออกมา ไปไว้ในโฟลเดอร์ libraries
• ทีอ่ ย่ขู องโฟลเดอร์ libraries สาหรับ Linux : /home/your_user/Arduino/libraries
• ที่อยขู่ องโฟลเดอร์ Windows:C:\Users\your_user\Documents\Arduino\libraries
โดยสามารถตรวจเชค็ ตาแหนง่ ของโฟลเดอร์ทีจ่ ะนาไปวางได้โดยคลิกท่ีเมนู File > Preferences
ระบบอเิ ล็กอทตั รอโนนมิกสัต์ ิ 40
ภาพท่ี 3.19 หน้าตา่ ง Preferences [7]
เมอ่ื หนา้ ต่าง Preferences แสดงข้นึ มา
ให้ดูท่ี Sketchbook location น่ันคอื
ตาแหนง่ ของโฟลเดอรท์ เ่ี ราจะนาไลบรารี
ไปวาง
ภาพที่ 3.20 หน้าตา่ ง Preferences [7]
41 อระัตบโบนอมเิ ลัต็กิ ทรอนิกส์
วิธดี าวนโ์ หลดไลบรารจี าก GitHub
- เข้าไปท่เี ว็บไซต์ GitHub ในหน้าหลกั ของโปรเจคไลบรารีที่เราจะดาวน์โหลด เชน่ ไลบรารี TaskScheduler
เขา้ ไปที่ลิงค์ https://github.com/arkhipenko/TaskScheduler
- หากใครไม่ทราบลิงค์ก็สามารถค้นหาได้จาก Google ด้วยคาค้น “github arduino ชื่อไลบรารี” เช่น
“github arduino taskscheduler” หรือ “github arduino bounce2” เปน็ ตน้
- เมอื่ เขา้ เว็บไซต์ GitHub ในหน้าหลักของโปรเจคไลบรารไี ดแ้ ล้ว
- ใหค้ ลกิ ปุ่ม Clone or download > Download ZIP ตามรูปด้านล่าง
ภาพที่ 3.21 เวบ็ ไซต์ GitHub [7]
- เม่ือการดาวนโ์ หลดเสรจ็ ส้นิ คณุ จะไดไ้ ฟลช์ ือ่ library_name-master.zip จากน้ันคณุ สามารถนาไฟล์
.zip นไี้ ปใช้ตดิ ตั้งในขัน้ ตอนการตดิ ตั้งไลบรารีโดยนาเขา้ ไฟล์ .zip ได้เลย
- แต่ถ้าหากคณุ จะนาไปใช้ในข้ันตอนการตดิ ตัง้ โดยนาไลบรารไี ปวางไว้ในโฟลเดอร์ libraries คณุ ตอ้ งแตก
ไฟล์ .zip ก่อน
3.1.4 การใชเ้ ครือ่ งมอื Arduino ตดิ ตัง้ Library ในโปรแกรม Arduino IDE เชอ่ื มต่อกับ Sensor ตา่ งๆ
ตัวอย่างวิธีการลง Library ในโปรแกรม Arduino ถ้าเราต้องการเช่ือมต่อ sensor ต่างๆเข้ากับ Arduino
โดยทัว่ ไป จะมคี นเขยี น Library ของ Sensor ใหเ้ ราใช้กบั Arduino ได้งา่ ย
ระบบอเิ ลก็ อทัตรอโนนมกิ สตั ์ ิ 42
ภาพที่ 3.22 โคด้ ท่ีใชอ้ า่ นคา่ Sensor DS18B20 [7]
จากโค้ดตัวอย่างดา้ นบน เป็นโคด้ ทใ่ี ช้
อ่านค่า Sensor DS18B20 จะเหน็
ว่า หัวบนสดุ ของโคด้ จะมี คาสงั่
#include แปลว่าโค้ดน้ี ตอ้ งใช้
Library ด้วย ถา้ เรายังไมไ่ ดล้ ง
Library แล้วอัพโหลดโคด้ ลง
Arduino UNO R3 ทันที จะขนึ้
error ตามรปู ด้านลา่ ง
ภาพท่ี 3.23 โหลด library Sensor DS18B20 [7]
43 รอะตั บโบนอมิเลัตก็ ิ ทรอนกิ ส์
ให้โหลด library Senso Rds18b20จากลง้ิ คน์ ีล้ งในโปรแกรม Arduinolibrary/codehttp
://www.mediafire.com/download/bj2xlk73hb5nr15/Thermometer_Waterproof_DS18B20.rar
ภาพท่ี 3.24 แตกไฟล์ [7]
เมื่อโหลด Library Sensor DS18B20 มาแล้วให้แตกไฟล์ จะได้ สอง folder นี้
นา 2 folder ทแ่ี ตกไฟล์ได้ไปไวใ้ น folder libraries ของโปรแกรม Arduino ทต่ี ิดตง้ั ไว้ ตามรปู ด้านลา่ ง
ภาพที่ 3.25 แตกไฟลไ์ ด้ไปไวใ้ น folder libraries [7]
ระบบอเิ ล็กอทัตรอโนนมิกสตั ์ ิ 44
ใหป้ ิดโปรแกรม Arduino แลว้ เปิดข้นึ มาอีกครั้ง ทาการกดอพั โหลดโค้ดลง บอร์ด Arduino ถ้า
ลง Library ถูกจะไม่ข้ึน error สีส้ม จะขึ้นคาว่า Done uploading แปลว่าอัพโหลดโค้ดลงบอร์ด Arduino
สาเร็จตามรูปดา้ นล่าง
ภาพท่ี 3.26 โค้ด [7]
จะเห็นในโค้ดตัวอย่าง บางตัวแปรเรายังไม่ประกาศใช้งาน แต่โปรแกรมรู้จักตัวแปรนี้ เพราะมี
การใช้ คาส่ัง #include ดึงตัวแปรเข้ามาใช้ในโปรแกรม Arduino ถ้าเราไม่ลง Library โปรแกรมก็จะไม่รู้จัก
คาสง่ั พวกน้ีและจะขึ้น error ตอนอัพโหลด
45 รอะตั บโบนอมิเลตั ก็ ิ ทรอนิกส์
3.1.5 วิธกี ารใช้งานบอรด์ Arduino รว่ มกบั โปรแกรม Arduino ID
1. start menu เปดิ โปรแกรม Arduino IDE ข้นึ มา
การอัพโหลดโคดลง Arduino จะตอ้ งเลอื ก 2 อย่างน้ใี หถ้ กู ต้อง
1. เลือกบอร์ด
2. เลือก Port
วิธกี ารคอื ในหน้าต่างโปรแกรม
Arduino เลอื กที่เมนู Tools
-> Board
-> Arduino/Genuino Uno
ภาพท่ี 3.27 หน้าต่างโปรแกรม Arduino [7]
2. ตอ่ สาย USB กบั บอร์ด Arduino
UNO R3 เขา้ กับคอมพิวเตอร์ จากนั้น
ใหค้ ล๊ิกขาวท่ี Computer หรอื ท่เี มนู
เลอื ก Properties ไปท่ี Device
Manager เพ่อื ดูว่าบอรด์ Arduino
UNO R3 น้นั ต่ออยกู่ ับ COM Port
หมายเลขใด
ภาพท่ี 3.28 Device Manager [7]
ระบบอเิ ลก็ อทัตรอโนนมกิ สัต์ ิ 46
ภาพท่ี 3.29 เมนู Tools [7]
3. กลับมาท่ีโปรแกรม Arduino IDE ไปทเ่ี มนู Tools และทาการตั้งคา่ บอรด์ และหมายเลขพอรต์ ใหต้ รงกับทจ่ี ะ
เช่ือมตอ่ ซึ่งในตวั อย่างคือ COM4 ดังน้ี
ภาพท่ี 3.30 ตั้งคา่ บอรด์ และหมายเลขพอร์ตให้ตรงกับทจี่ ะเชื่อมต่อ [7]
47 อระัตบโบนอมิเลตั ก็ ิ ทรอนกิ ส์
4. ทดสอบอัพโหลดโคดไฟกระพริบลงบอร์ด Arduino Uno ถ้าสาเร็จท่ีบอร์ด Arduino Uno จะมีไฟกระพริบ
แสดงว่าจบขึ้นตอนการติดตงั้ โปรแกรมและอพั โหลดโคดลง Arduino นแี้ ลว้
ภาพที่ 3.31 Done compiling [7]