แผนการจัดการเรียนรู้ วิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น รหัสวิชา 20901-2405 หลักสูตรประกาศนียบัตรวิชาชีพ พุทธศักราช 2562 บูรณาการงานสวนพฤกษศาสตร์โรงเรียนและเศรษฐกิจพอเพียง จัดทำโดย นายพลวัฒน์ ผ่องแก้ว ตำแหน่ง นักศึกษาฝึกประสบการณ์วิชาชีพ แผนกวิชาคอมพิวเตอร์ วิทยาลัยเทคนิคนางรอง สำนักงานคณะการการอาชีวศึกษา กระทรวงศึกษาธิการ
รายการตรวจสอบและอนุญาตให้ใช้ ชื่อวิชา ...การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น.... รหัสวิชา ...20901-2405.... ควรอนุญาตให้ใช้การสอนได้ ควรปรับปรุงเกี่ยวกับ......................................................................................................... ............................ ............................................................................................................................. ................................................. ............................................................................................................................. ................................................. ลงชื่อ..................................................... (นางสาวมยุรี พงษ์อาภา) หัวหน้าหมวด / แผนกวิชา ............../......................../................... เห็นควรอนุญาตให้ใช้การสอนได้ ควรปรับปรุงดังเสนอ อื่น ๆ............................................................................................................................. ............................. ............................................................................................................................. ................................................. ............................................................................................................................. ................................................. ลงชื่อ..................................................... (นางสาวศิริวรรณ เนาว์ประโคน) รองผู้อำนวยการฝ่ายวิชาการ ............../......................../.................... อนุญาต อื่น ๆ ...................................................................................................................... .................................... ............................................................................................................................. .............................................. ลงชื่อ..................................................... (นายวรงจ์ แก้วบุญเรือง) ผู้อำนวยการ ............../......................../....................
คำนำ แผนการจัดการเรียนวิชาการโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น รหัส 20901-2405 หลักสูตร ประกาศนียบัตรวิชาชีพ (ปวช.) พุทธศักราช 2562 ประเภทวิชาเทคโนโลยีสารสนเทศและการสื่อสาร สาขางาน นักพัฒนาซอฟต์แวร์คอมพิวเตอร์ กำหนดเนื้อหาสาระ จำนวน 10 หน่วยการเรียนรู้ ประกอบด้วย พื้นฐาน ไมโครคอนโทรลเลอร์ Arduino IDE สำหรับโปรแกรมภาษา C โปรแกรมภาษา C สำหรับ Arduino ฟังก์ชัน พื้นฐานของโปรแกรมภาษา C สำหรับ Arduino การควบคุมการทำงานของอินพุตและเอาต์พุต จอแสดงผล สำหรับใช้งานร่วมกับบอร์ด Arduino การใช้งานแอนะล็อกและ PWM ของบอร์ด Arduino การใช้งาน Arduino ร่วมกับอุปกรณ์ตรวจรู้การใช้งาน Real Time Clock ร่วมกับ Arduino และการควบคุมดีซีมอเตอร์ สเต็ปปิงมอตอร์ และอาร์ซีเซอร์โวมอเตอร์ด้วย Arduino และทั้งนี้มุ่งหวังให้ผู้เรียนได้ศึกษาและเกิดการเรียนรู้ ตามจุดประสงค์รายวิชาและมาตรฐานรายวิชาที่กำหนดไว้ ข้าพเจ้าหวังว่าแผนการจัดการเรียนรู้วิชาการโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น รหัส 20901- 2405 เล่มนี้ จะสามารถให้ความรู้และเกิดประโยชน์แก่ผู้เรียน ผู้สอน ตลอดจนผู้สนใจศึกษาทั่วไปเป็นอย่างดี หากมีข้อผิดพลาดประการใดผู้เรียบเรียง ขอน้อมรับคำติชมเพื่อเป็นประโยชน์ในการปรับปรุงแก้ไขในโอกาส ต่อไป พลวัฒน์ ผ่องแก้ว นักศึกษาฝึกประสบการณ์วิชาชีพครู
สารบัญ หน้า คำนำ โครงการสอน แผนการจัดการเรียนรู้หน่วยที่ 1 พื้นฐานไมโครคอนโทรลเลอร์ 1 แผนการจัดการเรียนรู้หน่วยที่2 Arduino IDE สำหรับโปรแกรมภาษา C 12 แผนการจัดการเรียนรู้หน่วยที่3 โปรแกรมภาษา C สำหรับ Arduino 24 แผนการจัดการเรียนรู้หน่วยที่ 4 ฟังก์ชันพื้นฐานของโปรแกรมภาษา C สำหรับ Arduino 46 แผนการจัดการเรียนรู้หน่วยที่ 5 การควบคุมการทำงานของอินพุตและเอาต์พุต 59 แผนการจัดการเรียนรู้หน่วยที่ 6 จอแสดงผลสำหรับใช้งานร่วมกับบอร์ด Arduino 83 แผนการจัดการเรียนรู้ที่หน่วย 7 การใช้งานแอนะล็อกและ PWM ของบอร์ด Arduino 109 แผนการจัดการเรียนรู้หน่วยที่ 8 การใช้งาน Arduino ร่วมกับอุปกรณ์ตรวจรู้บูรณาการงาน สวนพฤกษศาสตร์โรงเรียนในองค์ประกอบที่ 2 การรวบรวมพรรณไม้เข้าปลูกในโรงเรียน ข้อที่ 1 124 แผนการจัดการเรียนรู้หน่วยที่ 9 การใช้งาน Real Time Clock ร่วมกับ Arduino 152 แผนการจัดการเรียนรู้หน่วยที่ 10 การควบคุมดีซีมอเตอร์ สเต็ปปิงมอตอร์ และอาร์ซีเซอร์โว มอเตอร์ด้วย Arduino ภาคผนวก 168
1 แผนการจัดการเรียนรู้ หน่วยที่ 1 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น สอนครั้งที่ 1 ชื่อหน่วย พื้นฐานไมโครคอนโทรลเลอร์ ชั่วโมงรวม 3 ชั่วโมง ชื่อเรื่อง พื้นฐานไมโครคอนโทรลเลอร์ จำนวน 3 ชั่วโมง สาระสำคัญ ไมโครคอนโทรลเลอร์ หมายถึงอุปกรณ์ควบคุมขนาดเล็กที่สามารถควบคุมอุปกรณ์ภายนอกได้มีโครงสร้าง คล้ายกับคอมพิวเตอร์ กล่าวคือภายในประกอบด้วยหน่วยประมวลผลกลาง (CPU) หน่วยความจำ (Memory) อินพุตเอาต์พอร์ต (I/O port) รีจิสเตอร์ (Register) วงจรผลิตสัญญาณนาฬิกา (Clock generator) ระบบการ สื่อสารระหว่างอุปกรณ์ต่าง ๆ เป็นต้นไมโครคอนโทรลเลอร์จัดอยู่ในประเภทอุปกรณ์สมองกลฝังตัว (Embedded devices) ไอซีไมโครคอนโทรลเลอร์มีหลายตระกูล เช่นตระกูล PIC, MCS51 AVR, ARM, BASIC stamp, MSP, PSCC, 68HC และ RABBIT เป็นต้น ภาษาที่โหลดลงในไมโครคอนโทรลเลอร์จะเป็นภาษาเครื่อง (Hex file : เป็น เลขฐาน 16) ซึ่งอาจจะเขียนโปรแกรมด้วยภาษาระดับสูง เช่น ภาษา ภาษา BASIC ภาษา Visual BASIC ภาษา Python แล้วใช้ Compiler แปลงเป็นภาษาเครื่อง นำไปโหลดลงใน ไอซีหรือบอร์ดไมโครคอนโทรลเลอร์ สำหรับ ภาษาแอสแซมบลี ซึ่งเป็นภาษาระดับต่ำไม่เป็นที่นิยมใช้เขียน โปรแกรม เนื่องจากผู้เขียนโปรแกรมด้วยภาษาแอส แซมบลีนั้น จะต้องทราบรายละเอียดของฮาร์ดแวร์ของ ไมโครคอนโทรลเลอร์เบอร์นั้น ๆ เป็นอย่างดี บอร์ด Arduino เป็นบอร์ดที่สร้างมาจากไมโครคอนโทรลเลอร์ เป็นส่วนมาก แต่มีบางรุ่นที่ต้องการความสามารถของ บอร์ดสูงขึ้นสร้างมาจาก ตระกูล AVR ไมโครคอนโทรลเลอร์ตระกูล ARMเช่น Arduino DUE เป็นต้น นอกนั้นจะที่ สร้างมาจากไมโครคอนโทรลเลอร์ตระกูล AVR เหตุผลที่ในปัจจุบันบอร์ด Arduino ได้รับความนิยมเนื่องจาก ราคาไม่แพง ใช้งานง่าย เครื่องมือ พัฒนาถูกบรรจุไว้ในชุดเดียวกัน คือ Arduino IDE มีทั้งเขียนโปรแกรม คอมไพล์ และดาวน์โหลดอัปโหลด นอกจากนี้ยังเขียนด้วยภาษา C ที่เป็นลักษณะ Open Source code ที่สามารถนำไป พัฒนาต่อได้ ไอซีไมโครคอนโทรลเลอร์ที่นิยมนำมาใช้บอร์ด Arduino เป็นเบอร์ ATmega328, ATmega2560 ATmega32U4 และ ATSAM3XBE ซึ่งแต่ละเบอร์จะมีคุณสมบัติที่แตกต่างกันด้านจำนวนพอร์ต จำนวนพื้นที่ หน่วยความจำ Flash, SRAM, EEPROM ระบบสื่อสารระหว่างอุปกรณ์แบบ SPI, IC USART จำนวนช่อง ADC, PWM ตลอดจนแรงดันไฟฟ้าและความถนาฬิกา บอร์ด NodeMCU เป็นบอร์ดไมโครคอนโทรลเลอร์ที่มี WiFi ในตัว นิยมใช้ใน IoT สามารถใช้ตัวพัฒนา โปรแกรม Arduino IDE ได้ จึงเป็นที่นิยมเป็นอย่างมาก บอร์ด NodeMCU ที่ พัฒนาขึ้นจนทำงานได้อย่างมีประสิทธิภาพคือ บอร์ด NodeMCU ESP8266 ผลิตโดยบริษัท Espressif จาก ประเทศจีน มีหลายรุ่นเช่น ESP-01, ESP-03, ESP-07, ESP-12E เป็นต้น บอร์ด NodeMCU ESP32 เป็นบอร์ด ไมโครคอนโทรลเลอร์ทีพัฒนาต่อจาก NodeMCU ESP8266 มีประสิทธิภาพสูงขึ้น ส่วนบอร์ด M5Strack ได้
2 พัฒนาให้สามารถใช้งาน ได้หลากหลายมากขึ้น มีอุปกรณ์หลายชนิดบรรจุไว้ในกล่องขนาด 5 เซนติเมตร x 5 เซนติเมตร มีจอ TFT LCD ในตัว แต่ยังใช้โมดูลไมโครคอนเลอร์ ESP32 สมรรถนะประจำหน่วย 1. สามารถบอกความหมายของไมโครคอนโทรลเลอร์ได้ 2. สามารถอธิบายโครงสร้างของไมโครคอนโทรลเลอร์ได้ 3. สามารถระบุตระกูลของไมโครคอนโทรลเลอร์ได้ 4. สามารถบอกภาษาสำหรับไมโครคอนโทรลเลอร์ได้ 5. สามารถเลือกใช้งานบอร์ดไมโครคอนโทรลเลอร์เหมาะสมกับงานได้ จุดประสงค์การเรียนรู้ประจำหน่วย จุดประสงค์ทั่วไป 1. เพื่อให้นักเรียนทราบความหมายของไมโครคอนโทรลเลอร์ 2. เพื่อให้นักเรียนอธิบายโครงสร้างของไมโครคอนโทรลเลอร์ 3. เพื่อให้นักเรียนรู้จักตระกูลของไมโครคอนโทรลเลอร์ 4. เพื่อให้นักเรียนรู้จักภาษาสำหรับไมโครคอนโทรลเลอร์ 5. เพื่อให้นักเรียนรู้จักบอร์ดไมโครคอนโทรลเลอร์Arduino จุดประสงค์เชิงพฤติกรรม 1. บอกความหมายของไมโครคอนโทรลเลอร์ได้ 2. อธิบายโครงสร้างของไมโครคอนโทรลเลอร์ได้ 3. ระบุตระกูลของไมโครคอนโทรลเลอร์ได้ 4. บอกภาษาที่ใช้กับไมโครคอนโทรลเลอร์ได้ 5. เลือกใช้งานบอร์ด Arduino ให้เหมาะสมกับงานได้
3 กิจกรรมการเรียนรู้ ขั้นตอนการสอน (กิจกรรมของครู) ขั้นตอนการเรียน (กิจกรรมผู้เรียน) เครื่องมือ/การวัดผล ประเมินผล 1.ขั้นนำเข้าสู่บทเรียน 1.1 ครูบอกจุดประสงค์ของการเรียนใน บทเรียนนี้ 1.2 ครูสอบถามพื้นฐาน ไมโครคอนโทรลเลอร์ 1.1 นักเรียนรับฟังจุดประสงค์ของการ เรียนในบทเรียนนี้ 1.2 นักเรียนรับฟังพื้นฐาน ไมโครคอนโทรลเลอร์ 1. คำถามประจำหน่วย - การตอบคำถามแบบสุ่มถามเพื่อ กระตุ้นผู้เรียน 2. ขั้นสอนทฤษฎี 2.1 ครูอธิบายพื้นฐาน ไมโครคอนโทรลเลอร์ 2.2 ซักถามปัญหาเกี่ยวกับพื้นฐาน ไมโครคอนโทรลเลอร์ 2.1 รับฟังคำบรรยาย 2.2 ตอบคำถามและแสดงความคิดเห็น 1.สื่อนำเสนอ Canva หน่วยที่ 1 2. คำถามหน่วยที่ 1 3. ขั้นสรุป 3.1 ครูและนักเรียนช่วยกันสรุปและ ครูซักถามปัญหาข้อสงสัย 3.1 นักเรียนช่วยครูสรุปและตอบคำถาม 3.2 จดบททึกย่อ 1. ใบสรุปหน่วยที่ 1 4. ขั้นสอนปฏิบัติ (หน่วยนี้ไม่มีปฏิบัติ) 5. ขั้นการประเมินผล 5.1 ครูแจกใบประเมินผลหลังเรียน หน่วยที่ 1 5.2 ดูแลนักเรียนไม่ให้ทุจริต 5.3 เมื่อครบเวลาที่กำหนดรับ แบบทดสอบคืน 5.1 รับใบประเมินผลหลังเรียนหน่วยที่ 1 5.2 ทำแบบทดสอบหลังเรียน 5.3 เมื่อครบเวลาที่กำหนดส่งแบบทดสอบคืน 1. แบบทดสอบหลังเรียน หน่วยที่ 1 6. ขั้นมอบหมายงาน 6.1 ให้นักเรียนไปค้นคว้าเพิ่มเติม เกี่ยวกับพื้นฐานไมโครคอนโทรลเลอร์ 6.1 รับมอบหมายงาน 1. ใบมอบงานหน่วยที่ 1 7. ขั้นตรวจสอบความเรียบร้อย 7.1 ตรวจความเรียบร้อยและความ เรียบร้อยของห้องเรียนห้องปฏิบัติงาน 7.1 ช่วยกันจัดเก็บและทำความสะอาด ห้องเรียนห้องปฏิบัติงานให้เรียบร้อย 1.ใบตรวจสอบความ เรียบร้อย
4 สื่อการเรียนรู้และแหล่งการเรียนรู้ สื่อสิ่งพิมพ์ - สุชิน ชินสีห์(2563). ไมโครคอนโทรลเลอร์. นนทบุรี : โรงพิมพ์ บริษัท ศูนย์หนังสือเมืองไทย จำกัด. สื่ออื่นๆ - สื่อนำเสนอ Canva หลักฐานการเรียนรู้ที่ต้องการ หลักฐานความรู้ งานแบบฝึกหัดหน่วยที่ 1 หลักฐานการปฏิบัติงาน คะแนนงานแบบฝึกหัดหน่วยที่ 1 การวัดและประเมินผล การวัดผล (ใช้เครื่องมือ) การประเมินผล (นำผลเทียบกับเกณฑ์และแปลความหมาย) 1. แบบฝึกหัดหน่วยที่ 1 เกณฑ์ผ่าน 50% 2. แบบประเมินคุณธรรม จริยธรรม ตามสภาพจริง เกณฑ์ผ่าน 50% การบูรณาการหลักปรัชญาเศรษฐกิจพอเพียงสู่แผนการจัดการเรียนรู้ การถอดรหัสปรัชญาของเศรษฐกิจพอเพียง การพัฒนาโปรแกรมด้วยเทคโนโลยีดอตเน็ต พอประมาณ มีเหตุผล มีภูมิคุ้มกัน - นักศึกษามีความพอประมาณใน การใชอุปกรณการเรียน - นักศึกษาใชเหตุผลในการ ทำกิจกรรม - นักศึกษาทำงานอยางมีระเบียบวินัยในการ เรียนไมกอความวุนวาย เงื่อนไขความรู้ เงื่อนไขคุณธรรม - นักศึกษามีความรูเกี่ยวกับเนื้อหาในบทเรียน - นักศึกษารูจักความรักและความสามัคคีในเพื่อนรวมหอง เวลามีปญหาในการทำงาน
5 - ชวยกันแกไขขอผิดพลาดที่เกิดขึ้นเบื้องตนกอนถาแกไขไม ไดจึงเรียกอาจารย ครอบคลุม 4 มิติ วัตถุ สังคม สิ่งแวดล้อม วัฒนธรรม - สื่อ วัสดุ อุปกรณ์ - แบบทดสอบ - ใบมอบหมายงาน - ใบปฏิบัติงาน - การช่วยเหลือ เพื่อนในกลุ่ม - การแลกเปลี่ยน เรียนรู้ในชั้นเรียน - การร่วมกิจกรรม - รักษาความสะอาด ของห้องเรียน - จัดโต๊ะให้เหมาะสม - ปิดไฟ พัดลม ก่อนออกจากห้อง - อนุรักษ์ สิ่งแวดล้อม - การอยู่ร่วมกัน ในสังคม
6 เนื้อหาสาระ หน่วยที่ 1 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น สอนครั้งที่ 1 ชื่อหน่วย พื้นฐานไมโครคอนโทรลเลอร์ ชั่วโมงรวม 3 ชั่วโมง ชื่อเรื่อง พื้นฐานไมโครคอนโทรลเลอร์ จำนวน 3 ชั่วโมง หน่วยที่ 1 พื้นฐานไมโครคอนโทรลเลอร์ ไมโครคอนโทรลเลอร์ถูกนำมาใช้อย่างกว้างขวางในงานด้านอิเล็กทรอนิกส์ เพราะสามารถใช้งานได้ง่าย มี ขนาดเล็ก ราคาถูก และที่สำคัญสามารถสั่งงานให้ทำงานตามเงื่อนไขใหม่ตามผู้ใช้ต้องการได้ โดยไม่ จำเป็นต้อง เปลี่ยนวงจรภายนอก มีบริษัทผู้ผลิตอซีไมโครคอนโทรลเลอร์ออกมาหลายตระกูล เช่น Z80, PIC MCS5 1, AVR, ARM 7,ARM9, 68HC แต่ละตระกูลมีคุณสมบัติข้อเด่นข้อด้อยแตกต่างกันออกไป บอร์ดอาร์ดูอิโน (Arduino board) เป็นบอร์ดไมโครคอนโทรลเลอร์สำเร็จรูป ที่สร้างมาจาก ไมโครคอนโทรลเลอร์ตระกูล AVR ของ Atmel และ ARM มีจุดเด่นในเรื่องความง่ายในการเรียน ราคาไม่แพง รองรับระบบปฏิบัติการทั้ง Windows, Linux และ Macintosh osx มีการเปิดเผยข้อมูลเกี่ยวกับ วงจรและ Source code ให้สามารถนำไปพัฒนาเพิ่มเติมได้ ดังนั้น จึงเหมาะสำหรับนำไปใช้ในการศึกษาเรียน ไมโครคอนโทรลเลอร์และนำไปประยุกต์ได้มากมาย บอร์ดอาร์ดูอิโนได้ ถูกออกแบบให้ใช้งานได้ง่าย สามารถรับ สัญญาณได้ทั้งสัญญาณดิจิทัลและสัญญาณแอนะล็อค 1.1.1 ความหมายของไมโครคอนโทรลเลอร์ไมโครคอนโทรลเลอร์ (Microcontroller) มาจากคำว่าไมโคร (Micro) หมายถึงขนาดเล็ก คำว่า คอนโทรลเลอร์ (Controller) หมายถึงตัวควบคุมหรืออุปกรณ์ควบคุม ไมโครคอนโทรลเลอร์ จึงหมายถึง อุปกรณ์ควบคุมขนาดเล็กที่สามารถควบคุมอุปกรณ์ภายนอกได้ แต่ในตัวอุปกรณ์ ควบคุมขนาดเล็กนี้ได้บรรจุความสามารถที่คล้ายคลึงกับระบบคอมพิวเตอร์ คือไมโครคอนโทรลเลอร์ได้รวมเอา ชีพียู (CPU) หน่วยความจำ (Memory) อินพุตเอาต์พุตพอร์ต (I/O Port) รีจิสเตอร์ (Register) วงจรผลิตสัญญาณ (Oscillator) และวงจร อิเล็กทรอนิกส์ เช่น วงจรแปลงจากสัญญาณแอนะล็อกเป็นดิจิทัลวงจรสร้างสัญญาณ PWM ไมโครคอนโทรลเลอร์จึงสามารถนำไปประยุกต์ใช้งานควบคุมต่าง ๆ ได้ดี 1.1.2 โครงสร้างภายในของไมโครคอนโทรลเลอร์ ไมโครคอนโทรลเลอร์แต่ละเบอร์แต่ละตระกูลนั้นมี โครงสร้างภายในแตกต่างกันขึ้นอยู่กับผู้ผลิต และจุดประสงค์ของการสร้างไมโครคอนโทรลเลอร์เบอร์นั้น ๆ 1.1.3 โครงสร้างภายนอกของไมโครคอนโทรลเลอร์ ในปัจจุบันผู้ผลิตไอซีไมโครคอนโทรลเลอร์ได้สร้าง โครงสร้างขาเพื่อต่อใช้งานหลายลักษณะ เช่น แบบ SOIC (Small Outline Integrated Circuit), PDIP (Plastic Dual In-line Pa (Plastic Leaded Chip Carrier) และ TQFP (Thin Quad Flat Pack Packages) 1.2 ตระกูลของไมโครคอนโทรลเลอร์ 1.2.1 แบ่งประเภทตามสถาปัตยกรรมการประมวลผล 23 JAN ไมโครคอนโทรลเลอร์ 1. ไมโครคอนโทรลเลอร์ 8 บิต
7 2. ไมโครคอนโทรลเลอร์ 16 บิต 3. ไมโครคอนโทรลเลอร์ 32 บิต 4. ไมโครคอนโทรลเลอร์ 64 บิต 1.2.2 แบ่งตามสถาปัตยกรรมของบริษัทผู้ผลิต ถ้าหากแบ่งตามสถาปัตยกรรมของบริษัทผู้ผลิต การผลิตและกระบวนการทำงานระบบประมวลผล แบ่งได้เป็น 1. ไมโครคอนโทรลเลอร์ตระกูล Z80 (บริษัทผู้ผลิต Zilog) 2. ไมโครคอนโทรลเลอร์ตระกูล PIC (บริษัทผู้ผลิต Microchip) 3. ไมโครคอนโทรลเลอร์ตระกูล MCS51 (บริษัทผู้ผลิต Atmel, Philips) 4. ไมโครคอนโทรลเลอร์ตระกูล AVR (บริษัทผู้ผลิต Atmel) 5. ไมโครคอนโทรลเลอร์ตระกูล AM, ARM9 (บริษัทผู้ผลิต Atmel, Phillips Analog Device, Sumsung, ST Microelectronics) 6. ไมโครคอนโทรลเลอร์ตระกูล 7. ไมโครคอนโทรลเลอร์ตระกูล 8. ไมโครคอนโทรลเลอร์ตระกูล 9. ไมโครคอนโทรลเลอร์ตระกูล 68HC (บริษัทผู้ผลิต Motorola) Basic Stamp (บริษัทผู้ผลิต Parallax) PSOC (บริษัทผู้ผลิต Cypress) other to thermal hu MSP (บริษัทผู้ผลิต Texas Instruments) 10. ไมโครคอนโทรลเลอร์ตระกูล H8 (บริษัทผู้ผลิต Renesas) 11. ไมโครคอนโทรลเลอร์ตระกูล RABBIT (บริษัทผู้ผลิต Rabbit Semiconductor) 1.3 ภาษาสําหรับไมโครคอนโทรลเลอร์ภาษาสําหรับไมโครคอนโทรลเลอร่แบ่งเป็น 3 ระดับ ดังนี้ 1. ภาษาเครื่อง (Machine Languages) 2. ภาษาระดับต่ำา (Low-level Languages) คือภาษาแอสเซมบลี (Assemble Languages) 3. ภาษาระดับสูง (High-level Languages) ที่นิยมใช้ในไมโครคอนโทรลเลอร์ คือ (1) ภาษาซี (C Languages) (2) ภาษาชีพลัสพลัส (C++ Languages) (3) ภาษาเบสิก (Basic Languages) (4) ภาษาเบสิกสแตมป์ (Basic Stamp Languages) (5) ภาษาวิชวลเบสิก (Visual Basic Languages) (6) ภาษาไพธัน (Python Languages) ภาษาต่าง ๆ เหล่านี้สามารถนำมาเขียนเป็นโปรแกรม (Program) หรือ Source Code เพื่อสั่งงาน ไมโครคอนโทรลเลอร์ได้เหมือนกัน มีข้อดีข้อเสีย ยากง่าย
8 แตกต่างกันออกไป สำหรับในหนังสือเล่มนี้ใช้ภาษา C/C++ สำหรับ Arduino เพราะว่าเป็นภาษาที่นิยม ในปัจจุบันและเป็นภาษาประเภท Open Source สามารถ พัฒนาได้ง่าย โดยเริ่มตั้งแต่หน่วยที่ 3 เป็นต้น ไป คำสั่งที่ไมโครคอนโทรลเลอร์ทำงานนั้นเป็นคำสั่งภาษาเครื่อง ซึ่งเป็นคำสั่งที่อยู่ในรูปของรหัส เลขฐานสิบหก (Hexadecimal Code) หรือไฟล์นามสกุลดอตเฮกซ์ (hex) ถ้าเขียนคำสั่งด้วยภาษาอื่น ๆ ต้องแปลงให้เป็นภาษาเครื่องก่อนนำไปดาวน์โหลดลงในไมโครคอนโทรลเลอร์ 1.4 บอร์ด Arduino คำว่า Arduino (อาร์ดูอิโน) เป็นภาษาอิตาลี เป็นชื่อโครงการพัฒนา ไมโครคอนโทรลเลอร์ตระกูล AVR ในรูปแบบ Open Source ซึ่งเป็นวิธีการออกแบบ พัฒนา และ แจกจ่ายสำหรับต้นฉบับของสินค้าหรือความรู้โดยไม่มีลิขสิทธิ์ ดังนั้นซอฟต์แวร์ที่ใช้ได้เปิดโอกาสให้บุคคล อื่นนำเอาระบบนั้นไปพัฒนาได้ต่อไป โดยใช้ไมโครคอนโทรลเลอร์ AVR ที่ขนาดเล็ก คือ ATMega8, ATMega168 ATMega328 ทำให้ได้รับความนิยม จนถึงปัจจุบันนี้ เนื่องจากใช้งานง่าย ราคาถูก สามารถ โหลดโปรแกรมจากเครื่องคอมพิวเตอร์ลงบอร์ดได้โดยตรง และมีซอฟต์แวร์ Arduino IDE เป็นตัวช่วยใน การพัฒนางาน 1.5.1 บอร์ด Arduino UNO R3 คำว่า Uno เป็นภาษาอิตาลี ซึ่งแปลว่าหนึ่ง เป็นบอร์ด Arduino รุ่นแรกที่ผลิตออกมา มี เป็น บอร์ดมาตรฐานที่นิยมใช้งานมากที่สุด เนื่องจากเป็นขนาดที่เหมาะ สำหรับการเริ่มต้นเรียนรู้ บอร์ด Arduino Uno ได้มีการพัฒนาเรื่อย ๆ ตั้งแต่ R2, R3 และรุ่นย่อยที่ เปลี่ยน chip ไอซีเป็นแบบ SMD บอร์ด Arduino Uno เป็นบอร์ด Arduino ที่ได้รับความนิยมมากที่สุด เนื่องจากราคาถูก ส่วนใหญ่โปรเจคและ Library ต่าง ๆ ที่พัฒนาขึ้นมา Support จะอ้างอิงกับบอร์ดนี้ เป็นหลัก และข้อดีอีกอย่างคือกรณีที่ MCU เสียผู้ใช้งานสามารถ ซื้อมาเปลี่ยนเองได้ง่าย Arduino Uno R3 มี MCU ที่เป็น Package DIP เช่นเบอร์ ATMega328/p เป็นต้น
9 จุดประสงค์การมอบหมายงานให้ 1. บอกความหมายของไมโครคอนโทรลเลอร์ได้ 2. อธิบายโครงสร้างไมโครคอนโทรลเลอร์ได้ 3. ระบุตระกูลของไมโครคอนโทรลเลอร์ได้ 4. บอกภาษาสำหรับไมโครคอนโทรลเลอร์ได้ 5. เลือกใช้งานบอร์ดไมโครคอนโทรลเลอร์เหมาะสมกับงานได้ แนวทางปฏิบัติงาน ก่อนเรียน ครูแนะแนวทางคำถาม ชี้แนวทางการหาคำตอบ ขณะเรียน ให้นักศึกษาอภิปรายและสรุปเกี่ยวกับพื้นฐานไมโครคอนโทรลเลอร์ หลังเรียน ให้นักเรียนไปค้นคว้าเพิ่มเติมเกี่ยวกับพื้นฐานไมโครคอนโทรลเลอร์และทำแบบฝึกหัดท้าย หน่วยเรียนหน่วยที่ 1 ส่งท้ายชั่วโมง แหล่งค้นคว้า/อ้างอิง สุชิน ชินสีห์(2563). ไมโครคอนโทรลเลอร์. นนทบุรี : โรงพิมพ์ บริษัท ศูนย์หนังสือเมืองไทยจำกัด. กำหนดเวลาส่งงาน - ท้ายชั่วโมงเรียน การประเมินผล 1. การประเมินผลโดยใช้แบบฝึกหัดหลังเรียนหน่วยที่ 1 2. สังเกตการมีส่วนร่วมในการเรียน 3. สังเกตจากการตอบคำถาม / การอภิปราย ใบมอบหมายงานที่ 1 ระดับชั้น ปวช.2 กลุ่ม ทส.2 สัปดาห์ที่1 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น ชื่อเรื่อง พื้นฐานไมโครคอนโทรลเลอร์ จำนวนชั่วโมง 3 ชั่วโมง
10 แบบฝึกหัดหน่วยที่ 1 พื้นฐานไมโครคอนโทรลเลอร์ คำชี้แจง จงตอบคำถามต่อไปนี้ให้ถูกต้อง 1. ไมโครคอนโทรลเลอร์หมายถึงอะไร .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... 2. โครงสร้างไมโครคอนโทรลเลอร์มีอะไรบ้าง .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... 3. สถาปัตยกรรมไมโครคอนโทรลเลอร์แบ่งตามการประมวผลมีอะไรบ้าง .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... 4. ภาษาสำหรับไมโครคอนโทรลเลอร์มีอะไรบ้าง .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... 5. ตระกูลของบอร์ดโดยส่วนมาก Arduino คือ .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... 6. บอร์ด Arduino มีคุณสมบัติแตกต่างกันอย่างไรบ้าง .................................................................................................................................................................................... .................................................................................................................................................................................... ....................................................................................................................................................................................
11 ข้อสรุปหลังการจัดการเรียนรู้ .............................................................................................................................................................................. .............................................................................................................................................................................. .................................................................................................................................................................................... ........................................................................................................................................................................ .................................................................................................................................................................................... ปัญหาที่พบ .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... แนวทางการแก้ปัญหา .................................................................................................................................................................................... .................................................................................................................................................................................... (นายพลวัฒน์ ผ่องแก้ว) ครูผู้สอน (นางสาวมยุรี พงษ์อาภา) หัวหน้าแผนกวิชาคอมพิวเตอร์ (นางสาวศิริวรรณ เนาว์ประโคน) รองผู้อำนวยงานฝ่ายวิชาการ บันทึกหลังการจัดการเรียนรู้ ระดับชั้น ปวช.3 กลุ่ม ทส.3 สัปดาห์ที่1 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น วันเดือนปี ชื่อเรื่อง พื้นฐานไมโครคอนโทรลเลอร์ จำนวนชั่วโมง 3 ชั่วโมง
12 แผนการจัดการเรียนรู้ หน่วยที่ 2 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น สอนครั้งที่ 2-3 ชื่อหน่วย Arduino IDE สำหรับโปรแกรมภาษา C ชั่วโมงรวม 6 ชั่วโมง ชื่อเรื่อง Arduino IDE สำหรับโปรแกรมภาษา C จำนวน 6 ชั่วโมง สาระสำคัญ IDE ย่อมาจาก Integrated Development Environment คือเครื่องมือรวมสำหรับพัฒนาโปรแกรม Arduino IDE จึงหมายถึงเครื่องมือรวมสำหรับพัฒนโปรแกรมสำหรับไมโครคอนโทรลเลอร์ในแพลตฟอร์มของ Arduino ทำให้ผู้พัฒนา (Developer) สะดวกมากขึ้น เนื่องจากภายใน Arduino IDE นั้น มีเครื่องมือประเภท Editor, Compiler และ Upload/Download ให้ผู้พัฒนาใช้อย่างครบครัน ตลอดจนมีตัวอย่างโปรแกรม ให้ศึกษา สามารถผนวก Libraries ของอุปกรณ์ใหม่ ๆ ที่มีผู้พัฒนาแล้วได้ และสามารถใช้กับบอร์ด Arduino ได้ทุกบอร์ด ภายใน Arduino IDE มีส่วนที่สำคัญ คือ แถบเมนู (MENU bar) ใช้เลือกคำสั่งต่าง ๆ ของ โปรแกรม ประกอบด้วย เมนู File, เมนู Edit, เมนู Sketch, เมนู Tools และเมนู Help ซึ่งแถบเครื่องมือ Tools bar เป็นแถบเครื่องมือนี้ ใช้สำหรับตรวจสอบไวยากรณ์ คำสั่ง ฟังก์ชัน ว่าถูกต้องหรือไม่ ตลอดจนการ compile การ upload hex file ไป ยังไมโครคอนโทรลเลอร์ การเปิดไฟล์สเก็ตใหม่ การเปิด การบันทึกไฟล์สเก็ตปัจจุบัน ประกอบด้วย Verity, Upload, New, Open และ Save สมรรถนะประจำหน่วย 1. แสดงความรู้เกี่ยวกับซอฟต์แวร์ Arduino IDE สำหรับโปรแกรมภาษา C 2. แสดงการติดตั้งซอฟต์แวร์ Arduino IDE ลงในคอมพิวเตอร์ 3. แสดงการผนวก Libraries เพิ่มเติมลงในซอฟต์แวร์ Arduino IDE จุดประสงค์การเรียนรู้ประจำหน่วย จุดประสงค์ทั่วไป 1 เพื่อให้นักเรียนอธิบายหน้าที่ของซอฟต์แวร์ Arduino IDE 2 เพื่อให้นักเรียนอธิบายขั้นตอนการติดตั้งซอฟต์แวร์ Arduino IDE 3 เพื่อให้นักเรียนบอกคำเต็มของคำย่อ IDE 4 เพื่อให้นักเรียนอธิบายวิธีทดสอบซอฟต์แวร์ Arduino IDE 5 เพื่อให้นักเรียนรู้จักบอร์ดไมโครคอนโทรลเลอร์ จุดประสงค์เชิงพฤติกรรม 1. อธิบายหน้าที่ของซอฟต์แวร์ Arduino IDE ได้
13 2. บอกคำเต็มของคำย่อ IDE ได้ 3. อธิบายขั้นตอนการติดตั้งซอฟต์แวร์ Arduino IDE ได้ 4. ระบุเว็บไซต์สำหรับดาวน์โหลดซอฟต์แวร์ Arduino IDE ได้ 5. อธิบาย Menu bar ของ Arduino IDE ได้ 6. อธิบาย เมนูต่างๆ ที่อยู่ใน Menu bar ของ Arduino IDE ได้ 7. อธิบาย Tools bars ของ Arduino IDE ได้ 8. อธิบาย เมนูต่างๆที่อยู่ใน Tools bar ของ Arduino IDE ได้ 9. อธิบายวิธีทดลองซอฟต์แวร์ Arduino IDE ได้ 10. อธิบายวิธีผนวก Libraries ลงในซอฟต์แวร์ Arduino IDE ได้
14 กิจกรรมการเรียนรู้ ขั้นตอนการสอน (กิจกรรมของครู) ขั้นตอนการเรียน (กิจกรรมผู้เรียน) เครื่องมือ/การวัดผล ประเมินผล 1ขั้นนำเข้าสู่บทเรียน 11 ครูบอกจุดประสงค์ของการเรียนใน บทเรียนนี้ 1.2 ครูเปิดประเด็นคำถามเกี่ยวกับ Arduino IDE สำหรับโปรแกรม ภาษา C 11 นักเรียนรับฟังจุดประสงค์ของการ เรียนในบทเรียนนี้ 12 นักเรียนตอบคำถาม Arduino IDE สำหรับ โปรแกรมภาษา C 1 คำถามประจำหน่วย - การตอบคำถามแบบสุ่มถามเพื่อ กระตุ้นผู้เรียน 2 ขั้นสอนทฤษฎี 21 ครูอธิบาย Arduino IDE สำหรับ โปรแกรมภาษา C 22 ซักถามปัญหาเกี่ยวกับ Arduino IDE สำหรับโปรแกรมภาษา C 21 รับฟังคำบรรยาย 22 ตอบคำถามและแสดงความคิดเห็น 1สื่อนำเสนอ Canva หน่วยที่ 2 2 คำถามหน่วยที่ 2 3 ขั้นสรุป 31 ครูและนักเรียนช่วยกันสรุปและ ครูซักถามปัญหาข้อสงสัย 31 นักเรียนช่วยครูสรุปและตอบคำถาม 32 จดบททึกย่อ 1 ใบสรุปหน่วยที่ 2 4 ขั้นสอนปฏิบัติ (หน่วยนี้ไม่มีปฏิบัติ) 5 ขั้นการประเมินผล 51 ครูแจกใบประเมินผลหลังเรียน หน่วยที่ 2 52 ดูแลนักเรียนไม่ให้ทุจริต 53 เมื่อครบเวลาที่กำหนดรับ แบบทดสอบคืน 51 รับใบประเมินผลหลังเรียนหน่วยที่ 1 52 ทำแบบทดสอบหลังเรียน 53 เมื่อครบเวลาที่กำหนดส่งแบบทดสอบคืน 1 แบบทดสอบหลังเรียน หน่วยที่ 2 6 ขั้นมอบหมายงาน 61 ให้นักเรียนไปค้นคว้าเพิ่มเติม เกี่ยวกับพื้นฐานไมโครคอนโทรลเลอร์ 61 รับมอบหมายงาน 1 ใบมอบงานหน่วยที่ 2 7 ขั้นตรวจสอบความเรียบร้อย 71 ตรวจความเรียบร้อยและความ เรียบร้อยของห้องเรียนห้องปฏิบัติงาน 71 ช่วยกันจัดเก็บและทำความสะอาด ห้องเรียนห้องปฏิบัติงานให้เรียบร้อย 1ใบตรวจสอบความ เรียบร้อย
15 สื่อการเรียนรู้และแหล่งการเรียนรู้ สื่อสิ่งพิมพ์ - สุชิน ชินสีห์(2563) ไมโครคอนโทรลเลอร์ นนทบุรี : โรงพิมพ์ บริษัท ศูนย์หนังสือเมืองไทย จำกัด สื่ออื่นๆ - สื่อนำเสนอ Canva หลักฐานการเรียนรู้ที่ต้องการ หลักฐานความรู้ งานแบบฝึกหัดหน่วยที่ 2 หลักฐานการปฏิบัติงาน คะแนนงานแบบฝึกหัดหน่วยที่ 2 การวัดและประเมินผล การวัดผล (ใช้เครื่องมือ) การประเมินผล (นำผลเทียบกับเกณฑ์และแปลความหมาย) 1 แบบฝึกหัดหน่วยที่ 2 เกณฑ์ผ่าน 50% 2 แบบประเมินคุณธรรม จริยธรรม ตามสภาพจริง เกณฑ์ผ่าน 50% การบูรณาการหลักปรัชญาเศรษฐกิจพอเพียงสู่แผนการจัดการเรียนรู้ การถอดรหัสปรัชญาของเศรษฐกิจพอเพียง การพัฒนาโปรแกรมด้วยเทคโนโลยีดอตเน็ต พอประมาณ มีเหตุผล มีภูมิคุ้มกัน - นักศึกษามีความพอประมาณใน การใชอุปกรณการเรียน - นักศึกษาใชเหตุผลในการ ทำกิจกรรม - นักศึกษาทำงานอยางมีระเบียบวินัยในการ เรียนไมกอความวุนวาย เงื่อนไขความรู้ เงื่อนไขคุณธรรม - นักศึกษามีความรูเกี่ยวกับเนื้อหาในบทเรียน - นักศึกษารูจักความรักและความสามัคคีในเพื่อนรวมหอง เวลามีปญหาในการทำงาน - ชวยกันแกไขขอผิดพลาดที่เกิดขึ้นเบื้องตนกอนถาแกไขไม ไดจึงเรียกอาจารย
16 ครอบคลุม 4 มิติ วัตถุ สังคม สิ่งแวดล้อม วัฒนธรรม - สื่อ วัสดุ อุปกรณ์ - แบบทดสอบ - ใบมอบหมายงาน - ใบปฏิบัติงาน - การช่วยเหลือ เพื่อนในกลุ่ม - การแลกเปลี่ยน เรียนรู้ในชั้นเรียน - การร่วมกิจกรรม - รักษาความสะอาด ของห้องเรียน - จัดโต๊ะให้เหมาะสม - ปิดไฟ พัดลม ก่อนออกจากห้อง - อนุรักษ์ สิ่งแวดล้อม - การอยู่ร่วมกัน ในสังคม
17 เนื้อหาสาระ หน่วยที่ 2 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น สอนครั้งที่ 2-3 ชื่อหน่วย Arduino IDE สำหรับโปรแกรมภาษา C ชั่วโมงรวม 6 ชั่วโมง ชื่อเรื่อง Arduino IDE สำหรับโปรแกรมภาษา C จำนวน 6 ชั่วโมง หน่วยที่ 2 Arduino IDE สำหรับโปรแกรมภาษา C การติดตั้งซอฟต์แวร์ Arduino IDE มีขั้นตอนพื้นฐานที่ต้องทำตามดังนี้: • ดาวน์โหลด Arduino IDE: o ไปที่เว็บไซต์ของ Arduino ที่https://wwwarduinocc/en/Main/Software o เลือกเวอร์ชันของ Arduino IDE ที่เหมาะกับระบบปฏิบัติการของคุณ (Windows, macOS, หรือ Linux) และดาวน์โหลดไฟล์ติดตั้ง • ติดตั้ง Arduino IDE: o บน Windows: เปิดไฟล์ติดตั้งที่ดาวน์โหลดไว้ (exe) และทำตามขั้นตอนการติดตั้งที่แสดงบน หน้าต่างติดตั้ง o บน macOS: เปิดไฟล์ ZIP ที่ดาวน์โหลดแล้วลากไปยังโฟลเดอร์ "Applications" เพื่อติดตั้ง o บน Linux: สามารถใช้ terminal เพื่อแตกไฟล์ ZIP และรันสคริปต์ติดตั้ง • เปิด Arduino IDE: o เมื่อติดตั้งเสร็จสิ้น, เปิด Arduino IDE ที่ติดตั้งไว้บนระบบปฏิบัติการของคุณ • ตั้งค่าบอร์ด Arduino: o ไปที่เมนู "Tools" และเลือก "Board" เลือกบอร์ด Arduino ที่คุณกำลังใช้ o หากใช้ Arduino ที่ไม่ได้รับการสนับสนุนโดยตรง, คุณอาจต้องเพิ่มบอร์ดดังกล่าวโดยใช้ "Boards Manager" ที่เป็นส่วนขยายของ Arduino IDE • ตรวจสอบพอร์ต (Port): o ไปที่เมนู "Tools" และเลือก "Port" เลือกพอร์ตที่เชื่อมต่อกับ Arduino ของคุณ • ทดสอบการเชื่อมต่อ: o เลือก "File" > "Examples" > "01Basics" > "Blink" เพื่อเปิดโค้ดที่ใช้ในการทดสอบ o กดปุ่ม "Upload" (ปุ่มลูกศรสีดำที่ด้านบน) เพื่ออัปโหลดโปรแกรมลงในบอร์ด Arduino • ดูผลลัพธ์: หลังจากที่โปรแกรมถูกอัปโหลด, คุณควรเห็น LED บนบอร์ด Arduino กระพริบไปมาตามโค้ดทดสอบ
18 Arduino IDE มีแถบเมนูที่ช่วยให้คุณเข้าถึงความสามารถต่าง ๆ ของโปรแกรมได้ง่ายมาก แถบเมนูหลัก ประกอบด้วยหลายเมนูที่มีคำสั่งต่าง ๆ ดังนี้: 1. File: • New: เริ่มโปรแกรมใหม่ • Open: เปิดโปรแกรมที่มีอยู่ • Examples: ดูและโหลดตัวอย่างโปรแกรมต่าง ๆ • Close: ปิดโปรแกรมที่เปิดอยู่ • Save: บันทึกโปรแกรม • Save As: บันทึกโปรแกรมเป็นไฟล์ใหม่ • Preferences: ตั้งค่าที่เกี่ยวข้องกับ Arduino IDE 2. Edit: • Undo/Redo: ยกเลิก/ทำซ้ำคำสั่ง • Cut/Copy/Paste: ตัด/คัดลอก/วาง • Find/Replace: ค้นหา/แทนที่ข้อความ • Select All: เลือกทั้งหมด 3. Sketch: • Verify/Compile: ตรวจสอบโค้ดก่อนที่จะอัปโหลด • Upload: อัปโหลดโปรแกรมลงในบอร์ด Arduino • Export Compiled Binary: ส่งออกไบนารีที่คอมไพล์เป็นไฟล์ hex • Show Sketch Folder: เปิดโฟลเดอร์ที่บันทึกโปรแกรม • Import Library: เพิ่มไลบรารี 4. Tools: • Board: เลือกบอร์ด Arduino ที่ใช้ • Port: เลือกพอร์ตที่เชื่อมต่อกับ Arduino • Serial Monitor: เปิดตัวโปรแกรม Serial Monitor • Auto Format: จัดรูปแบบโค้ดอัตโนมัติ • Fix Encoding & Reload: แก้ไขการเข้ารหัสและโหลดโปรแกรมใหม่ • External Tools: เรียกใช้เครื่องมือภายนอก 5. Help:
19 • Getting Started: ข้อมูลเบื้องต้นเกี่ยวกับ Arduino IDE • Reference: คู่มือและเอกสารเทคนิค • Forum: เข้าร่วมชุมชน Arduino • Donate: บริจาคสนับสนุน Arduino • Check for Updates: ตรวจสอบการอัปเดตของ Arduino IDE แถบเครื่องมือ (Toolbar) ใน Arduino IDE มีเครื่องมือที่ช่วยให้ผู้ใช้เข้าถึงคำสั่งที่ใช้งานบ่อยได้อย่างรวดเร็ว เครื่องมือที่อาจปรากฏในแถบเครื่องมือ ได้แก่ • Verify/Compile : ใช้ในการตรวจสอบโค้ด (Verify) หรือคอมไพล์โปรแกรม Arduino ของคุณเพื่อ ตรวจสอบว่ามีข้อผิดพลาดหรือไม่ • Upload : ใช้ในการอัปโหลดโปรแกรมลงในบอร์ด Arduino ที่เชื่อมต่อ • New : สร้างโปรแกรมใหม่ • Open : เปิดโปรแกรมที่มีอยู่ • Save : บันทึกโปรแกรม นอกจากนี้ แถบเครื่องมือยังสามารถปรับแต่งได้ตามต้องการ โดยคลิกขวาที่แถบเครื่องมือแล้วเลือก Customize จากนั้นเลือกคำสั่งที่ต้องการเพิ่มหรือลบออกจากแถบเครื่องมือ รายละเอียดของเครื่องมือแต่ละตัวมีดังนี้ Verify/Compile เครื่องมือนี้ใช้ในการตรวจสอบความถูกต้องของโปรแกรม Arduino ของคุณ โดยจะทำการตรวจสอบ โครงสร้างของโค้ดว่าถูกต้องตามไวยากรณ์หรือไม่ หากไม่มีข้อผิดพลาด โปรแกรมจะได้รับการคอมไพล์และพร้อม สำหรับการอัปโหลดไปยังบอร์ด Arduino Upload เครื่องมือนี้ใช้ในการอัปโหลดโปรแกรมที่คอมไพล์แล้วไปยังบอร์ด Arduino ที่คุณเชื่อมต่ออยู่ เมื่ออัปโหลดสำเร็จ โปรแกรมจะเริ่มทำงานบนบอร์ด Arduino New เครื่องมือนี้ใช้ในการสร้างโปรแกรมใหม่เปล่าๆ คุณสามารถเริ่มต้นเขียนโปรแกรมของคุณได้ทันที Open เครื่องมือนี้ใช้ในการเปิดโปรแกรมที่มีอยู่ หากคุณมีโปรแกรม Arduino ที่เคยเขียนไว้แล้ว คุณ สามารถเปิดโปรแกรมนั้นขึ้นมาเพื่อแก้ไขหรือปรับปรุงได้ Save เครื่องมือนี้ใช้ในการบันทึกโปรแกรมของคุณ สามารถบันทึกโปรแกรมเป็นชื่อเดิมหรือชื่อใหม่ได้ ผู้ใช้ควรทำความคุ้นเคยกับเครื่องมือในแถบเครื่องมือให้เป็นอย่างดี เพื่อช่วยให้การทำงานกับ Arduino IDE มี ประสิทธิภาพยิ่งขึ้น
20 จุดประสงค์การมอบหมายงานให้ 1. อธิบายหน้าที่ของซอฟต์แวร์ Arduino IDE ได้ 2. บอกคำเต็มของคำย่อ IDE ได้ 3. อธิบายขั้นตอนการติดตั้งซอฟต์แวร์ Arduino IDE ได้ 4. ระบุเว็บไซต์สำหรับดาวน์โหลดซอฟต์แวร์ Arduino IDE ได้ 5. อธิบาย Menu bar ของ Arduino IDE ได้ 6. อธิบาย เมนูต่างๆ ที่อยู่ใน Menu bar ของ Arduino IDE ได้ 7. อธิบาย Tools bars ของ Arduino IDE ได้ 8. อธิบาย เมนูต่างๆที่อยู่ใน Tools bar ของ Arduino IDE ได้ 9. อธิบายวิธีทดลองซอฟต์แวร์ Arduino IDE ได้ 10. อธิบายวิธีผนวก Libraries ลงในซอฟต์แวร์ Arduino IDE ได้ แนวทางปฏิบัติงาน ก่อนเรียน ครูแนะแนวทางคำถาม ชี้แนวทางการหาคำตอบ ขณะเรียน ให้นักศึกษาอภิปรายและสรุปเกี่ยวกับ Arduino IDE สำหรับโปรแกรมภาษา C หลังเรียน ให้นักเรียนไปค้นคว้าเพิ่มเติมเกี่ยวกับ Arduino IDE สำหรับโปรแกรมภาษา C และทำใบงาน หน่วยเรียนหน่วยที่ 2 ส่งท้ายชั่วโมง แหล่งค้นคว้า/อ้างอิง สุชิน ชินสีห์(2563) ไมโครคอนโทรลเลอร์ นนทบุรี : โรงพิมพ์ บริษัท ศูนย์หนังสือเมืองไทยจำกัด กำหนดเวลาส่งงาน ใบมอบหมายงานที่ 2 ระดับชั้น ปวช2 กลุ่ม ทส2 สัปดาห์ที่2-3 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น ชื่อเรื่อง Arduino IDE สำหรับโปรแกรมภาษา C จำนวนชั่วโมง 6 ชั่วโมง
21 - ท้ายชั่วโมงเรียน การประเมินผล 1 การประเมินผลโดยใช้ใบงานหน่วยที่ 2 2 สังเกตการมีส่วนร่วมในการเรียน 3 สังเกตจากการตอบคำถาม / การอภิปราย
22 ใบงานหน่วยที่ 2 Arduino IDE สำหรับโปรแกรมภาษา C คำชี้แจง จงตอบคำถามต่อไปนี้ให้ถูกต้อง 1. Arduino IDE ทำหน้าที่อะไร 2. สามารถหาแหล่งติดตั้งซอฟต์แวร์ Arduino IDE ได้จากที่ใด 3. IDE ย่อมาจากอะไร 4. ยกตัวอย่างLibraries ผนวกเพิ่มเติมมาอย่างน้อย 5 ตัวอย่าง 5. จากโปรแกรมต่อไปนี้ int led = 13; void setup() { pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); } ผลการทำงานของโปรแกรมเป็นอย่างไร 6. เขียนคำสั่งพร้อมความหมายมา 10 คำสั่ง
23 ข้อสรุปหลังการจัดการเรียนรู้ .............................................................................................................................................................................. .............................................................................................................................................................................. .................................................................................................................................................................................... ........................................................................................................................................................................ .................................................................................................................................................................................... ปัญหาที่พบ .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... แนวทางการแก้ปัญหา .................................................................................................................................................................................... .................................................................................................................................................................................... (นายพลวัฒน์ ผ่องแก้ว) ครูผู้สอน (นางสาวมยุรี พงษ์อาภา) หัวหน้าแผนกวิชาคอมพิวเตอร์ (นางสาวศิริวรรณ เนาว์ประโคน) รองผู้อำนวยงานฝ่ายวิชาการ บันทึกหลังการจัดการเรียนรู้ ระดับชั้น ปวช.3 กลุ่ม ทส.3 สัปดาห์ที่2-3 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น วันเดือนปี ชื่อเรื่อง Arduino IDE สำหรับโปรแกรมภาษา C จำนวนชั่วโมง 6 ชั่วโมง
24 แผนการจัดการเรียนรู้ หน่วยที่ 3 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น สอนครั้งที่ 4-5 ชื่อหน่วย โปรแกรมภาษา C สำหรับ Arduino ชั่วโมงรวม 6 ชั่วโมง ชื่อเรื่อง โปรแกรมภาษา C สำหรับ Arduino จำนวน 6 ชั่วโมง สาระสำคัญ การพัฒนาโปรแกรมสำหรับไมโครคอนโทรลเลอร์ นิยมใช้ภาษา C(/C+ + เนื่องจากมีโครงสร้างที่ยืดหยุ่น สามารถเขียนและพัฒนาได้ง่าย ปัจจุบันเป็นที่นิยมในการใช้งานบอร์ดไมโครคอนโทรลเลอร์ Arduino ดังนั้น ผู้เรียนจะต้องเข้าใจ โครงสร้างของโปรแกรมภาษา Cตัวแปรในภาษาซีสำหรับ Arduino คำสั่งควบคุม ทิศทางการ ทำงาน ตัวกระทำทางคณิตศาสตร์ ตัวกระทำทางลอจิกหรือตัวกระทำระดับบิต ตัวกระทำตรรกะ ตัวกระทำผสม ไวยากรณ์ภาษา C สำหรับ Arduino คำสงวนของภาษา C สำหรับ Arduino จึงจะถือว่าเป็นผู้มี ความรู้ด้าน ไมโครคอนโทรลเลอร์ โครงสร้างโปรแกรมภาษา C ของ Arduino ประกอบไปด้วย 3 ส่วน ได้แก่ ส่วนหัวโปรแกรม (header) ซึ่งมีสองส่วนย่อย ได้แก่พรึโปรเซสเซอร์ไดเร็กทีฟ (Preprocessor directives) และส่วนของการ กำหนดค่า (Global declarations) ส่วนโปรแกรมย่อย (sub-program) และ ส่วนของ โปรแกรมหลัก (main program) ชนิดของตัวแปรในภาษา C ตัวแปรในภาษา C แบ่งเป็นตัวแปรที่ใช้เก็บค่าตัวเลขและบูลีน เช่น Boolean, byte, int, unsigned, int, long, unsigned, long, float, double ตัวแปรที่ ใช้เก็บตัวอักษรและ ข้อความ เช่น char string และยังมีตัวแปรแบบ array และตัวแปร pointer การควบคุม ทิศทางทำงานแบบมี เงื่อนไข ประกอบด้วยคำสั่ง if , if...else..... if…else if...else.... และ switch. .case. คำสั่งควบคุมทิศทางการวน ระบบในภาษา c ประกอบด้วย while, do while และคำสั่ง for ตัวกระทำ ทางคณิตศาสตร์ประกอบด้วยตัว กระทำ 5 ตัวคือ + (บวก), - (ลบ), " (คู ณ), / (หาร) และ % (หารเอาเศษ) ตัวกระทำการเปรียบเทียบในภาษา C มี อยู่ด้วยกัน 6 ตัวกระทำ คือ >, <, >=, <=, == และ != ตัวกระทำ ทางลอจิกหรือตัวกระทำระดับบิตในภาษา C มี อยู่ด้วยกัน 6 ตัวกระทำได้แก่ &, I, ^, ~, << และ >> ตัวกระทำผสมในภาษา C มีอยู่ด้วยกัน 9 ตัวกระทำ ได้แก่++; , +=; =, *=,/=, %=, &= และ = สมรรถนะประจำหน่วย 1. แสดงความรู้เกี่ยวกับโครงสร้างของโปรแกรมภาษา C สำหรับ Arduino 2. แสดงความรู้เกี่ยวกับตัวแปร คำสั่งควบคุมการทำงานของภาษา C สำหรับ Arduino 3. แสดงความรู้เกี่ยวกับตัวกระทำต่างๆของโปรแกรมภาษา C สำหรับ Arduino
25 จุดประสงค์การเรียนรู้ประจำหน่วย จุดประสงค์ทั่วไป 1. เพื่อให้นักเรียนอธิบายโครงสร้างของโปรแกรมภาษา C สำหรับ Arduino 2. เพื่อให้นักเรียนระบุชนิดของตัวแปรของโปรแกรมภาษา C สำหรับ Arduino 3. เพื่อให้นักเรียนเลือกใช้ตัวแปรของโปรแกรมภาษา C สำหรับ Arduino ให้เหมาะสม 4. เพื่อให้นักเรียนอธิบายการใช้คำสั่งควบคุมทิศทางการทำงานแบบมีเงื่อนไข 5. เพื่อให้นักเรียนอธิบายการใช้คำสั่งควบคุมทิศทางการวนลูป 6. เพื่อให้นักเรียนอธิบายการใช้เครื่องหมายต่างๆของตัวกระทำทางคณิตศาสตร์ 7. เพื่อให้นักเรียนอธิบายการใช้เครื่องหมายต่างๆของตัวกระทำทางลอจิกหรือตัวกระทำระดับบิต 8. เพื่อให้นักเรียนอธิบายการใช้เครื่องหมายต่างๆของตัวกระทำตรรกะ 9. เพื่อให้นักเรียนอธิบายการใช้เครื่องหมายต่างๆของตัวกระทำผสม 10. เพื่อให้นักเรียนอธิบายการเขียนไวยากรณ์ของภาษา C 11. เพื่อให้นักเรียนเขียนคำสั่งภาษา C สำหรับ Arduino จุดประสงค์เชิงพฤติกรรม 1. อธิบายโครงสร้างของโปรแกรมภาษา C สำหรับ Arduino ได้ 2. ระบุชนิดของตัวแปรของโปรแกรมภาษา C สำหรับ Arduino ได้ 3. เลือกใช้ตัวแปรของโปรแกรมภาษา C สำหรับ Arduino ให้เหมาะสมได้ 4. อธิบายการใช้คำสั่งควบคุมทิศทางการทำงานแบบมีเงื่อนไข ได้ 5. อธิบายการใช้คำสั่งควบคุมทิศทางการวนลูปได้ 6. อธิบายการใช้เครื่องหมายต่างๆของตัวกระทำทางคณิตศาสตร์ได้ 7. อธิบายการใช้เครื่องหมายต่างๆของตัวกระทำทางลอจิกหรือตัวกระทำระดับบิตได้ 8. อธิบายการใช้เครื่องหมายต่างๆของตัวกระทำตรรกะได้ 9. อธิบายการใช้เครื่องหมายต่างๆของตัวกระทำผสมได้ 10. อธิบายการเขียนไวยากรณ์ของภาษา C ได้ 11. เขียนคำสั่งภาษา C สำหรับ Arduino ได้
26 กิจกรรมการเรียนรู้ ขั้นตอนการสอน (กิจกรรมของครู) ขั้นตอนการเรียน (กิจกรรมผู้เรียน) เครื่องมือ/การวัดผล ประเมินผล 1.ขั้นนำเข้าสู่บทเรียน 1.1 ครูบอกจุดประสงค์ของการเรียนใน บทเรียนนี้ 1.2 ครูเปิดประเด็นคำถามเกี่ยวกับ โปรแกรมภาษา C สำหรับ Arduino 1.1 นักเรียนรับฟังจุดประสงค์ของการ เรียนในบทเรียนนี้ 1.2 นักเรียนตอบคำถาม โปรแกรมภาษา C สำหรับ Arduino 1. คำถามประจำหน่วย - การตอบคำถามแบบสุ่มถามเพื่อ กระตุ้นผู้เรียน 2. ขั้นสอนทฤษฎี 2.1 ครูอธิบาย โปรแกรมภาษา C สำหรับ Arduino 2.2 ซักถามปัญหาเกี่ยวกับ โปรแกรม ภาษา C สำหรับ Arduino 2.1 รับฟังคำบรรยาย 2.2 ตอบคำถามและแสดงความคิดเห็น 1.สื่อนำเสนอ Canva หน่วยที่ 3 2. คำถามหน่วยที่ 3 3. ขั้นสรุป 3.1 ครูและนักเรียนช่วยกันสรุปและ ครูซักถามปัญหาข้อสงสัย 3.1 นักเรียนช่วยครูสรุปและตอบคำถาม 3.2 จดบททึกย่อ 1. ใบสรุปหน่วยที่ 3 4. ขั้นสอนปฏิบัติ (หน่วยนี้ไม่มีปฏิบัติ) 5. ขั้นการประเมินผล 5.1 ครูแจกใบประเมินผลหลังเรียน หน่วยที่ 1 5.2 ดูแลนักเรียนไม่ให้ทุจริต 5.3 เมื่อครบเวลาที่กำหนดรับ แบบทดสอบคืน 5.1 รับใบประเมินผลหลังเรียนหน่วยที่ 3 5.2 ทำแบบทดสอบหลังเรียน 5.3 เมื่อครบเวลาที่กำหนดส่งแบบทดสอบคืน 1. แบบทดสอบหลังเรียน หน่วยที่ 3 6. ขั้นมอบหมายงาน 6.1 ให้นักเรียนไปค้นคว้าเพิ่มเติม เกี่ยวกับโปรแกรมภาษา C สำหรับ Arduino 6.1 รับมอบหมายงาน 1. ใบมอบงานหน่วยที่ 3 7. ขั้นตรวจสอบความเรียบร้อย 7.1 ตรวจความเรียบร้อยและความ เรียบร้อยของห้องเรียนห้องปฏิบัติงาน 7.1 ช่วยกันจัดเก็บและทำความสะอาด ห้องเรียนห้องปฏิบัติงานให้เรียบร้อย 1.ใบตรวจสอบความ เรียบร้อย
27 สื่อการเรียนรู้และแหล่งการเรียนรู้ สื่ออื่นๆ - สื่อนำเสนอ Canva หลักฐานการเรียนรู้ที่ต้องการ หลักฐานความรู้ ใบงานหน่วยที่ 3 หลักฐานการปฏิบัติงาน คะแนนใบงานหน่วยที่ 3 การวัดและประเมินผล การวัดผล (ใช้เครื่องมือ) การประเมินผล (นำผลเทียบกับเกณฑ์และแปลความหมาย) 1. แบบฝึกหัดหน่วยที่ 3 เกณฑ์ผ่าน 50% 2. แบบประเมินคุณธรรม จริยธรรม ตามสภาพจริง เกณฑ์ผ่าน 50% การบูรณาการหลักปรัชญาเศรษฐกิจพอเพียงสู่แผนการจัดการเรียนรู้ การถอดรหัสปรัชญาของเศรษฐกิจพอเพียง การพัฒนาโปรแกรมด้วยเทคโนโลยีดอตเน็ต พอประมาณ มีเหตุผล มีภูมิคุ้มกัน - นักศึกษามีความพอประมาณใน การใชอุปกรณการเรียน - นักศึกษาใชเหตุผลในการ ทำกิจกรรม - นักศึกษาทำงานอยางมีระเบียบวินัยในการ เรียนไมกอความวุนวาย เงื่อนไขความรู้ เงื่อนไขคุณธรรม - นักศึกษามีความรูเกี่ยวกับเนื้อหาในบทเรียน - นักศึกษารูจักความรักและความสามัคคีในเพื่อนรวมหอง เวลามีปญหาในการทำงาน - ชวยกันแกไขขอผิดพลาดที่เกิดขึ้นเบื้องตนกอนถาแกไขไม ไดจึงเรียกอาจารย ครอบคลุม 4 มิติ วัตถุ สังคม สิ่งแวดล้อม วัฒนธรรม - สื่อ วัสดุ อุปกรณ์ - การช่วยเหลือ - รักษาความสะอาด - อนุรักษ์
28 - แบบทดสอบ - ใบมอบหมายงาน - ใบปฏิบัติงาน เพื่อนในกลุ่ม - การแลกเปลี่ยน เรียนรู้ในชั้นเรียน - การร่วมกิจกรรม ของห้องเรียน - จัดโต๊ะให้เหมาะสม - ปิดไฟ พัดลม ก่อนออกจากห้อง สิ่งแวดล้อม - การอยู่ร่วมกัน ในสังคม
29 เนื้อหาสาระ หน่วยที่ 3 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น สอนครั้งที่ 4-5 ชื่อหน่วย โปรแกรมภาษา C สำหรับ Arduino ชั่วโมงรวม 6 ชั่วโมง ชื่อเรื่อง โปรแกรมภาษา C สำหรับ Arduino จำนวน 6 ชั่วโมง หน่วยที่ 3 โปรแกรมภาษา C สำหรับ Arduino โครงสร้างภาษา C การเขียนโปรแกรมภาษา C/C++ สำหรับ Arduino มีโครงสร้างพื้นฐานของภาษาคล้ายกับภาษา C ประกอบไปด้วย 3 ส่วน คือ 3.1.1 ส่วนหัวโปรแกรม (header) ส่วนหัวโปรแกรมภาษา C ของ Arduino ประกอบด้วยสองส่วน ได้แก่ 1. พรีโปรเซสเซอร์ไดเร็กทีฟ (Preprocessor directives) ส่วนนี้จะเป็นส่วนที่คอมไพเลอร์จะมีการประมวลผลและ ทำตามคำสั่งก่อนที่จะมีการคอมไพส์ โปรแกรม (Compile) โดยจะเริ่มต้นด้วยเครื่องหมายไดเรกทีฟ (directive) หรือเครื่องหมายสี่เหลี่ยม # ตามด้วย ชื่อคำสั่งที่ต้องการเรียกใช้ หรือที่กำหนด โดยปกติแล้วส่วนนี้จะอยู่ในส่วนบน สุด หรือส่วนหัวของโปรแกรมและต้อง อยู่นอกฟังก์ชันหลัก การอ้างอิงไฟล์จากภายใน หรือการอ้างอิงไฟล์ใลบารีที่ มีอยู่แล้วใน Arduino หรือเป็นไลบารี ที่เราเพิ่มเข้าไปเอง จะใช้เครื่องหมาย ในการคร่อมชื่อไฟล์ไว้ เพื่อให้ โปรแกรมคอมไพเลอร์เข้าใจว่าควรไปหา ไฟล์เหล่านี้จกในโฟลเดอร์ไลบารี แต่หากต้องการอ้างอิงไฟล์ที่อยู่ใน โฟลเดอร์โปรเจ จะต้องใช้เครื่องหมาย คร่อมแทน ซึ่งคอมไพเลอร์จะวิ่งไปหาไฟล์นี้โดยอ้างอิงจากไฟโปรแกรมที่ คอมไพเสอร์อยู่ ตัวอย่างเช่น #include <Wire.h> #include <Adafruit GFX,h> #include <ESP Adafruit SSD1306.h> #define OLED RESET 4 #include <Adafruit NeoPixeL.h> #define NUMSLEDs 2 #define PINSLEDs 10 #include <SoftwareSerial.h> 2. ส่วนของการกำหนดค่า (Global declarations) ส่วนนี้จะเป็น ส่วนที่ใช้ในการกำหนดชนิดตัวแปรแบบนอกฟังก์ชัน หรือประกาศฟังก์ชัน เพื่อให้ ฟังก์ชันที่ประกาศสามารถ กำหนด หรือเรียกใช้ได้จากทุกส่วนของโปรแกรม เช่น int sensorPin1 = 11; int sensorPin2 - 12; int sensorPin3= 13; int ledPin = 10; int spPin = 8; int sensorPin3 = 13; void bling(void) 3.1.2 ส่วนโปรแกรมย่อย (sub-program) โปรแกรมย่อยตามโครงสร้างโปรแกรมภาษา C สำหรับ Arduino ที่บังคับให้มีในทุก ๆ โปรแกรม คือฟังก์ชัน void setup0 จะทำงานรอบเตียวตอนเริ่มต้นทำงานของ โปรแกรมครั้งแรกเท่านั้น ได้แก่ คำสั่งเกี่ยวกับการ setup ค่าการทำงานต่าง ๆ เช่น การกำหนดหน้าที่การใช้งาน ของ pinMode และการ กำหนดค่า Baud rate สำหรับใช้งานพอร์ตสื่อสารอนุกรม เป็นต้น การตั้งค่าใน void
30 setup() อาจมากหรือ น้อยขึ้นอยู่กับจำนวนพอร์ตที่ใช้งานและความขับซ้อนของโปรแกรมที่เขียนขึ้น นอกเหนือจากฟังก์ชัน void setup() แล้ว ผู้เขียนโปรแกรมสมารถเขียนโปรแกรมย่อยอื่น ๆ ไว้เพื่อสะดวกต่อใช้ งาน 3.1.3 ส่วนโปรแกรมหลัก (main program) ในส่วนโปรแกรมหลักของโปรแกรมภาษา C สำหรับ Arduino เป็นส่วนบังคับที่ต้องกำหนดให้มี ในทุก ๆ โปรแกรม โดยใช้ฟังก์ชัน void Loop() ซึ่งบรรจุคำสั่งที่ ต้องการให้โปรแกรมทำงานวนรอบทำซ้ำ ๆ กัน ไปไม่รู้จบภายในเครื่องหมาย { } 3.2 ตัวแปรในภาษาซีสำหรับ Arduino การประกาศตัวแปรในภาษา C เป็นการจองพื้นที่ในหน่วยความจำเพื่อใช้งานในโปรแกรม การประกาศ ตัวแปรแทนการกำหนดแอดเดรสของหน่วยความจำ รูปแบบของตัวแปรเป็นตังนี้ ชนิดของตัวแปร ชื่อของตัวแปร หรือ ชนิดของตัวแปร ชื่อของตัวแปร1, ชื่อของตัวแปร2, ชื่อของตัวแปร... หรือ ชนิดของตัวแปร ชื่อของตัวแปร = ค่าเริ่มต้น 3.2.1 การตั้งชื่อตัวแปรในภาษา C การตั้งชื่อตัวแปรในภาษา C ต้องคำนึงในสิ่งต่อไปนี้ 1. ตัวแรกของชื่อ ตัวแปรต้องเป็นตัวอักษร ส่วนตัวถัดไปเป็นตัวเลขได้ 2.ชื่อตัวแปรต้องไม่เว้นวรรค 3. ตัวอักษรพิมพ์เล็กกับพิมพ์ ใหญ่ถือว่าเป็นตัวแปรต่างกัน 4. ชื่อของตัวแปรต้องไม่ซ้ำกับคำสงวนในภาษา C 3.2.2 ชนิดของตัวแปรในภาษา C ตัวแปรในภาษา C แบ่งได้ดังนี้ 1. ตัวแปรที่ใช้เก็บค่าตัวเลขและบูลีน ตัวการกำหนดตัวแปรชนิดนี้ เป็นการกำหนดตัวแปรใช้เก็บค่าตัวเลขและบูลีน ให้เหมาะสมกับค่าที่ใช้งาน
31 (1) boolean เป็นตัวแปรสำหรับเก็บค่าตัวเล่ข 0, 1 หรือ, false, true ใช้ กำหนดค่าสถานะของการ ทำงานของอุปกรณ์ประเภทที่ ON หรือ OFF เช่น Int ledPin = D13; boolean stateLED = false ; // stateLED เป็นตัวแปรชนิด boolean ค่าเริ่มต้น false …………………………. void loop() { stateLED = !stateLED; digitalWrite((ledPin),stateLED); // stateLED ปัจจุบันตรงกันข้ามเดิม digitalWrite((ledPin), stateLED); delay(500); } (2) byte เป็นตัวแปรสำหรับเก็บคำตัวเลขขนาด 8 บิต จึงสามารถเก็บค่าตัวเลขได้ 2 " = 256 กล่าวคือ เก็บค่าได้ตั้งแต่ 0 ถึง 255 เช่น byte N ; / / กำหนดตัวแปร N เป็นตัวแปรชนิด 8 บิต หรือ 1 ไบต์ N = N++ ; // เพิ่มค่า N อีก 1 ดังนั้นค่า N จะมีค่าอยู่ระหว่าง 0 ถึง 255 (3) int เป็นตัวแปรสำหรับเก็บค่าตัวเลขจำนวนเต็ม ทั้งค่าจำนวนเต็มลบและจำนวนเต็ม บวก ขนาด 16 บิต ดังนั้นจึงเก็บค่าตัวเลขอยู่ระหว่าง -32768 ถึง +32767 เช่น
32 int ledPin = D13; // ledPin ต่อที่พอร์ตดิจิทัล 13 ของบอร์ด Aduino int M; // M เป็นตัวแปรเก็บค่าเลขจำนวนเต็ม int P = -2561; // P เป็นตัวแปรเก็บค่าเลขจำนวนเต็ม ค่า -2561 (4) unsigned int เป็นตัวแปรสำหรับเก็บค่าตัวเลขจำนวนเต็มบวก ขนาด 16 บิต ดังนั้นค่า จึงอยู่ระหว่าง 0 ถึง 65536 เช่น unsigned int N; // N เป็นตัวแปรเก็บค่าเลขจำนวนเต็มบวก unsigned int X = 2018 ; // ตัวแปร X มีค่าเท่ากับ 2018 (5) long int เป็นตัวแปรสำหรับเก็บค่าตัวเลขจำนวนเต็ม ทั้งค่าจำนวนเต็มลบและจำนวน เต็มบวก ขนาด 32 บิต ดังนั้นจึงเก็บค่าตัวเลขอยู่ระหว่าง - 2147483648 ถึง +2147483647 เช่น long N; long M = -95243526; (6) unsigned long int เป็นตัวแปรสำหรับเก็บค่าตัวเลขจำนวนเต็มบวก ขนาด 32 บิต จึงเก็บค่าอยู่ ระหว่าง 0 ถึง 4294967295 เช่น unsigned long int time; time = millis(); หมายเหตุ milli เป็นชื่อตัวแปรสำหรับ timer counter ขนาด 32 บิต ซึ่งจะอยู่ภายในตัว ไมโครคอนโทรลเลอร์ที่ใช้ในบอร์ด Arduino เริ่มนับเวลาตั้งแต่ 0 มิลลิวินาที ถึง 4294967295 มิลลิวินาที หลังจากนั้นจึงเริ่มต้นใหม่ (7) Float เป็นตัวแปรสำหรับเก็บค่าตัวเลขที่มีทศนิยม ขนาด 32 บิต ดังนั้นค่าของ float จึงอยู่ระหว่าง - 3.402823x10* ถึง 3.402823x10*" ซึ่งใช้หน่วยความจำสำหรับเก็บข้อมูล 32 บิต int value = analogRead(AO); float M = value/4.015865; mhurucoa:hadtereat
33 (8) double เป็นตัวแปรสำหรับใช้เก็บค่าตัวเลขทศนิยมที่มีความละเอียดสองเท่า ค่าตัวเลข ทลนิยมสูงสุด ที่เก็บได้คือ -1.797631348623158 x 10308 ถึง +1.797631348623157 X 10308 ถึง จึงใช้ หน่วยความจำ ขนาด 64 บิตหรือ 8 ไบต์ เช่น int value = analogRead(AO); double M = value/3.354852135124; (Y61)8) หมายเหตุ ตัวแปรชนิด doubleม ไม่นิยมใช้ในโปรแกรมภาษา Cบสำหรับ Arduino เนื่องจาก มีข้อจำกัด ด้านหน่วยความจำ 2. ตัวแปรที่ใช้เก็บตัวอักษรและข้อความ ตัวการกำหนดตัวแปรชนิดนี้ เป็นการกำหนดตัวแปรใช้เก็บ ตัวอักษร หรือรหัส ASCIl และ TUUCA-GORLU ข้อความ ตัวแปรชนิดนี้ประกอบด้วย (1) char เป็นตัวแปรสำหรับเก็บตัวอักษร ขนาด 1 ตัว ใช้หน่วยความจำขนาด 8 บิต เช่น char a1 = 'A' ; // a1 เป็นตัวแปรชนิด char เก็บรหัส ASCI ของ A char a2 = 'B', // a2 เป็นตัวแปรชนิด char เก็บรหัส ASCII ของ B char a3 = '6'; // a3 เป็นตัวแปรชนิด char เก็บรหัส ASCI ของ 60 (2) string เป็นตัวแปรสำหรับเก็บตัวอักษรหลาย ๆ ตัว หรือที่เป็นข้อความ ซึ่งจะใช้ หลักการเขียนเป็น array ของตัวแปรชนิด char เช่น char str1[20]; char str2[7] = {'S','U', 'C', 'H',I', 'N'}; char str3[7] = {'S','U', 'C', 'H',I', 'N', ‘\0'}; char str4[]= "SUCHIN"; char str5[7] = "SUCHIN"; char str6[15] = "SUCHIN"; จากตัวอย่างดังกล่าว อธิบายได้ดังนี้ str1 เป็นการประกาศตัวแปรสตริงโดยไม่กำหนดค่าเริ่มต้น 2เป็นการ ประกาศตัวแปสตริงพร้อมกับกำหนค่าให้ข้อความทีละตัวอักษร chacter ให้เอง ข้อความมี 6 ตัวอักษร แต่ต้อง กำหนด aray เป็น 7 เนื่องจากค่าตัวอักษรที่แจ้งว่า str3 เป็นการประกาศตัวแปรสตริงพร้อมกับกำหนดค่าให้
34 ข้อความทีละตัวอักษร compiler จะ null string ให้เอง str4 เป็นการประกาศตัวแปรสตริงพร้อมกับกำหนดค่าตัว แปรในเครื่องหมายคำพูดไม่ใด้ การกำหนดค่าตัวแปร compiler จะกำหนดขนาดให้เองตามจำนวนตัวอักษร +1 สำหรับ null string str5 เป็นการประกาศตัวแปรสตริงพร้อมกับกำหนดคำตัวแปรในเครื่องหมายคำพูด กำหนล ขนาดตัวแปรเอง st6 เป็นการประกาศตัวแปรสตริงพร้อมกับกำหนดคำตัวแปรในเครื่องหมายคำพูด และเผื่อไว้ สำหรับข้อความอื่น ๆ อีกด้วย 3. ตัวแปรแบบอะเรย์ (array) ตัวแปรแบบอะเรย์ คือตัวแปรหลายตัวที่เก็บรวมอยู่ในตัวแปรชื่อเดียวกัน โดยอ้างอิงแต่ละตัว ด้วยหมายเลขดัชนีที่อยู่ในเครื่องหมาย [ ] ตัวแปรแบบอะเรย์สามารถแบ่งย่อยได้ 3 ชนิด คือ (1) ตัวแปรอะเรย์ 1 มิติ หมายถึงตัวแปรหลายตัวที่เก็บรวมอยู่ในตัวแปรชื่อเดียวกัน รูปแบบเก็บข้อมูล 1 มิติ มีรูปแบบดังนี้ ชนิดของตัวแปร ชื่อตัวแปร[ตัวเลขแนวตั้ง]: เช่น int N[3]; (2) ตัวแปรอะเรย์ 2 มิติ หมายถึงตั๋วแปรหลายตัวที่เก็บรวมอยู่ในตัวแปรชื่อเดียวกั รูปแบบการเก็บข้อมูล 2 มิติ คือมีทั้งแนวตั้งและแนวนอน มีรูปแบบดังนี้ ชนิดของตัวแปร ชื่อตัวแปร[ตัวเลขแนวตั้ง,ตัวเลขแนวนอน]; เช่น int N[3,4]; (3) ตัวแปรอะเรย์ 3 มิติ หมายถึงตัวแปรหลายตัวที่เก็บรวมอยู่ในตัวแปรชื่อเดียวกัน รูปแบบการเก็บข้อมูล 3 มิติ คือมีทั้งแนวตั้ง แนวนอนและแนวลีก มีรูปแบบดังนี้ ชนิดของตัวแปร ชื่อตัวแปร[ตัวเลขแนวตั้ง,ตัวเลข แนวนอน,ตัวเลขแนวลึก] int N[3,4,2]; (4) ตัวแปรพอยต์เตอร์ (pointer) ตัวแปรพอยต์เตอร์ เป็นตัวแปรที่ไม่ได้ใช้เก็บข้อมูล แต่ใช้เก็บตำแหน่ง (address) ของ หน่วยความจำที่สร้างเป็นตัวแปรเก็บข้อมูลแทน ตัวแปรแบบนี้ทำหน้าที่เป็นตัวขี้ไปยังตำแหน่ง ของตัวแปร อื่น ๆ อีกทีหนึ่ง มีรูปแบบการกำหนดชื่อและการใช้งานดังนี้ ชนิดของตัวแปร *ชื่อตัวแปร ชนิดของตัวแปร หมายถึง ชนิดของตัวแปรที่ต้องการให้ pointer ชี้ไปหา *ชื่อของตัวแปร หมายถึง ชื่อของตัวแปรแบบ pointer ซึ่งใช้เครื่องหมาย * นำหน้าและห้ามเว้นวรรค เช่น int *N int; /กำหนดให้ *N int เป็น pointer ชี้ปยังตำแหน่ง int char *N_int; //กำหนดให้ *N _char เป็น pointer ชี้ไปยังตำแหน่ง char float *P _float; // กำหนดให้ "P_float เป็น pointer ชี้ไปยังตำแหน่ง float การใช้งานตัวแปร pointer นั้น จะมีเครื่องหมายที่
35 เกี่ยวข้องสองเครื่องหมายคือ * และ & ซึ่งเครื่องหมาย * จะใช้ในการอ้างชื่อตัวแปรแบบ pointer ส่วนเครื่องหมาย & ใช้ในการกำหนดแอดเดรสของ ตัวแปรให้กับ pointer เช่น int num1; //กำหนดให้ num1 เป็นตัวแปรชนิด int int num2; //กำหนดให้ num2 เป็นตัวแปรชนิด int int *N int; // *N int เป็นตัวแปรแบบ pointer สำหรับชี้ไปยังตำแหน่ง int num1 = 10; num2 = 0; N_int = &num1; Num2 = *N_int; 3.3 คำสั่งควบคุมทิศทางการทำงาน 3.3.1 การควบคุมทิศทางทำงานแบบมีเงื่อนไข การควบคุมทิศทางการทำงานแบบมีเงื่อนไข ประกอบด้วย คำสั่ง if , if.... ..else.. และ switch. .case... ซึ่งแต่ละคำสั่งมีหลักการทำงาน ดังนี้ 1. คำสั่ง if เป็นคำสั่งเพื่อกำหนดทางเลือกแบบทิศทางเดียว โดยการตรวจสอบเงื่อนไขที่ เรียกว่า นิพจน์ ทางตรรกศาสตร์ ว่าเป็นจริงหรือไม่ ถ้าหากเป็นเป็นจริงจะทำงานในคำสั่งที่อยู่ในวงเล็บต่อท้าย คำสั่ง if แต่หาก เงื่อนไขเป็นเท็จจะไม่ทำงาน คำสั่งภายในคำสั่ง ต่อท้าย if 2. คำสั่ง if.. ..else. เป็นคำสั่งที่ใช้ในการตัดสินใจแบบมีเงื่อนไข 2 ทางเลือก โดยโปรแกรม จะทำงานใน วงเล็บปีกกาหลังคำสั่ง if เมื่อเงื่อนไขเป็นจริง แต่ถ้าหากเงื่อนไขเป็นเท็จ จะทำงานในวงเล็บปีกกา หลังคำสั่ง e(se รูปแบบผังการทำงานคำสั่ง if else การทำงานของคำสั่ง if…else… นั่น หากเงื่อนไขทางเลือกหลังคำสั่ง if เป็นจริง จะทำงานในวงเล็บปีกกา คำสั่ง 1 แต่หากเงื่อนไขเป็นเท็จจะทำงานในวงเล็บปีกกาหลังคำสั่ง else คือคำสั่ง 2 นั่นเอง ตัวอย่างโปรแกรมที่ใช้ คำสั่ง if else สมมุติให้ sw1 เป็นสวิตช์อินพุตต่อแบบ pull up (เมื่อกดสวิตช์ จะได้ลอจิก 0) และนำไปควบคุม LED โดยมีเงื่อนไขทางเลือกคือ เมื่อ sพ1 ถูกกด ให้ LED สว่าง แต่ถ้าหาก sw1 ไม่ถูกกดให้ LED ไม่สว่าง เขียน โปรแกรมได้ดังนี้
36 if (digitalRead(sw1) == 0) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } 3. คำสั่ง if.....else if.... .. else..... เป็นคำสั่งที่ใช้ในการตัดสินใจแบบมีเงื่อนไขหลาย ทางเลือกโดย โปรแกรมจะทำตามคำสั่งภายใต้วงเล็บปีกกาของคำสั่ง if หรือ else if เมื่อเงื่อนไขที่อยู่ในวงเล็บ ท้ายคำสั่งเหล่านั้น เป็นจริง แต่จะกระทำตามที่อยู่ภายใต้วงเล็บปีกกาคำสั่ง else เมื่อไม่มีเงื่อนไขใดที่ท้ายคำสั่ง if หรือ else if เป็น จริงโดยจะเลือกการะทำเพียงเงื่อนไขเดียวเท่านั้น ซึ่ง else if อาจจะมีหลาย ๆ ชุดก็ได้ 4. คำสั่ง switch....case.. เป็นคำสั่งที่ใช้ในการตัดสินใจแบบมีเงื่อนไขแบบหลายทางเลือก คล้าย กับคำสั่ง if....else if....แม้มีรูปแบบการเขียนที่ง่ายกว่าและซับซ้อนน้อยกว่า โดยคำสั่ง switch....case... จะทำการ เปรียบเทียบกับเงื่อนไขทั้งหมดกับตัวแปรเพียงตัวเดียวว่ามีค่าเท่ากับเท่าไหร่ และตรงกับกรณี case ใด แล้วทำงาน ตามคำสั่งของกรณีนั้น ๆ หลังจากนั้นเมื่อพบ คำสั่ง break จึงออกจากคำสั่ง ซึ่งท้ายคำสั่งที่ให้ กระทำของแต่ละ กรณีจะต้องตามด้วยคำสั่ง break เสมอ เพื่อใช้ในการกระโดออกจาคำสั่งซึ่งฟังก์ชันและ ผังการทำงานของคำสั่ง switch ....case.... คำสั่งควบคุมทิศทางการวนลูป คำสั่งควบคุมทิศทางการวนระบบในภาษา c ประกอบด้วย while , do while และคำสั่ง for มีฟังก์ชัน การทำงานดังนี้ 1. คำสั่ง while เป็นการตรวจสอบก่อนวนซ้ำ ถ้าเงื่อนไขเป็นจริงจะไปทำงานคำสั่งภายใต้ วงเล็บปีกกา หลังคำสั่ง while แต่ถ้าเป็นเท็จจะจบกระบวนการวนช้ำ ฟังก์ชันและผังการทำงานของคำสั่ง 2. คำสั่ง do....while..... เป็นคำสั่งคล้ายกับคำสั่ง while แต่จะแตกต่างกันตรงที่คำสั่ง do...while... จะ ตรวจสอบเงื่อนไขทีหลัง กล่าวคือจะทำคำสั่งในลูปอย่างน้อย 1 ครั้งเสมอ ฟังก์ชันและผังการทำงาน ของคำสั่ง do... while....
37 3. คำสั่ง for เป็นคำสั่งให้โปรแกรมวนลูปทำซ้ำแบบที่สามารถกำหนดรอบได้แน่นอน โดยใน วงเล็บ เงื่อนไขท้ายคำสั่ง for จะแบ่งออกเป็น 3 ส่วน ได้แก่ ส่วนที่ 1 เป็นการกำหนดค่าเริ่มต้นให้ตัวแปร ส่วนที่ 2 เป็น เงื่อนไขที่พิจารณา ส่วนที่ 3 เป็นคำสั่งที่ต้องปฏิบัติเมื่อวนลูปครบหนึ่งรอบ ฟังก์ชันและผังการทำงานของ คำสั่ง for 3.4 ตัวกระทำทางคณิตศาสตร์ 3.5 ตัวกระทำการเปรียบเทียบ 3.6 ตัวกระทำทางลอจิกหรือตัวกระทำระดับบิต 3.7 ตัวกระทำตรรกะ (&&)
38 3.7.1 ตรรกะแอนด์ (&&) ใช้สำหรับตรวจสอบเงื่อนไขสองเงื่อนไข ถ้าเป็นจริงทั้งคู่จึงเข้าไปทำงาน ภายใต้คำสั่ง if 3.7.2 ตรรกะออร์ (||) ใช้สำหรับตรวจสอบเงื่อนไขสองเงื่อนไข ถ้าเงื่อนไขตัวใดตัวหนึ่งเป็นจริงจะเข้า ไปทำงานภายใต้คำสั่ง if 3.7.3 ตรรกะอินเวอร์ส (!) ใช้สำหรับตรวจสอบว่าเงื่อนไขนั้นเป็นจริงหรือเป็นเท็จ หากผลการ ตรวจสอบจะเป็นจริง เงื่อนไขจะเป็นเท็จ (กลับกัน) หากผลการตรวจสอบจะเป็นเท็จ เงื่อนไขจะเป็น จริง เมื่อเงื่อนไขเป็นจริงจะเข้าไปทำงานภายใต้คำสั่ง if 3.8 ตัวทำกระทำผสม 3.9 ไวยากรณ์ภาษา C สำหรับ Arduino 3.9.1 ซมิโคลอน-semicolon ; เซมิโคลอน (;) ในภาษา C ใช้เขียนแจ้งว่าจบคำสั่ง ตัวอย่าง int buttonPin = 2; int ledPin = 13; 3.9.2 วงเล็บปีกกา หรือ curly brace [ ] เครื่องหมายวงเล็บปีกกา (! )) เป็นส่วนสำคัญของภาษา ชี วงเล็บปีกกาเปิด ( จะต้องเขียนตาม ด้วยวงเล็บปีกกาปิด ด้วยเสมอ หรือวงเล็บต้องครบคู่กัน ใน ซอฟต์แวร์ Arduino IDE ที่ใช้เขียนโปรแกรมนั้น มีความสามารถในการตรวจสอบการควบคู่ของ เครื่องหมายวงเล็บผู้ใช้งานเพียงแค่คลิกที่วงเล็บเปิด จะเห็น วงเล็บปีกกาปิด หรือคลิกที่วงเล็บปีด จะเห็น วงเล็บปีกกาเปิด เพื่อเป็นการตรวจสอบว่าวงเล็บปีกกาครบหรือไม่
39 3.9.3 หมายเหตุบรรทัดเดียว (//) และหมายเหตุหลายบรรทัด (/* .....*/) หมายเหตุหรือคอม มนต์ เป็นส่วนของโปรแกรมที่ผู้ใช้เขียนเพิ่มเติมว่าโปรแกรมทำงานอย่างไร โดยส่วนที่เป็นหมายเหตุจะไม่ ถูกคอมไพล์ ไม่นำไปประมวลผล มีประโยชน์มากสำหรับการตรวจสอบโปรแกรม ภายหลังหรือใช้แจ้งให้ คนอื่น ทราบว่าบรรทัดนี้ใช้ทำอะไร ตัวหมายเหตุหรือคอมเมนต์ภาษา C มี 2 แบบ ได้แก่ หมายเหตุ บรรทัดเดียวและหมายเหตุหลายบรรทัด 1. หมายเหตุบรรทัดเดียว () พิมพ์สเลช // 2 ตัวหน้าข้อความที่จะหมายเหตุหรือคอม เมนต์ 2. หมายเหตุหลายบรรทัด (/*......*/) พิมพ์สแลช ( ) และ เครื่องหมายดอกจันทร์ (") ตัว หน้าข้อบรรทัดแรกความที่จะหมายเหตุหรือ คอมเมนต์ และพิมพ์เครื่องหมายดอกจันทร์ " และส แลซ / หลังบรรทัดสุดท้ายที่หมายเหตุหรือคอมเมนต์ 3.9.4 #define #define เป็นคำสั่งที่ใช้งานสำหรับกำหนดค่าคงที่ให้กับโปรแกรม ในการกำหนดค่าคงที่ไม่ได้ เปลืองพื้นที่หน่วยความจำของไมโครคอนโทรลเลอร์แต่อย่างไร เมื่อถึงขึ้นตอนแปลภาษา คอมไพเลอร์จะ แทนที่ ตัวอักษรขัดความตัวยคำที่กำหนดไว้นี้ ท้ายคำสั่ง "define โดยไม่ต้องมีเครื่องหมายเซมีโคลอนปิด ท้าย ถ้าหาก ใส่กินแล้วเวลาคอมไพล์โปรแกรมจะแจ้งว่าเกิดการผิดพลาตในบรรทัดถัดไป #define มี รูปแบบดังนี้ #define constantName value เช่น #define sensorPin 13 #define ledPin 10 3.9.5 #include #include ใช้สั่งให้รวมไฟล์อื่น ๆ ที่จำเป็นและสร้างไว้สมบูรณ์แล้ว หรือผนวกไฟล์อื่น ๆ เข้ากับไฟล์โปรแกรมหลักก่อน แล้วจึงทำการคอมไพล์โปรแกรม # include มีรูปแบบดังนี้ #include <file> เช่น #include <SPI.h> #include <Wire.h>
40 #include <Adafruit GFX.h> #include <Adafruit SSD1306.h> 3.10 คำสงวนของภาษา C สำหรับ Arduino 3.10.1 คำสงวนที่เป็นค่าคงที่ (Constants) HIGH LOW INPUT OUTPUT SERIAL DISPLAY PI HALF_ PI TWO PI LSBFIRST MSBFIRST CHANGE FALLING RISING true null 3.10.2 คำสงวนที่เป็นชื่อตัวแปรและค่าคงที่ของพอร์ต (Port Variable & Constants) PORTC DDRD PIND PORTD DDRB PINB PORTB DDRC PINC 3.10.3 คำสงวนที่เป็นชนิดของข้อมูล (Data type) class default do double int boolean byte char long private protected public return shot signed static switch throw Unsigned void 3 . 1 0 . 4 คำ สง ว น อ ื ่ น ๆ ( Other) atan atan2 abs acos analogRead analogWrite attachinterrupts asin available begin bit bitRead bitWrite bitSet bitclear boolean byte case ceil char char class abs acos constrain cos default delay delayMicroseconds detachInterrupts digitalWrite digitalRead else find findUntil float floor for HALF PI exp false if int log loop map max micros millis min new nolnterrupts noTone null parselnt parseFloat pinMode print , , println pulseln radians this tone true write Keyboard Mouse read press release releaseAll readBytes return readBytesUntil round serial serial1 serial2 serial3 setTimeout Setup shiftln shiftOut sin sq sqrt tan
41 จุดประสงค์การมอบหมายงานให้ 1. อธิบายโครงสร้างของโปรแกรมภาษา C สำหรับ Arduino ได้ 2. ระบุชนิดของตัวแปรของโปรแกรมภาษา C สำหรับ Arduino ได้ 3. เลือกใช้ตัวแปรของโปรแกรมภาษา C สำหรับ Arduino ให้เหมาะสมได้ 4. อธิบายการใช้คำสั่งควบคุมทิศทางการทำงานแบบมีเงื่อนไข ได้ 5. อธิบายการใช้คำสั่งควบคุมทิศทางการวนลูปได้ 6. อธิบายการใช้เครื่องหมายต่างๆของตัวกระทำทางคณิตศาสตร์ได้ 7. อธิบายการใช้เครื่องหมายต่างๆของตัวกระทำทางลอจิกหรือตัวกระทำระดับบิตได้ 8. อธิบายการใช้เครื่องหมายต่างๆของตัวกระทำตรรกะได้ 9. อธิบายการใช้เครื่องหมายต่างๆของตัวกระทำผสมได้ 10. อธิบายการเขียนไวยากรณ์ของภาษา C ได้ 11. เขียนคำสั่งภาษา C สำหรับ Arduino ได้ แนวทางปฏิบัติงาน ก่อนเรียน ครูแนะแนวทางคำถาม ชี้แนวทางการหาคำตอบ ขณะเรียน ให้นักศึกษาอภิปรายและสรุปเกี่ยวกับ โปรแกรมภาษา C สำหรับ Arduino หลังเรียน ให้นักเรียนไปค้นคว้าเพิ่มเติมเกี่ยวกับ โปรแกรมภาษา C สำหรับ Arduino และทำใบงานหน่วยเรียน หน่วยที่ 3 ส่งท้ายชั่วโมง แหล่งค้นคว้า/อ้างอิง สุชิน ชินสีห์(2563). ไมโครคอนโทรลเลอร์. นนทบุรี : โรงพิมพ์ บริษัท ศูนย์หนังสือเมืองไทยจำกัด. กำหนดเวลาส่งงาน ใบมอบหมายงานที่ 3 ระดับชั้น ปวช.3 กลุ่ม ทส.3 สัปดาห์ที่4-5 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น ชื่อเรื่อง โปรแกรมภาษา C สำหรับ Arduino จำนวนชั่วโมง 6 ชั่วโมง
42 - ท้ายชั่วโมงเรียน การประเมินผล 1. การประเมินผลโดยใช้ใบงานหน่วยที่ 3 2. สังเกตการมีส่วนร่วมในการเรียน 3. สังเกตจากการตอบคำถาม / การอภิปราย
43 ใบงานหน่วยที่ 3 โปรแกรมภาษา C สำหรับ Arduino คำชี้แจง จงตอบคำถามต่อไปนี้ให้ถูกต้อง 1. จากโครงสร้างภาษา C หากเราต้องการประกาศไลบรารี จะประกาศที่ส่วนใด .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... 2. จากโครงสร้างภาษา C ส่วนใดที่ทำงานเพียงครั้งเดียว .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... 3. จากโครงสร้างภาษา C ส่วนใดที่วนรอบไม่รู้จบ .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... 4. ตัวแปรภาษา C สำหรับ Arduino ใด ที่ใช้หน่วยความจำมากที่สุด .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... 5. หากต้องการสร้างตัวแปรเพื่อเก็บข้อมูลจากการแปลงสัญญาณแอนะล็อกเป็นดิจิทัลที่มีความละเอียด ขนาด 10 บิต (0 - 1023) ควรเลือกตัวแปรชนิดใด .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... 6. ตัวแปรชนิด Boolean ใช้กับค่าใด .................................................................................................................................................................................... .................................................................................................................................................................................... ....................................................................................................................................................................................
44 7. คำสั่ง do...while มีหลักการทำงานอย่างไร .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... 8. คำสั่ง switch case เป็นคำสั่งที่ใช้ในการตัดสินใจแบบมีเงื่อนไขคล้ายกับคำสั่งใด .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... 9. ในภาษา C สำหรับ Arduino เครื่องหมาย = กับเครื่องหมาย == ใช้ต่างกันอย่างไร .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... 10. คำสั่ง if(N >= 0 && N <= 12) หมายความว่าอย่างไร .................................................................................................................................................................................... .................................................................................................................................................................................... ....................................................................................................................................................................................
45 ข้อสรุปหลังการจัดการเรียนรู้ .............................................................................................................................................................................. .............................................................................................................................................................................. .................................................................................................................................................................................... ........................................................................................................................................................................ .................................................................................................................................................................................... ปัญหาที่พบ .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... แนวทางการแก้ปัญหา .................................................................................................................................................................................... .................................................................................................................................................................................... (นายพลวัฒน์ ผ่องแก้ว) ครูผู้สอน (นางสาวมยุรี พงษ์อาภา) หัวหน้าแผนกวิชาคอมพิวเตอร์ (นางสาวศิริวรรณ เนาว์ประโคน) รองผู้อำนวยงานฝ่ายวิชาการ บันทึกหลังการจัดการเรียนรู้ ระดับชั้น ปวช.3 กลุ่ม ทส.3 สัปดาห์ที่4-5 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น วันเดือนปี ชื่อเรื่อง โปรแกรมภาษา C สำหรับ Arduino จำนวนชั่วโมง 6 ชั่วโมง