หนงั สืออเิ ลก็ ทรอนิกส์ e-book
อาชีพชา่ งตดิ ต้ัง
ระบบอเิ ลก็ ทรอนกิ ส์อัตโนมตั ิ
โมดลู ที่ 2 เรือ่ ง พฒั นาซอฟตแ์ วร์สาหรับระบบอิเล็กทรอนิกส์อัตโนมตั ิ
คณะครศุ าสตรอ์ ุตสาหกรรมและเทคโนโลยีมหาวิทยาลยั เทคโนโลยรี าชมงคลศรีวิชยั
ทนุ อดุ หนุนการวจิ ยั จากสานักงานคณะกรรมการกองทนุ สง่ เสริมวิทยาศาสตร์วจิ ยั และนวัตกรรม
ประจาปงี บประมาณ 2564
ระบบอิเล็กทรอนกิ ส์
อัตโนมตั ิ
บทเรียนโมดูล หลักสตู รอาชพี นักออกแบบและพัฒนาระบบอิเล็กทรอนกิ สอ์ ัตโนมตั ิ
โมดูลที่ 2 เรอ่ื ง พฒั นาซอฟตแ์ วรส์ าหรบั ระบบอเิ ล็กทรอนิกสอ์ ตั โนมตั ิ
คาแนะนาการใช้บทเรียนโมดูล
ขน้ั ตอนการใช้บทเรียนโมดูล
1. ศึกษาคาแนะนาการใชบ้ ทเรยี นและโครงสร้างบทเรยี นโมดูล
2. ทาแบบทดสอบกอ่ นเรียนเพ่ือตรวจสอบความรู้พ้นื ฐานของตนเอง
3. การศกึ ษาบทเรยี นโมดลู นกั เรยี นสามารถศึกษาเปน็ รายบุคคลหรอื รายกลุ่มยอ่ ยจานวน 3 – 5 คน
4. ศึกษารายละเอยี ดของเนอ้ื หาแตล่ ะตอน พรอ้ มท้งั ทาตามกจิ กรรมตา่ ง ๆ ท่ีกาหนดในบทเรยี น เชน่
บนั ทึกเนือ้ หาทาการทดลอง ทาแบบฝึกหัดหรอื กจิ กรรมอนื่ ๆ ตามทกี่ าหนดไว้ในโมดลู
5. ตรวจแบบฝกึ หัดหรือกิจกรรม จากแนวคาตอบท้ายโมดลู เพื่อตรวจสอบว่านักเรียนมีความเข้าใจใน
เนื้อหาน้นั ๆ หรอื ไม่ ถา้ ผดิ นักเรียนควรทาการศกึ ษาอกี คร้ังพรอ้ มทั้งปรึกษาเพื่อนในกลุ่มและซักถาม
ครผู ้สู อนใหเ้ กิดความเข้าใจก่อนทาการศึกษาตอ่ ไป
6. ทาแบบทดสอบหลงั เรยี น เพอื่ ตรวจสอบวา่ ตนเองมีความรู้ผ่านเกณฑก์ ารประเมนิ โดยมีเกณฑ์
การประเมินรอ้ ยละ 70 และ ใหผ้ ่านไปเรยี นโมดูลตอ่ ไป
7. นักเรียนท่ีไม่ผา่ นเกณฑก์ ารประเมินรอ้ ยละ 70 ให้นกั เรยี นเรยี นซอ่ มเสรมิ และใหก้ ลับไปศึกษา
เนอื้ หาในโมดลู ตามขัน้ ตอนอกี ครัง้ พรอ้ มทง้ั ปรึกษาและซักถามครจู นเกิดความเข้าในเน้ือหาแลว้ จงึ ทา
แบบทดสอบหลงั เรยี นชุดเดิมอีกครั้ง ถ้าผา่ นเกณฑ์การประเมนิ จงึ เรียนโมดลู ต่อไป
8. ขณะทากิจกรรมนกั เรียนตอ้ งมีความซื่อสตั ยต์ อ่ ตนเอง โดยต้องไม่ดแู นวทางการตอบเพราะจะไม่มี
ประโยชนใ์ ด ๆ ต่อนกั เรียน
9. การเรียนรดู้ ้วยวธิ นี ้ี นกั เรยี นจาต้องซอ่ื สัตยต์ ่อตนเองและมีความเช่ือมัน่ ในตนเองวา่ ทกุ คนมีสามารถใน
การเรียนและผา่ นเกณฑก์ ารประเมนิ ผลท่ีกาหนดไวไ้ ดห้ ากมคี วามตั้งใจจริงและมีความมุ่งมนั่
ระบบอิเลก็ ทรอนกิ ส์ สารบัญ
อตั โนมตั ิ
คาแนะนาการใช้บทเรยี นโมดูล หน้า
ขั้นตอนการใช้บทเรียนโมดลู
การเขียนโปรแกรม ควบคุมแบบแยกสว่ นเปน็ โมดลู สาหรบั ระบบอเิ ลก็ ทรอนิกส์อตั โนมตั ิ 1
จากโจทกท์ ี่กาหนด 2
โครงสรา้ ง หน้าท่ี และเนอื้ หาของไฟลซ์ อร์สโคด้ ของโปรแกรม
การรวบรวมโปรแกรมย่อยทกุ ส่วนเข้าเป็นโปรแกรมระบบ 20
การเลอื กวิธีการกาหนดเง่อื นไขในการคอมไพลแ์ ละลิงคซ์ อรส์ โค้ด 23
ทเ่ี หมาะสมกบั การทางาน
การปฏบิ ตั กิ ารใชเ้ ครอ่ื งมือในการสรา้ งซอฟต์แวร์และติดตั้งลงบอรด์ 24
หลกั การ เคร่ืองมือ และวิธีการพัฒนาแบบขา้ มแพลตฟอร์ม 26
การปรับแต่ง และแก้ไข Code Warning และ Error 51
การวิเคราะห์สาเหตุ เครอ่ื งมอื และข้อความทีร่ ายงาน 51
การแจง้ เตอื น/ความผิดพลาด
การทดสอบโปรแกรม แตล่ ะโมดูล 58
การกาหนดเง่ือนไขและดาเนินการทดสอบฟังก์ชนั เพื่อตรวจสอบ 58
รูปแบบความผดิ พลาดท่ีกาหนด
บรรณานุกรม 63
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”); รายละเอยี ดหรือคาสั่ง
} จุดส้ินสุดของฟงั ก์ชัน
1.2 ตวั แปร (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 ไว้ในตวั แปรดังกลา่ ว
1.3 การแสดงผลและการรับคา่
• ฟังก์ช่นั 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.4 การคานวณทางคณติ ศาสตร์
ในการเขียนโปรแกรมเพื่อทาการคานวณทางคณิตศาสตร์จะต้องใช้ตัวดาเนินการต่างๆซ่ึงมี
วิธกี ารใช้งานและการทางานดังน้ี
ภาพท่ี 1-15 ตารางการคานวณทางคณิตศาสตร์ [3]
15 ระบบอเิ ลก็ ทรอนิกส์
อัตโนมัติ
1.5 ตัวดาเนินการเอกภาค (unary operator)
ตัวดาเนินการเอกภาคคือการใช้ตัวดาเนินการกับตัวแปรตัวเดียวในที่นี้จะแสดงการใช้ตัว
ดาเนนิ การ 2 ตัวกบั ตัวแปรตวั เดียวซึ่งมีลักษณะการใช้ 2 แบบคือ
ภาพที่ 1-16 ตารางตวั ดาเนินการเอกภาค [3]
1.6 ตัวดาเนินการประกอบ (compound operator)
ตัวดาเนินการประกอบเป็นการใช้ตัวด าเนินการหนึ่งตัวร่วมกับเคร่ืองหมายเท่ากับการใช้ตัว
ดาเนินการประกอบจะชว่ ยใหเ้ ขยี นขอ้ ความสั่งไดส้ ้ันและเร็วขึ้น
ภาพที่ 1-17 ตารางตัวดาเนินการประกอบ [3]
ระบบอิเล็กทรอนิกส์ 16
อัตโนมตั ิ
1.6. ผงั งาน (flowchart)
ผังงานคือแผนภาพท่ีมีการใช้สัญลักษณ์รูปภาพและลูกศรที่แสดงถึงข้ันตอนการทางานของ
โปรแกรมหรือระบบทีละข้ันตอนรวมไปถึงทิศทางการไหลของข้อมูลตั้งแต่แรกจนได้ผลลัพธ์ตามท่ี
ตอ้ งการ
ประโยชน์ของผงั งาน
• ชว่ ยลาดบั ขน้ั ตอนการท างานของโปรแกรมและสามารถนาไปเขียนโปรแกรมได้โดยไม่
สับสน
• ชว่ ยในการตรวจสอบและแกไ้ ขโปรแกรมได้งา่ ยเม่อื เกิดข้อผดิ พลาด
• ชว่ ยให้การดัดแปลงแก้ไขทาได้อยา่ งสะดวกและรวดเร็ว
• ช่วยให้ผูอ้ นื่ สามารถศึกษาการท างานของโปรแกรมได้อยา่ งง่ายและรวดเรว็ มากขึ้น
การเขียนผังโปรแกรมจะประกอบไปด้วยการใช้สัญลักษณ์มาตรฐานต่างๆท่ีเรียกว่าสัญลักษณ์
ANSI (American National Standards Institute) ในการสร้างผังงานดังตัวอย่างท่ีแสดงในรูป
ตอ่ ไปนี้
ภาพที่ 1-18 ตารางผังงาน [3]
17 ระบบอเิ ล็กทรอนกิ ส์
อัตโนมัติ
1.7 หนา้ ท่แี ละเนื้อหาของไฟลซ์ อรส์ โค้ดของโปรแกรม
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. การใส่เครอ่ื งหมายท้ายฟังกช์ ัน ภาษาซีเป็นภาษาทีม่ กี ารใสเ่ ครื่องหมายท้ายฟังก์ชันซึ่งเป็นสิ่ง
ท่ีแตกตา่ งและโดดเด่นกวา่ โปรแกรมในภาษาอน่ื ๆ โดยมหี ลักการคดิ ดงั น้ี
ระบบอเิ ลก็ ทรอนิกส์ 20
อตั โนมตั ิ
การเขียนคาสง่ั ในภาษาชี จะตอ้ งเขยี นใหถ้ กู ต้องตามขอ้ กาหนด ดังน้ี
1. คาสงั่ ในภาษาชี จะต้องเขียนดว้ ยตวั อกั ษรเลก็ เช่น printf);
2. ทุกคาสัง่ ต้องลงท้ายด้วยเคร่อื งหมายเซมโิ คลอน :
3. สามารถเขียนคาสั่งภาษาชีได้อย่างอิสระ เนื่องจากภาษาซี ไม่ได้จากัดรูปแบบการเขียน
คาสั่งท่ีตายตัว ดังน้ันเราอาจจะเขียนคาสั่งติดกันไปเร่ือยๆ โดยไม่เว้นบรรทัดก็ได้ แต่เพื่อให้โปรแกรมท่ี
เราเขียนอา่ นง่าย และงา่ ยต่อการแกไ้ ข ควรจะเขยี นคาส่งั ทีละบรรทดั
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(“ข้อความ”) เป็นต้น ดู
ตวั อย่างการ เรียกใช้โปรแกรมย่อยในรูปขอ้ ที่ 2.1
ระบบอเิ ลก็ ทรอนกิ ส์ 22
อัตโนมัติ
จากรูปข้อที่ 2.1 ให้สังเกตหมายเลขบรรทัดที่ 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.1 การเลือกวิธีการกาหนดเง่ือนไขในการคอมไพล์และลิงค์ซอร์สโค้ดท่ีเหมาะสมกับการ
ทางาน
2.1.1 วธิ ีการกาหนดเง่อื นไขในการคอมไพล์และลิงค์ซอรส์ โคด้
การสรา้ งโปรแกรมท่ีสามารถใช้งานไดข้ ึ้นมาโปรแกรมหน่ึง ในภาษาซีมีขน้ั ตอนดังนี้
1. สร้างตัวโปรแกรมที่เป็นตัวอักษรหรือเรียกว่า ซอร์สไฟล์ (Source
file) โดยมีนามสกุลเป็น .c หรือ .cpp ข้ึนมาก่อน โดยใช้โปรแกรมท่ีสามารถเขียนไฟล์ท่ีเก็บอักขระ
(Editor) ใด ๆ ก็ได้ อักษรหรืออักขระใด ๆ น้ัน จะต้องอยู่ในรูปแบบของการโปรแกรมภาษา (ข้ันตอนน้ี
คอื การสรา้ งโปรแกรมที่เปน็ ภาษามนุษย์นั่นเอง)
2. คอมไพล์เลอร์ของภาษาซี (C Compiler) จะทาการแปลงซอร์ส
ไฟล์ จากอักขระใด ๆ ให้เป็นรหัสที่เครื่องคอมพิวเตอร์สามารถเข้าใจได้เก็บไว้ในอีกไฟล์หน่ึงเรียกว่า
ไฟล์วตั ถปุ ระสงค์ (Object file) ทีม่ ีนามสกลุ .obj (ขั้นตอนนี้เรยี กวา่ การคอมไพล์ เป็นการแปลงภาษา
มนษุ ย์เปน็ ภาษาเครอ่ื งน่ันเอง)
3. ตัวเชื่อม (Linker) จะทาการตรวจสอบว่าในโปรแกรมท่ีเขียนขึ้น
น้ัน มีการเรียกใช้งานฟังก์ชันมาตรฐานใด จากห้องสมุดของภาษาซี (C Library) บ้างหรือไม่ ถ้ามี
ตัวเช่ือมจะทาการรวมเอาฟังก์ชันเหล่านั้นเข้ากับไฟล์วัตถุประสงค์ แล้วจะได้ไฟล์ที่สามารถทางานได้
โดยมีนามสกุลเป็น .exe (ข้ันตอนน้ีเรียกว่า การลิงค์ เป็นการรวมฟังก์ชันสาเร็จรูปเข้าไป แล้วสร้าง
ไฟล์ทท่ี างานได)้
ระบบอิเล็กทรอนกิ ส์ 24
อตั โนมัติ
ภาพที่ 2-5 แสดงขนั้ ตอนการคอมไพล์และลงิ ค์โปรแกรมภาษาซี [4]
3. ปฏิบตั ิการใช้เครอ่ื งมอื ในการสร้างซอฟตแ์ วรแ์ ละติดตั้งลงบอร์ด
เมื่อการเขียนโปรแกรมเปน็ ศาสตร์วชิ าแขนงหน่ึง ดังนน้ั จงึ มวี ิชาทวี่ า่ ด้วยหลกั การ
เขยี นโปรแกรมข้นึ มา ซงึ่ หลกั การดังกล่าว ทาใหผ้ ู้เร่ิมต้นศกึ ษาได้เข้าใจวา่ กวา่ จะได้โปรแกรมขนึ้ มาสัก
โปรแกรมหน่ึง จะตอ้ งผา่ นข้นั ตอนอะไรมาก่อน เพื่อนาไปสูโ่ ปรแกรมที่ได้รบั การพฒั นาข้นึ สามารถ
แกไ้ ขปญั หาได้จริงและบรรลผุ ลไดใ้ นท่สี ุด ดงั นน้ั เมอ่ื ตอ้ งการฝึกฝนการเขยี นโปรแกรมทถ่ี ูกตอ้ ง มี
ระบบระเบียบ จงึ ควรฝึกปฏบิ ัติตามขัน้ ตอนแล้วฝึกใหเ้ ป็นนิสยั โดยข้ันตอนของ "วงจรการพฒั นา
โปรแกรม"
2.1.2 ความหมายของวงจรการพัฒนาโปรแกรม
วงจรการพัฒนาโปรแกรม (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)
ภาพท่ี 2-6 วงจรการพฒั นาโปรแกรม [5]
จากรูปดังกล่าว จะพบว่า การเขียนโปรแกรม มิได้ถูกจัดลาดับไว้เป็นขั้นตอนแรกเลย แต่ถูก
กลับจัดในลาดับท้ายๆ เนื่องจาก ก่อนการเขียนโปรแกรม สิ่งท่ีสาคัญท่ีสุดที่ต้องได้รับการดาเนินการ
ก่อนก็คือ การวิเคราะห์ความต้องการ ทาความเข้าใจกับปัญหา แล้วพัฒนาวิธีการแก้ไขปัญหา
จากน้ันจงึ ค่อยเขียนโปรแกรม โดยขั้นตอนการเขียนโปรแกรม
ปฏบิ ัตกิ ารใชเ้ ครอื่ งมอื ในการสร้างซอฟตแ์ วร์และตดิ ตั้งลงบอรด์
การเขียนโปรแกรมสาหรับบอร์ด Arduino จะต้องเขียนโปรแกรมโดยใช้ภาษาของ
Arduino (Arduino Programming Language) ซ่ึงตัวภาษาของ Arduino ก็นาเอาโอเพ่นซอร์สโปร
เจ็กต์ช่ือ Wiring มาพัฒนาต่อ ภาษา ของ Arduino แบ่งได้เป็น 2 ส่วนหลักคือโครงสร้างภาษา
(Structure) ตัวแปรค่าคงที่และฟังก์ช่ัน (Function) ภาษาของ Arduino จะอ้างอิงตามภาษา C/C++
จึงอาจกล่าวได้ว่าการเขียนโปรแกรมสาหรับ Arduino (ซึ่งก็รวมถึง บอร์ด Arduino) ก็คือการเขียน
โปรแกรมภาษา C
ระบบอิเล็กทรอนกิ ส์ 26
อตั โนมตั ิ
3.1 หลกั การ เคร่ืองมอื และวิธกี ารพฒั นาแบบข้ามแพลตฟอรม์
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-1 ขนั้ ตอนของวงจรการพัฒนาโปรแกรม [5]
27 ระบบอเิ ล็กทรอนกิ ส์
อตั โนมตั ิ
ขัน้ ตอนของวงจรการพัฒนาโปรแกรมจะประกอบไปด้วยท้ังหมด 6 ข้นั ตอน ดงั นี้
1. ข้นั วเิ คราะหค์ วามตอ้ งการ (Requirement Analysis and Feasibility Study)
ขั้นตอนน้ีเป็นข้ันตอนแรกสุดที่นักเขียนโปรแกรม จะต้องทาก่อน ลงมือเขียนโปรแกรม
เพื่อทาความเข้าใจกับปัญหาที่เกิดข้ึน และค้นหา จุดมุ่งหมาย หรือส่ิงที่ต้องการ ขั้นตอนน้ีถือว่าเป็น
ขั้นตอนที่สาคัญท่สี ุด ก่อนถึงข้นั ตอนการวางแผนแก้ไขปัญหา และดาเนินการเขียนโปรแกรม โดยในข้ัน
วเิ คราะหค์ วามตอ้ งการจะใช้เทคนคิ "การวิเคราะหง์ าน" มาตรวจสอบและวิเคราะห์ความตอ้ งการ ดังน้ี
ภาพที่ 3-2 ขัน้ วิเคราะหค์ วามตอ้ งการ
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-3 ข้ันทดสอบและแก้ไขโปรแกรม [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-4 ส่วนประกอบของโปรแกรม 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-5 แถบเครือ่ งมอื ไฟล์ (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-6 แถบเคร่ืองมอื แกไ้ ข (Edit) [6]
33 ระบบอิเล็กทรอนิกส์
อตั โนมตั ิ
4. แถบเครือ่ งมือสเกตช์ (Sketch) มเี ครื่องมอื ชว่ ยในคาส่ังต่าง ๆ ซึ่งแตล่ ะปมุ่ มหี น้าทีก่ ารใช้งานดังน้ี
1. Verify/Compile : เปน็ แถบสาหรับการคอมไพลโ์ ปรแกรม
2. Upload : เปน็ แถบสาหรับการอัปโหลดโปรแกรมที่เขียนข้ึนลงบอรด์ Arduino
3. Show Sketch folder : เปน็ แถบใช้ในการสงั่ เปิดโฟลเดอร์ท่ีเก็บโปรแกรม
4. Import Library : เปน็ แถบคาสง่ั เรียกใชไ้ ลบรารีเพิ่มเตมิ
5. Add File : เปน็ แถบเพ่มิ ไฟล์ใหก้ ับสเกตซบ์ ุ๊กปัจจุบนั
ภาพที่ 3-7 แถบเคร่อื งมือสเกตช์ (Sketch) [6]
ระบบอิเลก็ ทรอนกิ ส์ 34
อตั โนมัติ
5 แถบเคร่ืองมือ (Tools) มีเคร่ืองมือช่วย
ในคาส่งั ตา่ งๆ ซง่ึ แต่ละปมุ่ มีหนา้ ที่การใช้งานดังนี้
1. Auto Format : เป็นแถบ
จัดรปู แบบโปรแกรมแบบอตั โนมตั ิ
2. Archive Sketch : เป็นแถบ
ส่ังบีบอัดไฟล์โปรแกรมท้ังโฟลเดอร์ หลักและ
โฟลเดอร์ย่อยของไฟล์งาน ปัจจุบันไฟล์ที่
สร้างใหม่ใหม้ ชี อ่ื เดยี วกับไฟล์งานปัจจบุ ัน
3. Board : เป็นแถบสาหรับ
เลอื กฮาร์ดแวร์ของบอร์ด Arduino
4. Serial Port : เป็นแถบ
สาหรบั เลือกหมายเลขพอรต์ ของคอมพิวเตอร์ ท่ี
ต่อกบั บอร์ด Arduino
ภาพท่ี 3-8 แถบเครื่องมือ (Tools) [6]
6 แถบเครื่องมือตัวช่วย (Help) ถ้าต้องการ
ความช่วยเหลือหรือข้อมูลที่เก่ียวข้องกับ โปรแกรม
ให้เลือกเมนูน้ี และเลือกแถบเมนูย่อยของโปรแกรม
ทาให้โปรแกรมเปิดไฟล์เว็บเพจที่เกี่ยวข้องกับหัวข้อ
นน้ั ทเี่ ลือก
ภาพท่ี 3-9 แถบเครื่องมอื ตัวช่วย (Help) [6]
35 ระบบอเิ ลก็ ทรอนกิ ส์
อตั โนมัติ
7 ปุ่ม Serial Monitor เป็นปุ่มสาหรับ
การติดต่อสื่อสารบอร์ด Arduino กับ
ค อ ม พิ ว เ ต อ ร์ เ ม่ื อ ค ลิ ก ปุ่ ม น้ี
คอมพิวเตอร์ทาการเปิดหน้าต่างใหม่
ข้ึนมา แล้วนาค่าในการรับส่งข้อมูลมา
แสดง ท่ีหน้าตา่ งท่เี ปิดข้ึนนี้ ดังรูปที่ 2.13
ภาพที่ 3-10 หนา้ ต่างแสดงการติดต่อสอ่ื สารบอร์ด
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-11 ติดต้ังไลบรารี่ [7]
รอให้ Library Manager ดาวนโ์ หลด library index จนเสรจ็ จงึ จะเร่มิ ใชง้ าน
Library Manager ได้ (ชา้ เรว็ ขนึ้ อย่กู ับความเรว็ อนิ เทอร์เนต็ )
ภาพท่ี 3-12 Library Manager ดาวนโ์ หลด [7]
37 ระบบอิเลก็ ทรอนกิ ส์
อัตโนมัติ
พิมพช์ ่อื ไลบรารีทต่ี ้องการจะตดิ ต้งั เชน่ พมิ พค์ าวา่ taskscheduler สาหรับการค้นหาไลบรารีช่ือ
TaskScheduler
เม่ือเจอไลบรารีที่ต้องการจะติดต้ัง ให้คลิกปุ่ม Install จากนั้นรอจนกว่าไลบรารีน้ันจะถูกดาวน์
โหลด และติดต้ังจนเสร็จ
ภาพท่ี 3-13 ไลบรารีท่ตี ้องการจะตดิ ตง้ั [7]
ถา้ ติดตง้ั เสรจ็ แล้วจะข้นึ คาวา่ INSTALLED ต่อท้ายชื่อไลบรารี (ช้าเร็วข้นึ อยู่กับความเรว็ อนิ เทอร์เน็ต)
ภาพท่ี 3-14 INSTALLED [7]
ระบบอิเล็กทรอนิกส์ 38
อตั โนมตั ิ
ติดตัง้ ผ่าน Arduino IDE โดยนาเขา้ ไฟล์ .zip
ดาวน์โหลดไลบรารที เ่ี ปน็ ไฟล์ .zip มาไว้ใน
เครื่องคอมพวิ เตอร์
ภาพที่ 3-15 นาเขา้ ไฟล์ .zip [7]
คลกิ ท่ีเมนู Sketch > Include Library
> Add .ZIP Library…
ภาพท่ี 3-16 หน้าตา่ งย่อย [7]
39 ระบบอิเล็กทรอนกิ ส์
อัตโนมัติ
จากน้ันจะมีหน้าต่างย่อยแสดงขึ้นมา ให้เราเลือกไฟล์ไลบรารี .zip ที่เราเพ่ิงดาวน์โหลดมา จากน้ันกด
ปุ่ม OK
เม่อื ติดตง้ั สาเร็จจะมีข้อความข้ึนมาว่า Library added to your libraries. Check “Include library”
menu ตามรูปด้านลา่ ง
ภาพที่ 3-17 Library added to your libraries [7]
ติดตั้งโดยนาไลบรารไี ปวางไว้ในโฟลเดอร์ libraries
ดาวน์โหลดไลบรารที ่เี ปน็ ไฟล์ .zip มาไวใ้ นเคร่อื งคอมพวิ เตอร์
แตกไฟล์ .zip จนได้ออกมาเปน็ โฟลเดอร์
ย้ายโฟลเดอร์ทีเ่ พิ่งแตกไฟลอ์ อกมา ไปไวใ้ นโฟลเดอร์ libraries
• ทอ่ี ยขู่ องโฟลเดอร์ libraries สาหรบั Linux : /home/your_user/Arduino/libraries
• ที่ อ ยู่ ข อ ง โ ฟ ล เ ด อ ร์ libraries ส า ห รั บ Windows :
C:\Users\your_user\Documents\Arduino\libraries
โดยสามารถตรวจเชค็ ตาแหนง่ ของโฟลเดอร์ทจี่ ะนาไปวางได้โดยคลิกทเ่ี มนู File > Preferences
ระบบอเิ ล็กทรอนิกส์ 40
อตั โนมตั ิ
ภาพที่ 3-18 หนา้ ต่าง Preferences [7]
เมื่อหนา้ ต่าง Preferences แสดง
ขน้ึ มา ให้ดูที่ Sketchbook location
นน่ั คือตาแหนง่ ของโฟลเดอรท์ ีเ่ ราจะ
นาไลบรารไี ปวาง
ภาพท่ี 3-19 หนา้ ต่าง 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-20 เวบ็ ไซต์ 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-21 โค้ดท่ใี ชอ้ ่านคา่ Sensor DS18B20 [7]
จากโค้ดตวั อยา่ งด้านบน เปน็ โค้ด
ท่ใี ชอ้ ่านค่า Sensor DS18B20
จะเห็นวา่ หัวบนสุดของโค้ดจะมี
คาสง่ั #include แปลวา่ โค้ดน้ี
ต้องใช้ Library ด้วย ถ้าเรายัง
ไมไ่ ดล้ ง Library แลว้ อัพโหลด
โค้ดลง Arduino UNO R3 ทนั ที
จะข้นึ error ตามรูปด้านลา่ ง
ภาพที่ 3-22 โหลด library Sensor DS18B20 [7]
43 ระบบอเิ ลก็ ทรอนิกส์
อัตโนมตั ิ
ใหโ้ หลด library Senso Rds18b20จากลงิ้ ค์น้ีลงในโปรแกรม Arduinolibrary/codehttp
://www.mediafire.com/download/bj2xlk73hb5nr15/Thermometer_Waterproof_DS18B20.rar
ภาพท่ี 3-23 แตกไฟล์ [7]
เมอื่ โหลด Library Sensor DS18B20 มาแล้วใหแ้ ตกไฟล์ จะได้ สอง folder น้ี
นา 2 folder ท่ีแตกไฟล์ไดไ้ ปไว้ใน folder libraries ของโปรแกรม Arduino ทีต่ ิดตัง้ ไว้ ตามรปู ด้านลา่ ง
ภาพที่ 3-24 แตกไฟลไ์ ด้ไปไว้ใน folder libraries [7]
ระบบอิเล็กทรอนกิ ส์ 44
อตั โนมตั ิ
ให้ปิดโปรแกรม Arduino แล้ว เปิดข้ึนมาอีกครั้ง ทาการกดอัพโหลดโค้ดลง บอร์ด
Arduino ถ้าลง Library ถูกจะไม่ขึ้น error สีส้ม จะข้ึนคาว่า Done uploading แปลว่าอัพโหลดโค้ด
ลงบอรด์ Arduino สาเรจ็ ตามรูปด้านลา่ ง
ภาพที่ 3-25 โคด้ [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-26 หนา้ ต่างโปรแกรม Arduino [7]
2. ต่อสาย USB กับบอร์ด
Arduino UNO R3 เขา้ กับ
คอมพวิ เตอร์ จากนนั้ ใหค้ ล๊กิ ขาวท่ี
Computer หรอื ท่ีเมนู เลอื ก
Properties ไปที่ Device
Manager เพ่ือดวู ่าบอร์ด
Arduino UNO R3 นน้ั ตอ่ อยกู่ บั
COM Port หมายเลขใด
ภาพที่ 3-27 Device Manager [7]
ระบบอเิ ล็กทรอนกิ ส์ 46
อตั โนมัติ
ภาพท่ี 3-28 เมนู Tools [7]
4. กลบั มาท่โี ปรแกรม Arduino IDE ไปท่ีเมนู Tools และทาการต้งั คา่ บอร์ดและหมายเลขพอร์ตให้
ตรงกบั ท่จี ะเช่อื มต่อ ซง่ึ ในตวั อย่างคือ COM4 ดงั น้ี
ภาพท่ี 3-29 ตงั้ ค่าบอร์ดและหมายเลขพอร์ตใหต้ รงกับทีจ่ ะเชื่อมตอ่ [7]
47 ระบบอเิ ลก็ ทรอนกิ ส์
อตั โนมตั ิ
5. ทดสอบอัพโหลดโคดไฟกระพริบลงบอร์ด Arduino Uno ถ้าสาเร็จที่บอร์ด Arduino Uno จะมีไฟ
กระพรบิ แสดงว่าจบข้นึ ตอนการตดิ ตง้ั โปรแกรมและอัพโหลดโคดลง Arduino นแี้ ลว้
ภาพที่ 3-30 Done compiling [7]