146 ใบปฏิบัติ หน่วยที่ 8 การใช้งาน Arduino ร่วมกับอุปกรณ์ตรวจรู้ รายการปฏิบัติ คะแนน รายการประเมิน ได้ ไม่ได้ ต่อวงจรใช้งานอุปกรณ์ตรวจรู้ระยะทางได้ 2 เขียนโปรแกรมใช้งานอุปกรณ์ตรวจรู้ระยะทางได้ 2 ต่อวงจรใช้งานอุปกรณ์ตรวจรู้อุณหภูมิและความชื้นได้ 2 เขียนโปรแกรมใช้งานอุปกรณ์ตรวจรู้อุณหภูมิและความชื้นได้ 2 แก้ไขโปรแกรมภาษา C ตามที่กำหนดได้ 2 รวม
147 ใบปฏิบัติงาน เรื่อง ศึกษาข้อมูลจากผังพรรณไม้เดิมและศึกษาธรรมชาติของพรรณไม้ องค์ประกอบที่ 2 การรวบรวมพรรณไม้เข้าปลุกในโรงเรียน “คลุกคลี เห็นคุณ สุนทรีย์” วัตถุประสงค์ 1. เพื่อรู้ข้อมูลของของพื้นที่ศึกษาผังพรรณไม้ 2. เพื่อรู้ธรรมชาติของพรรณไม้ กระบวนการเรียนรู้ 1. เรียนรู้ข้อมูลของผังพรรณไม้เดิม 1.1 เรียนรู้พื้นที่ศึกษาจากผังพรรณไม้ 1.2 เรียนรู้ข้อมูลพรรณไม้เดิม เช่น ชนิดพรรณไม้ จำนวนพรรณไม้ ลักษณะวิสัยพรรณไม้ เป็นต้น 2. ศึกษาธรรมชาติของพรรณไม้ 2.1 กำหนดกลุ่มพรรณไม้ ลักษณะวิสัยของพรรณไม้ที่จะนำมาปลูก (ตามจินตนาการ) และเลือก ชนิดพรรณไม้ 2.2 รวบรวมข้อมูลและทำการเก็บข้อมูลวัดอุณหภูมิและความชื้น สถานที่ที่พรรณไม้อาศัย แล้วบันทึกผล ลงตารางจากนั้นสรุปผล
148 คำชี้แจง นักเรียนแบ่งกลุ่ม กลุ่มละ 4- 5 คน ศึกษาข้อมูลจากผังพรรณไม้เดิมและศึกษาธรรมชาติของพรรณไม้ แล้วปฏิบัติกิจกรรมต่อไปนี้ 1. นักเรียนเสาะหาพรรณไม้มา 5 พรรณ ภายในพื้นที่สถานศึกษา แล้วเขียนโปรแกรมไมโครคอนโทรลเลอร์ ร่วมกับเซนเซอร์วัดอุณหภูมิและความชื้น (DHT11/22) เพื่อวัดระดับอุณหภูมิและความชื้น ณ บริเวณ พรรณไม้นั้นๆ แล้วบันทึกผลลงตาราง ชื่อพรรณไม้ อุณหภูมิ(°C) ความชื้น (%) สรุป .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... ....................................................................................................................................................................................
149
150
151 ข้อสรุปหลังการจัดการเรียนรู้ ............................................................................................................................. ................................................. ................................................................................. ............................................................................................. .................................................................................................................................................................................... .................................................................................................................................................................................... ปัญหาที่พบ ............................................................................................................................. ....................................................... .................................................................................................................................................................................... ............................................................................................................................. ....................................................... แนวทางการแก้ปัญหา ............................................................................................................................. ....................................................... .................................................................................................................................................................................... (นายพลวัฒน์ ผ่องแก้ว) ครูผู้สอน (นางสาวมยุรี พงษ์อาภา) หัวหน้าแผนกวิชาคอมพิวเตอร์ (นางสาวศิริวรรณ เนาว์ประโคน) รองผู้อำนวยงานฝ่ายวิชาการ บันทึกหลังการจัดการเรียนรู้ ระดับชั้น ปวช.3 กลุ่ม ทส.3 สัปดาห์ที่13-14 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น วันเดือนปี ชื่อเรื่อง การใช้งาน Arduino ร่วมกับอุปกรณ์ตรวจรู้ จำนวนชั่วโมง 6 ชั่วโมง
152 แผนการจัดการเรียนรู้ หน่วยที่ 9 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น สอนครั้งที่ 15-16 ชื่อหน่วย การใช้งาน Real Time Clock ร่วมกับ Arduino ชั่วโมงรวม 6 ชั่วโมง ชื่อเรื่อง การใช้งาน Real Time Clock ร่วมกับ Arduino จำนวน 6 ชั่วโมง สาระสำคัญ สัญญาณนาฬิกาที่เป็นเวลาปัจจุบัน มีประโยซน์สำหรับการประยุกต์ใช้กับงานในไมโครคอนโทรลเสอร์ ที่ เกี่ยวข้องกับเวลาที่เป็นวินาที่, นาที, ชั่วโมง, วันที่, วัน, เดือน, และปี ไอซีเบอร์ DS1307 และเบอร์ DS3231 เป็น ไอซีสร้างฐานเวลาจริงสามารถตั้งค่าเป็นปัจจุบันได้ ภายในมีหน่วยความจำและรีจิสเตอร์ที่สามารถคำนวณ วัน เดือน ปี อย่างเที่ยงตรงไปจนถึงปี ค.ศ. 2099 ไอซีสร้างฐานเวลาจริง (RTC : Real Time Clock) เบอร์ DS 1307 เป็นไอซีที่สร้างฐานเวลาจริงที่มีการประมวลผลเกี่ยวกับวินาที (Second) นาที (Minute) ชั่วโมง (Hours) วันที่ (Date) วันในสัปดาห์ (Day) เตือน (Month) และปี (Year) สามารถปรับตั้งให้ตรงกับเวลา ปัจจุบันได้ และมีการ คำนวณสามารถกำหนดวันในอธิกสุรทินด้วย สามารถคำนวณเวลา วัน เดือน ปี ได้อย่างเที่ยงตรง ไปจนถึงปี ค.ศ. 2099 และยังมีหน่วยความจำ RAM ขนาด 56 ไบต์ มีการเชื่อมต่อการสื่อสารแบบ I'C มีวงจร ตรวจจับไฟเลี้ยงต่ำ อย่างอัตโนมัติ มีขาต่อแบตเตอรี่สำรองเป็นไฟเลี้ยงการทำงาน สามารถส่งสัญญาณความถี่ รูปสี่เหลี่ยม โดยสามารถ เลือกความถี่ 1H2 9.096KH-z, 8.192 kHz และ 32:768 KH2 ไอซีฐานเวลาจริงจะ ต่อเชื่อมการใช้งานกับระบบ ไมโครคอนโทรลเลอร์ หรือในระบบคอมพิวเตอร์มีประโยชน์ในการนำไป ประยุกตีใช้ในงานที่ต้องเกี่ยวข้องกับเวลา และ วัน เดือน ปี ระบบควบคุมการทำงานต่าง ๆ DS3231 module เป็นโมดูนาฬิกาแบบเวลาจริง RTC (Real Time Clock) ที่มีความถูกต้องแม่นยำสูง เพราะข้างในมีวงจร วัดอุณหภูมิ เพื่อนำอุณหภูมิจากสภาพแวดล้อมมา คำนวนชดเซยความถี่ของ Crystal ที่ถูกรบกวนจ ภายนอก มาพร้อมแบตเตอร์รี่ ใช้งานได้แม้ไม่มีแหล่งจ่ายไฟจาก ภายนอก สามารถตั้งค่า วัน เวลา ได้อย่างง่าย รารีมาพร้อมใช้งาน สามารถเลือกแสดงผลเวลาแบบ 24 ชั่วโมงหรือ แบบ 12 ชั่วโมง นอกจา และเวลาได้อย่างแม่นยำแล้ว โมดูลนี้ยังสามารถ แสดงอุณหภูมิภายนอกได้ เป็นเหมือน นาฬิกาดิจิตอลที่บอก อุณหภูมิได้ด้วย โมดูล Real Time Clock DS3231 สมรรถนะประจำหน่วย 1. แสดงความรู้เกี่ยวกับพื้นฐานของ Real Time Clock 2. แสดงความรู้เกี่ยวกับบอร์ด Real Time Clock 3. แสดงความรู้เกี่ยวกับการใช้งาน Real Time Clock ร่วมกับ Arduino ร่วมกับบอร์ด Arduino 4. เขียนโปรแกรมและแก้ไขโปรแกรมภาษา C ที่เกี่ยวกับ Real Time Clock จุดประสงค์การเรียนรู้ประจำหน่วย
153 จุดประสงค์ทั่วไป 1. เพื่อให้นักเรียนบอกประโยชน์ของ Real Time Clock 2. เพื่อให้นักเรียนอธิบายคุณสมบัติของ Real Time Clock เบอร์ DS1307 3. เพื่อให้นักเรียนระบุแอดเดรสที่เก็บวัน เวลา ของ Real Time Clock เบอร์ DS1307 4. เพื่อให้นักเรียนระบุฟังก์ชันที่ใช้กับ Real Time Clock เบอร์ DS3231 5. เพื่อให้นักเรียนระบุ library ของ Real Time Clock เบอร์ DS1307 6. เพื่อให้นักเรียนระบุฟังก์ชันที่ใช้กับ Real Time Clock เบอร์ DS3231 7. เพื่อให้นักเรียนเขียนโปรแกรมภาษา C เพื่ออ่านค่าเวลาจากโมดูล Real Time Clock เบอร์ DS1307 8. เพื่อให้นักเรียนเขียนโปรแกรมภาษา C เพื่ออ่านค่าเวลาจากโมดูล Real Time Clock เบอร์ DS3231 9. แก้ไขโปรแกรมภาษา C ที่เกี่ยวข้องกับ Real Time Clock จุดประสงค์เชิงพฤติกรรม 1. บอกประโยชน์ของ Real Time Clock ได้ 2. อธิบายคุณสมบัติของ Real Time Clock เบอร์ DS1307 ได้ 3. ระบุแอดเดรสที่เก็บวัน เวลา ของ Real Time Clock เบอร์ DS1307 ได้ 4. ระบุฟังก์ชันที่ใช้กับ Real Time Clock เบอร์ DS3231 ได้ 5. ระบุ library ของ Real Time Clock เบอร์ DS1307 ได้ 6. ระบุฟังก์ชันที่ใช้กับ Real Time Clock เบอร์ DS3231 ได้ 7. เขียนโปรแกรมภาษา C เพื่ออ่านค่าเวลาจากโมดูล Real Time Clock เบอร์ DS1307 ได้ 8. เขียนโปรแกรมภาษา C เพื่ออ่านค่าเวลาจากโมดูล Real Time Clock เบอร์ DS3231 ได้ 9. แก้ไขโปรแกรมภาษา C ที่เกี่ยวข้องกับ Real Time Clock ได้ กิจกรรมการเรียนรู้ ขั้นตอนการสอน (กิจกรรมของครู) ขั้นตอนการเรียน (กิจกรรมผู้เรียน) เครื่องมือ/การวัดผล ประเมินผล 1.ขั้นนำเข้าสู่บทเรียน 1.1 ครูบอกจุดประสงค์ของการเรียนใน บทเรียนนี้ 1.2 ครูเปิดประเด็นคำถามเกี่ยวกับการ ใช้งาน Real Time Clock ร่วมกับ Arduino 1.1 นักเรียนรับฟังจุดประสงค์ของการ เรียนในบทเรียนนี้ 1.2 นักเรียนตอบคำถามการใช้งาน Real Time Clock ร่วมกับ Arduino 1. คำถามประจำหน่วย - การตอบคำถามแบบสุ่มถามเพื่อ กระตุ้นผู้เรียน 2. ขั้นสอนทฤษฎี
154 2.1 ครูอธิบายการใช้การใช้งาน Real Time Clock ร่วมกับ Arduino 2.2 ซักถามปัญหาเกี่ยวกับการใช้งาน Real Time Clock ร่วมกับ Arduino 2.1 รับฟังคำบรรยาย 2.2 ตอบคำถามและแสดงความคิดเห็น 1.สื่อนำเสนอ Canva หน่วยที่ 9 2. คำถามหน่วยที่ 9 3. ขั้นสรุป 3.1 ครูและนักเรียนช่วยกันสรุปและ ครูซักถามปัญหาข้อสงสัย 3.1 นักเรียนช่วยครูสรุปและตอบคำถาม 3.2 จดบททึกย่อ 1. สื่อนำเสนอ Canva 4. ขั้นสอนปฏิบัติ 4.1 ครูสาธิตเขียนโปรแกรมเกี่ยวกับ การใช้งาน Real Time Clock ร่วมกับ Arduino 4.1 นักเรียนปฏิบัติตาม 1. สังเกตและสอบถาม 5. ขั้นการประเมินผล 5.1 ครูแจกใบประเมินผลหลังเรียน หน่วยที่ 8 5.2 ดูแลนักเรียนไม่ให้ทุจริต 5.3 เมื่อครบเวลาที่กำหนดรับ แบบทดสอบคืน 5.1 รับใบประเมินผลหลังเรียนหน่วยที่ 9 5.2 ทำแบบทดสอบหลังเรียน 5.3 เมื่อครบเวลาที่กำหนดส่งแบบทดสอบคืน 1. ใบปฏิบัติหน่วยที่ 9 2. การสอบถาม 6. ขั้นมอบหมายงาน 6.1 ให้นักเรียนไปค้นคว้าเพิ่มเติม เกี่ยวกับการใช้งาน Real Time Clock ร่วมกับ Arduino 6.1 รับมอบหมายงาน 1. ใบมอบงานหน่วยที่ 9 7. ขั้นตรวจสอบความเรียบร้อย 7.1 ตรวจความเรียบร้อยและความ เรียบร้อยของห้องเรียนห้องปฏิบัติงาน 7.1 ช่วยกันจัดเก็บและทำความสะอาด ห้องเรียนห้องปฏิบัติงานให้เรียบร้อย 1.ใบตรวจสอบความ เรียบร้อย สื่อการเรียนรู้และแหล่งการเรียนรู้ สื่ออื่นๆ - สื่อนำเสนอ Canva หลักฐานการเรียนรู้ที่ต้องการ
155 หลักฐานความรู้ ใบงานหน่วยที่ 9 หลักฐานการปฏิบัติงาน คะแนนใบงานหน่วยที่ 9 การวัดและประเมินผล การวัดผล (ใช้เครื่องมือ) การประเมินผล (นำผลเทียบกับเกณฑ์และแปลความหมาย) 1. ใบปฏิบัติหน่วยที่ 9 เกณฑ์ผ่าน 100% 2. แบบประเมินคุณธรรม จริยธรรม ตามสภาพจริง เกณฑ์ผ่าน 50% การบูรณาการหลักปรัชญาเศรษฐกิจพอเพียงสู่แผนการจัดการเรียนรู้ การถอดรหัสปรัชญาของเศรษฐกิจพอเพียง การพัฒนาโปรแกรมด้วยเทคโนโลยีดอตเน็ต พอประมาณ มีเหตุผล มีภูมิคุ้มกัน - นักศึกษามีความพอประมาณใน การใชอุปกรณการเรียน - นักศึกษาใชเหตุผลในการ ทำกิจกรรม - นักศึกษาทำงานอยางมีระเบียบวินัยในการ เรียนไมกอความวุนวาย เงื่อนไขความรู้ เงื่อนไขคุณธรรม - นักศึกษามีความรูเกี่ยวกับเนื้อหาในบทเรียน - นักศึกษารูจักความรักและความสามัคคีในเพื่อนรวมหอง เวลามีปญหาในการทำงาน - ชวยกันแกไขขอผิดพลาดที่เกิดขึ้นเบื้องตนกอนถาแกไขไม ไดจึงเรียกอาจารย ครอบคลุม 4 มิติ วัตถุ สังคม สิ่งแวดล้อม วัฒนธรรม - สื่อ วัสดุ อุปกรณ์ - แบบทดสอบ - ใบมอบหมายงาน - ใบปฏิบัติงาน - การช่วยเหลือ เพื่อนในกลุ่ม - การแลกเปลี่ยน เรียนรู้ในชั้นเรียน - การร่วมกิจกรรม - รักษาความสะอาด ของห้องเรียน - จัดโต๊ะให้เหมาะสม - ปิดไฟ พัดลม ก่อนออกจากห้อง - อนุรักษ์ สิ่งแวดล้อม - การอยู่ร่วมกัน ในสังคม
156 เนื้อหาสาระ หน่วยที่ 9 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น สอนครั้งที่ 15-16 ชื่อหน่วย การใช้งาน Real Time Clock ร่วมกับ Arduino ชั่วโมงรวม 6 ชั่วโมง ชื่อเรื่อง การใช้งาน Real Time Clock ร่วมกับ Arduino จำนวน 6 ชั่วโมง หน่วยที่ 9 การใช้งาน Real Time Clock ร่วมกับ Arduino สัญญาณนาฬิกาที่เป็นเวลาปัจจุบัน (สัญญาณจากวงจร RTC) มีประโยซน์สำหรับการประยุกติใช้กับงาน ในไมโครคอนโทรลเลอร์ที่เกี่ยวข้องกับเวลาที่เป็นวินาที, นาที, ชั่วโมง, วันที่, วัน, เดือน, และปี ไอซีเบอร์ DS1307 และเบอร์ DS3231 เป็นไอซีสร้างฐานเวลาจริงสามารถตั้งค่าเป็นปัจจุบันได้ ภายในมีหน่วยความจำ และรีจิสเตอร์ที่ สามารถคำนวณวัน เดือน ปี อย่างเที่ยงตรงไปจนถึงปี ค.ศ. 2099 ไอซีกำเนิดฐานเวลาจริง (Real Time Clock) ไอซีกำเนิดฐานเวลาจริงเบอร์ DS1307 ไอซีกำเนิดฐานเวลาจริง (RTC : Real Time Clock) เบอร์ DS1307 เป็นไอซีที่กำเนิดฐานเวลา จริงที่มีการ ประมวลผลเกี่ยวกับวินาที (Second) นาที (Minute) ชั่วโมง (Hours) วันที่ (Date) วันในสัปดาห์ (Day) เดือน (Month) และปี (rear) สามารถปรับตั้งให้ตรงกับเวลาปัจจุบันได้ และมีการคำนวณสามารถ กำหนดวันใน อธิกสุรทินด้วย สามารถคำนวณเวลา วัน เดือน ปี ได้อย่างเที่ยงตรงไปจนถึงปี ค.ศ. 2099 และยัง มีหน่วยความจำ RAM ขนาด 56 ไบค์ มีการเชื่อมต่อการสื่อสารแบบ I 2C มีวงจรตรวจจับไฟเลี้ยงต่ำอย่าง อัตโนมัติ มีขาต่อแบตเตอรี่ สำรองเป็นไฟเลี้ยงการทำงาน สามารถส่งสัญญาณความถี่รูปสี่เหลี่ยม โดยสามารถ เลือกความถี่ 1Hz 4.096 kHz, 8.192 KHZ และ 32. 768 kHz ไอซีฐานเวลาจริงจะต่อเชื่อมการใช้งานกับระบบ ไมโครคอนโทรลเลอร์ หรือใน ระบบคอมพิวเตอร์ มีประโยชน์ในการนำไปประยุกต์ใช้ในงานที่ต้องเกี่ยวข้องกับ เวลา และ วัน เดือน ปี ระบบ ควบคุมการทำงานต่าง ๆ
157 รายละเอียดของ RTC แอดเดรสที่ 00H ถึง 07H และ RAM แอดเดรสที่ 08H ถึง 3FH ข้อมูลเวลาและปฏิทิน จะถูกบรรจุอยู่ที่ไบต์ 00H ถึง 07H อยู่ในรูปแบบของ เลขฐานสอง (8CD) และใน การกำหนดและประมวลผลตัวเลข ต้องเป็นฐานสิบหกเท่านั้น ในแต่ละรีจิสเตอร์มี รายละเอียดดังนี้ 1. ที่รีจิสเตอร์ RTC แอดเดรส 00H บิตที่ 0 ถึง 6 เป็นคาบเวลาวินาที มีค่าอยู่ระหว่าง 00 ถึง 59 วินาที ส่วนบิตที่ 7 (CH) เป็น บิตควบคุมการเดินหรือหยุดเดินของสัญญาณเวลา ถ้าหากกำหนดเป็น 0 สัญญาณจะเริ่ม ทำงาน ถ้าเป็น 1 จะหยุด (เมื่อเริ่มป้อนไฟครั้งแรกข้อมูลในรีจิสเตอร์จะไม่มีหรือไม่ได้กำหนดค่า เริ่มต้นไว้ จะต้อง กำหนดค่า CH = 0 เพื่อให้ระบบเริ่มทำงาน) 2. ที่รีจิสเตอร์ RIC แอดเดรส 01H บิตที่ 0 ถึง 6 เป็นคาบ นาที มีค่าอยู่ระหว่าง 00 ถึง 59 นาที บิตที่ 7 ไม่ได้ใช้งาน 3. ที่รีจิสเตอร์ RTC แอดเดรส 02H บิตที่ 6 เป็นตัวกำหนดโหมด 12 หรือ 24 ชั่วโมง ถ้าเป็น ลอจิก 1 เป็น โหมด 12 ชั่วโมง ถ้าเป็น 0 เป็น 24 ชั่วโมง ถ้าเป็นโหมด 12 ชั่วโมง บิต 5 เป็นตัวกำหนดสถานะ AMPM ถ้าเป็น ลอจิก 0 คือ PM และถ้าเป็น 1 คือ AM ในโหมด 24 ชั่วโมง ตั้งแต่บิต 0 ถึง 5 จะเป็นที่ กำหนดค่าชั่วโมง (0 ถึง 23 ช.ม.) ในโหมด 12 ชั่วโมง ตั้งแต่บิต 0 ถึง 4 จะเป็นที่กำหนดชั่วโมง (O ถึง 11) 4. ที่รีจิสเตอร์ RTC แอดเดรส 03H บิตที่ 0 ถึง 2 จะใช้กำหนด วันในสัปดาห์ (จันทร์ถึงอาทิตย์ แทนด้วย 1 ถึง 7) บิตที่ 3 ถึงบิตที่ 7 ไม่ได้ใช้งาน 5. ที่รีจิสเตอร์ RTC แอดเดรส 04H บิตที่ 0 ถึง 3 จะใช้กำหนด หลักหน่วยของวันที่ บิตที่ 4 ถึง 5 จะใช้ กำหนดหลักสิบของวันที่ (1 ถึง 28/29/30/31)
158 6. ที่รีจิสเตอร์ RTC แอดเดรส 05H บิตที่ 0 ถึง 4 จะใช้กำหนดจำนวนเดือนในรอบปี (มกราคม ถึง ธันวาคม แทนด้วยเลข 1 ถึง 12) บิตที่ 5 ถึงบิตที่ 7 ไม่ได้ใช้งาน 7. ที่รีจิสเตอร์ RTC แอดเดรส 06H บิตที่ 0 ถึง 7 จะใช้กำหนดปี ค. ศ. (00 ถึง 99) 8. ที่รีจิสเตอร์ 07H เป็นรีจิสเตอร์ที่ใช้ควบคุมการผลิตความถี่เอาต์พุตรูปร่างสี่เหลี่ยมออกมาใช้ งาน โดยบิตที่ 7 (OUT) เป็นตัวปิด/ เปิดการผลิตความถี่ บิตที่ 4 (SQW)เป็นตัวปิดหรือเปิดการผลิตความถี่ โดยมีขา RSO RS1 เป็นตัวกำหนดความถี่ ไอซีกำเนิดเวลาฐานจริงเบอร์ DS3231 ขาที่ 1 เป็นขาสัญญาณ 32.768 kHz ออกไปใช้งานภายนอก ขาที่ 2 ขาไฟ DC สำหรับแหล่งจ่ายไฟหลัก ขานี้ควรใช้ตัวเก็บประจุขนาด 0.1 JF ถึง 1.0มF ต่อ ลงกราวด์ เพื่อลดสัญญาณรบกวน ขาที่ 3 เป็นเอาต์พุต Interrupt หรือ Quad-Wave แบบแอกทีฟ LOW ขานี้ต้องใช้ตัวต้านทานต่อ pullup ไว้และจะถูกกำหนดโดยสถานะของบิต INTCN ใน Control Register (Ohm) เมื่อตั้งค่า INTCN เป็น ตรรกะ 0 ขา นี้จะส่งสัญญาณคลื่นสแควร์และความถี่จะกำหนดโดย R52 และบิต RS1 เมื่อ INTCN ถูกตั้งค่า เป็นตรรกะ 1 รีจิสเตอร์สัญญาณเตือนจะเปิดใช้ขา INT/SQW (หากมีการเปิดใช้สัญญาณเตือน) เนื่องจากบิต INTCN ถูกตั้งค่า เป็นตรรกะ 1 เมื่อใช้งานครั้งแรกขาจะตั้งค่าเริ่มต้นเป็นเอาต์พุตขัดจังหวะพร้อมกับปิดใช้งานการเตือน ขาที่ 4 เป็นขาสำหรับการรีเซตข้อมูลในไอซี RTC เบอร์ DS3231 โครงสร้างภายในเป็น open drain ดังนั้นจึงต้องใช้ Resister Pullup ไว้ ขา 5 ถึง ขา 12 เป็นขา N.C (No connect : ไม่ต่อสิ่งใด) สามารถต่อลง กราวด์ได้ ขา 13 ขากราวด์ ขา 14 ขาสำหรับต่อแบตเตอร์รี่แบคอับ 3 V และควรต่อตัวเก็บประจุค่า 0.1 IF ถึง 1.0 มF ต่อ ลงกราวด์ เพื่อลดสัญญาณรบกวน ขา 15 เป็นขา SDA (Serial Data Input/Output)สำหรับการ ติดต่อสื่อสารแบบ IC โครงสร้างภายในเป็น open drain ดังนั้นจึงต้องใช้ Resister Pullup ไว้ ขา 16 เป็นขา SCL
159 (Serial Clock Input/Output) สำหรับการติดต่อสื่อสารแบบ IC โครงสร้างภายในเป็น open drain ดังนั้นจึงต้อง ใช้ Resister Pullup ไว้ บอร์ด Real Time Clock โมดูล Real Time Clock DS1307 โมดูล Real Time Clock DS1307 เป็นโมดูลฐานเวลาจริง ภายในโมดูลนี้ประกอบด้วย ไอซีเบอร์ DS1307 แบตเตอรี่ 3 V crystal 32.768 kHz และ ตัวต้านทาน 4.7 kΩ โมดูล Real Time Clock DS3231 DS3231 module เป็นโมดูนาฬิกาแบบเวลาจริง RTC (Real Time Clock) ที่มีความถูกต้อง แม่นยำสูง เพราะข้างในมีวงจรวัดอุณหภูมิ เพื่อนำอุณหภูมิจากสภาพแวดล้อมมาคำนวนชดเขยความสี่ของ Crystal ที่ถูก รบกวนจากอุณหภูมิภายนอก มาพร้อมแบตเตอร์รี่ ใช้งานได้แม้ไม่มีแหล่งจ่ายไฟจากภายนอก สามารถตั้งค่าวัน เวลา ได้อย่างง่าย มีไลบรารีมาพร้อมใช้งาน สามารถลือกแสดงผลเวลาแบบ 24 แบบ 12 ชั่วโมงก็ได้นอกจากจะ แสดงวันและเวลาได้อย่างแม่นยำแล้ว โมดูลนี้ยังสามารถ แสดงอุณหภูมิภายนอกได้ เป็นเหมือนนาฬิกาติจิตอลที่ บอกอุณหภูมิได้ด้วยโมดูล Real Time Clock DS3231
160 การใช้งาน Real Time Clock ร่วมกับ Arduino ร่วมกับบอร์ด Arduino การใช้โมดูล Real Time Clock DS1307 ร่วมกับบอร์ด Arduino โปรแกรมภาษา C สำหรับอ่านค่าเวลาจากโมดูล Real Time Clock DS1307 แสดงผลที่จอมอนิเตอร์ 1. #include <Wire.h> 2. #include "RTClib.h" 3. RTC_DS1307 RTC; 4. void setup () { 5. Serial.begin(9600); 6. Wire.begin(); 7. RTC.begin(); 8. if (!RTC.isrunning()) { 9. Serial.println("RTC is NOT running!"); 10. RTC.adjust(DateTime(F(__DATE__), F(__TIME__))); 11. }
161 12. } 13. void loop () { 14. DateTime now = RTC.now(); 15. Serial.print(now.month(),DEC); 16. Serial.print('/'); 17. Serial.print(now.day(), DEC); 18. Serial.print('/'); 19. Serial.print(now.year(), DEC); 20. Serial.print(' '); 21. Serial.print(now.hour(), DEC); 22. Serial.print(':'); 23. Serial.print(now.minute(), DEC); 24. Serial.print(':'); 25. Serial.print(now.second(),DEC); 26. Serial.println(); 27. delay(1000); 28. } การต่อโมดูล Real Time Clock DS3231 ข้ากับบอร์ด Arduino แสดงผลที่จอ LCD โปรแกรมภาษา C สำหรับอ่านค่าเวลาจากโมดูล Real Time Clock DS3231 แสดงผลที่จอ LCD 1. #include <DS3231.h>
162 2. #include <LCD.h> 3. #include <LiquidCrystal 12C.h> 4. DS3231 rtc(SDA, SCL); 5. void setup() { 6. rtc.begin(); 7. lcd.begin(16,2); 8. } 9. void loop() { 10. lcd.setCursor(0,0); 11. lcd.print("Time: "); 12. lcd.print(rtc.getTimeStr0); 13. lcd.setCursor(0,1); 14. lcd.print("Date: "); 15. Icd.print(rtc.getDateStr0); 16. delay(1000); 17. }
163 จุดประสงค์การมอบหมายงานให้ 1. บอกประโยชน์ของ Real Time Clock ได้ 2. อธิบายคุณสมบัติของ Real Time Clock เบอร์ DS1307 ได้ 3. ระบุแอดเดรสที่เก็บวัน เวลา ของ Real Time Clock เบอร์ DS1307 ได้ 4. ระบุฟังก์ชันที่ใช้กับ Real Time Clock เบอร์ DS3231 ได้ 5. ระบุ library ของ Real Time Clock เบอร์ DS1307 ได้ 6. ระบุฟังก์ชันที่ใช้กับ Real Time Clock เบอร์ DS3231 ได้ 7. เขียนโปรแกรมภาษา C เพื่ออ่านค่าเวลาจากโมดูล Real Time Clock เบอร์ DS1307 ได้ 8. เขียนโปรแกรมภาษา C เพื่ออ่านค่าเวลาจากโมดูล Real Time Clock เบอร์ DS3231 ได้ 9. แก้ไขโปรแกรมภาษา C ที่เกี่ยวข้องกับ Real Time Clock ได้ แนวทางปฏิบัติงาน ก่อนเรียน ครูแนะแนวทางคำถาม ชี้แนวทางการหาคำตอบ ขณะเรียน ให้นักศึกษาอภิปรายและสรุปเกี่ยวกับการใช้งาน Real Time Clock ร่วมกับ Arduino หลังเรียน ให้นักเรียนไปค้นคว้าเพิ่มเติมเกี่ยวกับการใช้งาน Real Time Clock ร่วมกับ Arduino และทำใบ งานหน่วยเรียนหน่วยที่ 9 ส่งท้ายชั่วโมง แหล่งค้นคว้า/อ้างอิง สุชิน ชินสีห์(2563). ไมโครคอนโทรลเลอร์. นนทบุรี : โรงพิมพ์ บริษัท ศูนย์หนังสือเมืองไทยจำกัด. กำหนดเวลาส่งงาน - ท้ายชั่วโมงเรียน ใบมอบหมายงานที่ 9 ระดับชั้น ปวช.3 กลุ่ม ทส.3 สัปดาห์ที่15-16 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น ชื่อเรื่อง การใช้งาน Real Time Clock ร่วมกับ Arduino จำนวนชั่วโมง 6 ชั่วโมง
164 การประเมินผล 1. การประเมินผลโดยใช้ใบงานและใบปฏิบัติหน่วยที่ 9 2. สังเกตการมีส่วนร่วมในการเรียน 3. สังเกตจากการตอบคำถาม / การอภิปราย
165 ใบงาน หน่วยที่ 9 การใช้งาน Real Time Clock ร่วมกับ Arduino ร่วมกับ Arduino คำชี้แจง จงตอบคำถามต่อไปนี้ให้ถูกต้อง 1. บอกประโยชน์ของ Real Time Clock 2. อธิบายคุณสมบัติของ Real Time Clock เบอร์ DS1307 3. ระบุแอดเดรสที่เก็บวัน เวลา ของ Real Time Clock เบอร์ DS1307 4. ระบุฟังก์ชันที่ใช้กับ Real Time Clock เบอร์ DS3231 5. ระบุ library ของ Real Time Clock เบอร์ DS1307 6. ระบุฟังก์ชันที่ใช้กับ Real Time Clock เบอร์ DS3231
166 ใบปฏิบัติ หน่วยที่ 9 การใช้งาน Real Time Clock ร่วมกับ Arduino รายการปฏิบัติ คะแนน รายการประเมิน ได้ ไม่ได้ ต่อวงจรใช้งานโมดูล Real Time Clock เบอร์ DS1307 ได้ 2 เขียนโปรแกรมใช้งานโมดูล Real Time Clock เบอร์ DS1307 ได้ 2 ต่อวงจรใช้งานโมดูล Real Time Clock เบอร์ DS3231 ได้ 2 เขียนโปรแกรมใช้งานโมดูล Real Time Clock เบอร์ DS3231 ได้ 2 แก้ไขโปรแกรมภาษา C ตามที่กำหนดได้ 2 รวม
167 ข้อสรุปหลังการจัดการเรียนรู้ ............................................................................................................................. ................................................. ................................................................................. ............................................................................................. .................................................................................................................................................................................... .................................................................................................................................................................................... ปัญหาที่พบ ............................................................................................................................. ....................................................... .................................................................................................................................................................................... ............................................................................................................................. ....................................................... แนวทางการแก้ปัญหา ............................................................................................................................. ....................................................... .................................................................................................................................................................................... (นายพลวัฒน์ ผ่องแก้ว) ครูผู้สอน (นางสาวมยุรี พงษ์อาภา) หัวหน้าแผนกวิชาคอมพิวเตอร์ (นางสาวศิริวรรณ เนาว์ประโคน) รองผู้อำนวยงานฝ่ายวิชาการ บันทึกหลังการจัดการเรียนรู้ ระดับชั้น ปวช.3 กลุ่ม ทส.3 สัปดาห์ที่15-16 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น วันเดือนปี ชื่อเรื่อง การใช้งาน Real Time Clock ร่วมกับ Arduino จำนวนชั่วโมง 6 ชั่วโมง
168 แผนการจัดการเรียนรู้ หน่วยที่ 10 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น สอนครั้งที่ 17-18 ชื่อหน่วย การควบคุมดีซีมอเตอร์ สเต็ปปิงมอเตอร์และอาร์ซี เซอร์โวมอเตอร์ด้วย Arduino ชั่วโมงรวม 6 ชั่วโมง ชื่อเรื่อง การควบคุมดีซีมอเตอร์ สเต็ปปิงมอเตอร์และอาร์ซีเซอร์โวมอเตอร์ด้วย Arduino จำนวน 6 ชั่วโมง สาระสำคัญ การใช้ไอซีไมโครคอนโทลเลอร์เป็นตัวควบคุมการหมุนและทิศทางของมอเตอร์ไฟฟ้ากระแสตรงนั้น ต้องมี ส่วนของวงจร ที่เรียกว่าวงจรขับมอเตอร์ (Driver) ในส่วนของวงจรกลับทิศทางของมอเตอร์สามารถใช้ รีเลย์ต่อ วงจรสวิตช์เพื่อกลับทิศทางของขั้วไฟฟ้ากระแสตรง อาจใช้อุปกรณ์สารกึ่งตัวนำที่เป็นวงจรขับกำลัง เช่น ทรานซิสเตอร์ มอสเฟต ในปัจจุบันมีผู้ผลิตบอร์ดขับมอเตอร์กระแสตรงโดยใช้ไอซีเบอร์ L298N สามารถ ต่อ มอเตอร์ไฟฟ้ากระเสตรงได้ 2 ตัว ซึ่ง IN1, IN2 และ ENA ใช้สำหรับควบคุมมอเตอร์ไฟฟ้ากระแสตรงตัวที่ 1 ส่วน IN3, IN4 และ ENB ใช้สำหรับควบคุมมอเตอร์ไฟฟ้ากระแสตรงตัวที่ 2 คำตัวเลข 255 ในฟังก์ชัน analogWrite(speedM1,255) จะทำให้ PWM มีค่า Duty cycle เท่ากับ 100 9 เป็นผลให้มอเตอร์หมุน ด้วย ความเร็วสูงสุด ถ้าต้องการให้หมุนช้าลงสามารถทำได้โดยลดค่าตัวเลขให้น้อยลง แต่ต้องไม่น้อยกว่า 0 ส่วนคำสั่ง digitalWrite(IN1, LOW) และ digitalWrite(IN2, HIGH) เป็นคำสั่งเพื่อให้มอเตอร์ไฟฟ้ากระแสตรง หมุนหมุนตาม เข็มนาฬิกา ถ้าหากต้องการให้มอเตอร์หมุนในทิศทางตรงกันข้ามสามารถทำได้โดยกำหนดให้ IN1, IN2 มีค่าตรงกัน ข้าม สเต็ปปิงมอเตอร์มีความแตกต่างจากมอเตอร์ทั่วไป กล่าวคือเมื่อป้อนกำลังไฟฟ้าเข้าไปจะหมุนไป เพียง เล็กน้อย สเต็ปปิงมอเตอร์จึงเป็นมอเตอร์ที่หมาะสมสำหรับใช้ในงานควบคุมการหมุนที่ต้องการ และทิศทางที่ แน่นอน สเต็ปปิงมอเตอร์ จะขับเคลื่อนทีละขั้น (Step) มีตั้งแต่ 100 ถึง 400 สเต็ปต่อหนึ่งรอบ หรือหมุนสเต็ปละ 0.9 องศา, 1.8 องศา, 3.6 องศา, 5 องศา7.5 องศา และ 15 องศา ซึ่งขึ้นอยู่กับคุณสมบัติ แต่ละชนิดของสเต็ปปิง มอเตอร์ตัวนั้น ๆ และยังสามารถใช้โปรแกรมให้หมุนเป็นระยะทางไมโครเมตรได้ อาร์ซีเซอร์โวมอเตอร์เป็นมอเตอร์ ไฟฟ้าขนาดเล็กที่สามารถควบคุมตำแหน่ง ความเร็ว และทิศทางการหมุน บ่งเป็น 2 ประเภท คือหมุนได้ 360 องศา (สำหรับอาร์ซีเซอร์โวมอเตอร์ที่ปรับแต่งแล้ว) และหมุนได้ 180 องศา การควบคุมอาร์ซีเซอร์โวมอเตอร์ทำได้ โดยป้อนสัญญาณพัลส์ในรูปแบบ PWM เข้าที่สายสัญญาณ ตำแหน่งและทิศทางการหมุนของแกนหมุนขึ้นอยู่กับ ความกว้างของสัญญาณ
169 สมรรถนะประจำหน่วย 1. แสดงความรู้เกี่ยวกับการควบคุมดีซีมอเตอร์ด้วย Arduino 2. แสดงความรู้เกี่ยวกับการควบคุมสเต็ปปิงมอเตอร์ด้วย Arduino 3. แสดงความรู้เกี่ยวกับการควบคุมเซอร์โวมอเตอร์ด้วย Arduino 4. เขียนโปรแกรมและแก้ไขโปรแกรมภาษา C ที่เกี่ยวกับดีซีมอเตอร์สเต็ปปิงมอเตอร์ และเซอร์โวมอเตอร์ จุดประสงค์การเรียนรู้ประจำหน่วย จุดประสงค์ทั่วไป 1. เพื่อให้นักเรียนอธิบายวิธีการควบคุมดีซีมอเตอร์ 2. เพื่อให้นักเรียนอธิบายการควบคุมทิศทางการหมุนของดีซีมอเตอร์ 3. เพื่อให้นักเรียนอธิบายการควบคุมความเร็วของดีซีมอเตอร์ 4. เพื่อให้นักเรียนระบุฟังก์ชันภาษา C ที่ใช้ควบคุมความเร็วของดีซีมอเตอร์ 5. เพื่อให้นักเรียนอธิบายการควบคุมสเต็ปปิงมอเตอร์ 6. เพื่อให้นักเรียนเขียนโปรแกรมภาษา C เพื่อควบคุมสเต็ปปิงมอเตอร์ 7. เพื่อให้นักเรียนระบุฟังก์ชันภาษา C ที่ใช้ควบคุมสเต็ปปิงมอเตอร์ 8. เพื่อให้นักเรียนอธิบายการทำงานของอาร์ซีเซอร์โวมอเตอร์ 9. เพื่อให้นักเรียนระบุฟังก์ชันภาษา C ที่ใช้ควบคุมอาร์ซีเซอร์โว 10. เพื่อให้นักเรียนเขียนโปรแกรมภาษา C เพื่อควบคุมอาร์ซีเซอร์โว จุดประสงค์เชิงพฤติกรรม 1. อธิบายวิธีการควบคุมดีซีมอเตอร์ได้ 2. อธิบายการควบคุมทิศทางการหมุนของดีซีมอเตอร์ได้ 3. อธิบายการควยคุมความเร็วของดีซีมอเตอร์ได้ 4. ระบุฟังก์ชันภาษา C ที่ใช้ควบคุมความเร็วของดีซีมอเตอร์ได้ 5. อธิบายการควบคุมสเต็ปปิงมอเตอร์ได้ 6. เขียนโปรแกรมภาษา C เพื่อควบคุมสเต็ปปิงมอเตอร์ได้ 7. ระบุฟังก์ชันภาษา C ที่ใช้ควบคุมสเต็ปปิงมอเตอร์ได้ 8. อธิบายการทำงานของอาร์ซีเซอร์โวมอเตอร์ได้ 9. ระบุฟังก์ชันภาษา C ที่ใช้ควบคุมอาร์ซีเซอร์โวได้ 10. เขียนโปรแกรมภาษา C เพื่อควบคุมอาร์ซีเซอร์โวได้
170 กิจกรรมการเรียนรู้ ขั้นตอนการสอน (กิจกรรมของครู) ขั้นตอนการเรียน (กิจกรรมผู้เรียน) เครื่องมือ/การวัดผล ประเมินผล 1.ขั้นนำเข้าสู่บทเรียน 1.1 ครูบอกจุดประสงค์ของการเรียนใน บทเรียนนี้ 1.2 ครูเปิดประเด็นคำถามเกี่ยวกับการ ควบคุมดีซีมอเตอร์ สเต็ปปิง มอเตอร์และอาร์ซีเซอร์โวมอเตอร์ ด้วย Arduino 1.1 นักเรียนรับฟังจุดประสงค์ของการ เรียนในบทเรียนนี้ 1.2 นักเรียนตอบคำถามการควบคุมดีซี มอเตอร์ สเต็ปปิงมอเตอร์และอาร์ซีเซอร์โว มอเตอร์ด้วย Arduino 1. คำถามประจำหน่วย - การตอบคำถามแบบสุ่มถามเพื่อ กระตุ้นผู้เรียน 2. ขั้นสอนทฤษฎี 2.1 ครูอธิบายการใช้การควบคุมดีซี มอเตอร์ สเต็ปปิงมอเตอร์และอาร์ซีเซอร์ โวมอเตอร์ด้วย Arduino 2.2 ซักถามปัญหาเกี่ยวกับการควบคุม ดีซีมอเตอร์ สเต็ปปิงมอเตอร์และอาร์ซี เซอร์โวมอเตอร์ด้วย Arduino 2.1 รับฟังคำบรรยาย 2.2 ตอบคำถามและแสดงความคิดเห็น 1.สื่อนำเสนอ Canva หน่วยที่ 10 2. คำถามหน่วยที่ 10 3. ขั้นสรุป 3.1 ครูและนักเรียนช่วยกันสรุปและ ครูซักถามปัญหาข้อสงสัย 3.1 นักเรียนช่วยครูสรุปและตอบคำถาม 3.2 จดบททึกย่อ 1. สื่อนำเสนอ Canva 4. ขั้นสอนปฏิบัติ 4.1 ครูสาธิตเขียนโปรแกรมเกี่ยวกับ การควบคุมดีซีมอเตอร์ สเต็ปปิงมอเตอร์ และอาร์ซีเซอร์โวมอเตอร์ด้วย Arduino 4.1 นักเรียนปฏิบัติตาม 1. สังเกตและสอบถาม 5. ขั้นการประเมินผล 5.1 ครูแจกใบประเมินผลหลังเรียน หน่วยที่ 10 5.2 ดูแลนักเรียนไม่ให้ทุจริต 5.3 เมื่อครบเวลาที่กำหนดรับ แบบทดสอบคืน 5.1 รับใบประเมินผลหลังเรียนหน่วยที่ 10 5.2 ทำแบบทดสอบหลังเรียน 5.3 เมื่อครบเวลาที่กำหนดส่งแบบทดสอบคืน 1. ใบปฏิบัติหน่วยที่ 10 2. การสอบถาม 6. ขั้นมอบหมายงาน 6.1 รับมอบหมายงาน 1. ใบมอบงานหน่วยที่ 10
171 6.1 ให้นักเรียนไปค้นคว้าเพิ่มเติม เกี่ยวกับการควบคุมดีซีมอเตอร์ สเต็ปปิง มอเตอร์และอาร์ซีเซอร์โวมอเตอร์ด้วย Arduino 7. ขั้นตรวจสอบความเรียบร้อย 7.1 ตรวจความเรียบร้อยและความ เรียบร้อยของห้องเรียนห้องปฏิบัติงาน 7.1 ช่วยกันจัดเก็บและทำความสะอาด ห้องเรียนห้องปฏิบัติงานให้เรียบร้อย 1.ใบตรวจสอบความ เรียบร้อย สื่อการเรียนรู้และแหล่งการเรียนรู้ สื่ออื่นๆ - สื่อนำเสนอ Canva หลักฐานการเรียนรู้ที่ต้องการ หลักฐานความรู้ ใบงานหน่วยที่ 10 หลักฐานการปฏิบัติงาน คะแนนใบงานหน่วยที่ 10 การวัดและประเมินผล การวัดผล (ใช้เครื่องมือ) การประเมินผล (นำผลเทียบกับเกณฑ์และแปลความหมาย) 1. ใบปฏิบัติหน่วยที่ 10 เกณฑ์ผ่าน 100% 2. แบบประเมินคุณธรรม จริยธรรม ตามสภาพจริง เกณฑ์ผ่าน 50% การบูรณาการหลักปรัชญาเศรษฐกิจพอเพียงสู่แผนการจัดการเรียนรู้ การถอดรหัสปรัชญาของเศรษฐกิจพอเพียง การพัฒนาโปรแกรมด้วยเทคโนโลยีดอตเน็ต พอประมาณ มีเหตุผล มีภูมิคุ้มกัน - นักศึกษามีความพอประมาณใน การใชอุปกรณการเรียน - นักศึกษาใชเหตุผลในการ ทำกิจกรรม - นักศึกษาทำงานอยางมีระเบียบวินัยในการ เรียนไมกอความวุนวาย
172 เงื่อนไขความรู้ เงื่อนไขคุณธรรม - นักศึกษามีความรูเกี่ยวกับเนื้อหาในบทเรียน - นักศึกษารูจักความรักและความสามัคคีในเพื่อนรวมหอง เวลามีปญหาในการทำงาน - ชวยกันแกไขขอผิดพลาดที่เกิดขึ้นเบื้องตนกอนถาแกไขไม ไดจึงเรียกอาจารย ครอบคลุม 4 มิติ วัตถุ สังคม สิ่งแวดล้อม วัฒนธรรม - สื่อ วัสดุ อุปกรณ์ - แบบทดสอบ - ใบมอบหมายงาน - ใบปฏิบัติงาน - การช่วยเหลือ เพื่อนในกลุ่ม - การแลกเปลี่ยน เรียนรู้ในชั้นเรียน - การร่วมกิจกรรม - รักษาความสะอาด ของห้องเรียน - จัดโต๊ะให้เหมาะสม - ปิดไฟ พัดลม ก่อนออกจากห้อง - อนุรักษ์ สิ่งแวดล้อม - การอยู่ร่วมกัน ในสังคม
173 เนื้อหาสาระ หน่วยที่ 10 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น สอนครั้งที่ 17-18 ชื่อหน่วย การควบคุมดีซีมอเตอร์ สเต็ปปิงมอเตอร์และอาร์ซี เซอร์โวมอเตอร์ด้วย Arduino ชั่วโมงรวม 6 ชั่วโมง ชื่อเรื่อง การควบคุมดีซีมอเตอร์ สเต็ปปิงมอเตอร์และอาร์ซีเซอร์โวมอเตอร์ด้วย Arduino จำนวน 6 ชั่วโมง หน่วยที่ 10 การควบคุมดีซีมอเตอร์ สเต็ปปิงมอเตอร์และอาร์ซีเซอร์โวมอเตอร์ด้วย Arduino การควบคุมดีซีมอเตอร์ด้วย Arduino มอเตอร์ไฟฟ้ากระแสตรง (DC Motor) การทำงานของมอเตอร์ไฟฟ้ากระแสตรงนั้น อาศัยผ่านกระแสไฟฟ้าให้กับขดลวดใน สนามแม่เหล็ก ซึ่งจะทำให้เกิด แรงแม่เหล็ก แรงแม่เหล็กนี้จะขึ้นอยู่กับกระแสไฟฟ้าและกำลังของสนามแม่เหล็ก ทางเดินของ ฟลักซ์แม่เหล็ก สนามแม่เหล็กจะเกิดจากแท่งแม่เหล็กเฟอร์ไรต์2 ชิ้นที่ขึ้นรูปเป็นแบบโค้งยึดติด กับตัวถังได้พอดี เพื่อให้เส้นแรง แม่เหล็กวิ่งเข้าสู่ใจกลางของมอเตอร์ได้ ดังนั้นความเข้มของแม่เหล็กจึงขึ้นอยู่กับ ขนาดความหนาของแม่เหล็กด้วย ทำให้ลักซ์แม่เหล็กวิ่งไปบนตัวถังโลหะ กระแสไฟฟ้าในขดลวดที่พันกับ โรเตอร์ก็จะทำให้เกิดสนามแม่เหล็กไฟฟ้า และต้านกับนามแม่เหล็กถาวร เกิดเป็นแรงบิดเพื่อที่จะหมุนทุ่น โรเตอร์ให้ไปในทิศทางเดียวกันกับทิศทางของ สนามแม่เหล็ก ที่มีแรงมากกว่า กระแสก็จะไหลผ่านไปยังทุ่นโรเตอร์ หลักการขับและกลับทิศทางของมอเตอร์ไฟฟ้ากระแสตรง (DC Motor) การใช้ไอซีไมโครคอนโทลเลอร์ เป็นตัวควบคุมการหมุนและทิศทางของมอเตอร์ไฟฟ้ากระแสตรง จะต้องมีส่วนของวงจร ที่เรียกว่าวงจรขับมอเตอร์ (Driver) ในส่วนของวงจรกลับทิศทางของมอเตอร์สามารถ ที่จะใช้รีเลย์ต่อวงจรสวิตช์ เพื่อกลับทิศทางของ ขั้วไฟฟ้ากระแสตรง หรืออาจใช้อุปกรณ์สารกึ่งตัวนำที่เป็นวงจร ขับกำลังเช่น ทรานซิสเตอร์ มอสเฟต การใช้รีเลย์ควบคุมการเปลี่ยนทิศทางและการหมุนของมอเตอร์ โดยการควบคุม
174 การปิด-ปิดที่รีเลย์ 2 ตัว ทำหน้าที่กลับทิศทางของขั้วไฟที่ป้อนให้กับมอเตอร์โดยสลับการทำงานของรีเลย์ เช่น ให้รีเลย์ตัวที่ 1 ทำงาน (ON) และรีเลย์ตัวที่ 2 หยุดทำงาน (OF) ทำให้มอเตอร์หมุนไปทางซ้าย ถ้าหากรีเลย์ตัว ที่ 1 หยุดทำงาน (OFF) และรีเลย์ตัวที่ 2 ทำงาน (ON) ก็จะทำให้มอเตอร์หมุนไปทางขวา วงจรในรูป เป็นวงจรลิเนียร์บริดจ์แอมป์ ซึ่งจะประกอบไปด้วยทรานซิสเตอร์กำลัง 4 ตัว ที่ ทำหน้าที่ขับ และควบคุมทิศทางการหมุนของมอเตอร์ ถ้าหากกำหนดให้ทรานซิสเตอร์ Q1 และ 0, อยู่ใน สภาวะทำงาน (Active) กระแสไฟฟ้าจะไหลผ่านทรานซิสเตอร์จากซ้ายไปขว่า โดยผ่านมอเตอร์กระแสตรง ทำ ให้มอเตอร์หมุน CW ในทำนองเดียวกันถ้าหากเราทำให้ทรานซิสเตอร์ 02 และ Q3 อยู่ในสภาวะทำงาน (Active) กระแสไฟฟ้าก็จะ ไหลจากทางขวาไปทางข้ายซึ่งจะส่งผลให้มอเตอร์กลับทิศทางการหมุน (CCW) การควบคุมการหมุนของ DC Motor ดังรูปที่ 9.2 มีข้อเสียตรงที่ถ้า O, และ O, ทำงานพร้อม กัน หรือ 02 และ 0, ทำงานพร้อมกัน จะทำให้ วงจรควบคุม DC motor ดังกล่าวเกิดการชำรุดทันที เพื่อเป็น การแก้ปัญหานี้จึงนิยมใช้ไอซีสำเร็จรูปมาเป็นตัว ควบคุมทิศทางการหมุนของ DC Motor ตัวอย่างเช่นเบอร์ L298N การควบคุมความเร็วและทิศทางของมอเตอร์ไฟฟ้ากระแสตรง H-Bridge Motor Driver มีไฟเลี้ยง 2 ชุด ได้แก่ +5V สำหรับเลี้ยงวงจรดิจิทัลของ H-Bridge Motor Driver ส่วนอีกชุดคือ +VM เป็นฟฟ้ากระแสตรงสำหรับมอเตอร์ เช่น ใช้มอเตอร์ไฟฟ้าขนาด 6 V ให้ใช้ +VM เท่ากับ +6 V หากใช้มอเตอร์ฟฟ้าขนาด 24 V ต้องใช้ +VM เท่ากับ +24 V เป็นต้น สำหรับสัญญาณอินพุตที่ใช้ ควบคุมการทำงานของมอเตอร์ไฟฟ้ากระแสตรงนั้น มี 3 ขา ได้แก่ IN 1, IN2 และ ENA การควบคุมทำงาน 1. int IN1 = 12; 2. int IN2 = 13:
175 3. int speedM1 = 11; 4. void setup() { 5. pinMode(IN1, OUTPUT); 6. pinMode(IN2, OUTPUT); 7. } 8. Void loop() { 9. analogWrite(speedM1, 255); 10. digitalWrite(IN1, LOW); 11. digitalWrite(IN2, HIGH); 12. } ค่าตัวเลข 255 ในฟังก็ชัน analogWrite(speedM1, 255) จะทำให้ PWM มีค่า Duty cycle เท่ากับ 100 % เป็นผลให้มอเตอร์หมุนด้วยความเร็วสูงสุด ถ้าต้องการให้หมุนช้าลงสามารถทำได้โดยลดค่า ตัวเลขให้น้อยลง แต่ ต้องไม่น้อยกว่า 0 ส่วนคำสั่ง digitalWrite(IN1, LOW) และ digitalWrite(IN2, HIGH) เป็นคำสั่งเพื่อให้มอเตอร์ ไฟฟ้ากระแสตรงหมุนตามเข็มนาฬิกา ถ้าหากต้องการให้มอเตอร์หมุนในทิศทางตรงกัน ข้ามสามารถทำได้โดย กำหนดให้ IN1, IN2 มีค่าตรงกันข้าม การควบคุมสเต็ปปังมอเตอร์ด้วย Arduino สเต็ปปีงมอเตอร์มีความแตกต่างจากมอเตอร์ทั่วไป คือเมื่อ ป้อนกำลังไฟฟ้าเข้าไปจะหมุนไปเพียงเล็กน้อย สเต็ปปิงมอเตอร์จึงเป็นมอเตอร์ที่เหมาะสมสำหรับใช้ในงานควบคุม การหมุนที่ต้องการตำแหน่ง และทิศทางที่ แน่นอน สเต็ปปีงมอเตอร์ จะขับเคลื่อนทีละขั้น (Step) มีตั้งแต่ 100 ถึง 400 สเต็ปต่อหนึ่งรอบ หรือหมุน สเต็ปละ 0.9 องศา, 18 องศา, 36 องศา, 5 องศา7.5 องศา และ 15 องศา ซึ่ง ขึ้นอยู่กับคุณสมบัติแต่ละชนิด ของสเต็ปปิงมอเตอร์ตัวนั้น ๆ และยังสามารถใช้โปรแกรมให้หมุนเป็นระยะทาง ไมโครเมตรได้ ชนิดของสเต็ปปิงมอเตอร์สเต็ปปิ้งมอเตอร์ได้แบ่งออกเป็น 2 แบบ คือแบบ 2 เฟส และแบบ 5 เฟส ทั้ง สองแบบมีข้อ แตกต่างกันที่โครงสร้าง แต่ในบทเรียนนี้ผู้เขียนจะกล่าวถึงเฉพาะสเต็ปปิงมอเตอร์แบบ 2 เฟสเท่านั้น สเต็ปปิงมอเตอร์แบบ 2 เฟสแบ่งออกเป็นชนิดยูนิโพลาร์ (Unipolar) และชนิดไบโพลาร์ (Bipolar) แต่ละชนิดมี รายละเอียดดังนี้
176 1. ชนิดยูนิโพลาร์ สร้างของสเต็ปปิงมอเตอร์ชนิดยูนิโพลาร์จะมีจุดต่อที่เป็นจุดสำหรับไฟฟ้าบวก สาย สำหรับต่อผ่านอุปกรณ์สวิตช์ลงกราวด์อีก 4 เส้น ดังนั้นจึงมีสายสำหรับต่อม หรับ Common ภายใน) และ 6 เส้น (สำหรับ Common ภายนอก) รูปโครงสร้างของสเต็ปปิงมอเตอร์ชนิดยูนิโพลาร์แบบ Common ภายใน รูปโครงสร้างของสเต็ปปิงมอเตอร์ชนิดยูนิโพลาร์แบบ Common ภายนอก 2. ชนิดไบโพลาร์ สเต็ปปิงมอเตอร์ชนิดไบโพลาร์จะไม่มีจุดต่อสำหรับต่อไฟฟ้าบวกแต่จะใช้การกระตุ้นผ่าน เฟสของเต็ปปิ้งมอเตอร์ ดังนั้นจึงมีสายต่อออกมาใช้งานจำนวน 4 เส้น โครงสร้างของมอเตอร์ชนิดไบโพลาร์
177 การขับสเต็ปปิงมอเตอร์ชนิดยูนิโพลาร์การควบคุมสเต็ปปิงมอเตอร์ชนิดยูนิโพลาร์ ให้หมุนตามต้องการ มีวิธีการควบคุมกระแสไฟฟ้า ที่จ่ายให้กับขดลวดสเตเตอร์ ในแต่ละเฟสของสเต็ปปิงมอเตอร์ ถ้าต้องการให้มีกระแส ไหลผ่านขดลวดแต่ละเฟส จะแทนด้วย " " ถ้าไม่ต้องการให้มีกระแสไหลผ่านขดลวดเฟสนั้นให้แทนด้วย "0" การ ขับสเต็ปปิงมอเตอร์ ชนิด ยูนิโพลาร์ให้หมุน สามารถทำได้โดยการกระตุ้นเฟส แบ่งเป็น 2 ลักษณะคือ Full step และ Half step การควบคุมให้หมุนแบบ Full tep คือกระกระตุ้นแต่ละครั้งสเต็ปปิงมอเตอร์จะหมุนไปเท่ากับ องศาที่ระบุไว้ที่ สเต็ปปิ้งมอเตอร์ เช่น 1.8 องศา จะหมุน 1.8 องศา ส่วน Half step คือกระกระตุ้นแต่ละครั้งส เต็ปปิงมอเตอร์ จะหมุนไปครึ่งหนึ่งกับองศา คือ 0.9 องศา 1. การขับสเต็ปปีงมอเตอร์ด้วยการกระตุ้นเฟส แบบฟูลสเต็ป (Full step Motor) การขับสเต็ปปีงมอเตอร์ ด้วยการกระตุ้นเฟส แบบฟูลสเต็ปแบ่งได้เป็น 2 แบบคือ (1) การกระตุ้นเฟสแบบฟูลสเต็ป 1 เฟส (Full step single phase) เป็นการป้อนกระแสไฟฟ้าที่ไหล ในขดลวดของสเต็ปปิงมอเตอร์ทีละขด เคลื่อนที่ สเต็ปละตรงกับเลขที่ระบุไว้ที่ตัวมอเตอร์ เช่นสเต็ปปิงมอเตอร์ 1.8 องศา 24 V CW เมื่อกระตุ้นแต่ละครั้งจะ เคลื่อนที่ 1.8 องศา ส่วนทิศทางการหมุนขึ้นอยู่กับการกระตุ้นที่เฟสใด ก่อน ถ้าหากกระตุ้นที่เฟส 1 ก่อนจะหมุน ตามเข็มนาฬิกา ถ้ากระตุ้นที่เฟส 4 ก่อนจะหมุนทวนเข็มนาฬิกา (2) การกระตุ้นเฟสแบบฟูลสเต็ป 2 เฟส (Full step dual phase) เป็นการป้อนกระแสให้กับขดลวด 2 ขด ของสเต็ปปิงมอเตอร์พร้อม ๆ กัน และจะ กระตุ้นเรียงถัดกับไปเช่นเดียวกับแบบหนึ่งเฟส แต่จะทำให้มี แรงบิดของมอเตอร์มากกว่าการกระตุ้นแบบ 1 เฟส เนื่องจากป้อนไฟฟ้าให้แก่ขดลวดที่ละ 2 เฟส สำหรับการ เคลื่อนที่จะเคลื่อนที่สเต็ปและตรงกับเลขที่ระบุไว้ที่ ตัวมอเตอร์ เช่น สเต็ปปิงมอเตอร์ 1.8 องศา 24 V เมื่อกระตุ้น แต่ละครั้งจะเคลื่อนที่ 1.8 องศา ส่วนทิศทาง การหมุนขึ้นอยู่กับการกระตุ้นที่เฟสใดก่อน ถ้าหากกระตุ้นที่เฟส 1 ก่อนจะหมุนตามเข็มนาฬิกา ถ้ากระตุ้นที่ เฟส 4 ก่อนจะหมุนทวนเข็มนาฬิกา 2. การกระตุ้นเฟสแบบฮาล์ฟสเต็ (Half Step) เป็นการกระตุ้นเฟสเบบ 1 เฟส, 2 เฟส, 1 เฟส, 2 เฟส เรียงลำดับกันไป แรงบิดที่ได้จาก การกระตุ้นเฟสแบบนี้จะมีเพิ่มมากขึ้น เพราะช่วงของสเต็ปมีระยะสั้นลง สำหรับ การเคลื่อนที่จะเคลื่อนที่ สเต็ปละครึ่งหนึ่งของตัวเลขที่ระบุไว้ที่ตัวมอเตอร์ เช่น สเต็ปปิงมอเตอร์ 1.8 องศา 24 V เมื่อกระตุ้นแต่ละครั้ง จะเคลื่อนที่ 0.9 องศา ส่วนทิศทางการหมุนขึ้นอยู่กับการกระตุ้นที่เฟสใดก่อน ถ้าหากกระตุ้น ที่เฟส 1 ก่อนจะ หมุนตามเข็มนาฬิกา ถ้ากระตุ้นที่เฟส 4 ก่อนจะหมุนทวนเข็มนาฬิกา 9.2.3 วงจรขับสเต็ปปีงมอ เตอร์ วงจรขับลเต็ปปังมอเตอร์ที่ใช้กับสเต็ปปีงมอเตอร์ชนิดยูนิโพลาร์ เป็นวงจรสวิตซ์อิเล็กทรอนิกส์ที่ ต่อวงจรลง กราวด์ (ขณะ ON) และตัดวงจรที่ต่อลงกราวค์ (ขณะ OF F) ดังนั้นวงจรขับสเต็ปปีงมอเตอร์ชนิดยูนิ โพลาร์เป็น
178 วงจรอินเวิร์ลเตอร์กับสัญญาณอินพุต กล่าวคือ เมื่ออินพุตมีระดับลอจิก 1 เอาต์พุตจะเป็น 0 ถ้าหาก อินพุตเป็น 0 เอาต์พุตจะเป็น 1 วงจรที่นำมาใช้อาจจะสร้างจาก FET หรือ Transistor ไอซีเบอร์ ULN2003, ULN2008 วงจรขับสเต็ปปิงมอเตอร์ชนิดยูนิโพลาร์ ที่ใช้ไอซี ULN2003 แสดงในรูปที่ 9.13 ไอซีเบอร์ ULN2003 จะ มีคุณสมบัติเป็นไอซีขับกระแสสูงแบบ Open Collector สามารถใช้แรงดัน ไฟฟ้าได้ตั้งแต่ 5 ถึง 35 โวลต์ จ่าย กระแสได้สูงถึง 500 mA ต่อขา และมีไดโอดที่ป้องกันกระแสย้อนกับอยู่ภายในโปรแกรมสำหรับควบคุมสเต็ปปิง มอเตอร์ การควบคุมการหมุนของสเต็ปปิงมอเตอร์ชนิดยูนิโพลาร์ ด้วยไมโครคอนโทรลเลอร์ โดยใช้บอร์ด Arduino UNO นั้น สามารถดาวน์โหลดโปรแกรม stepper.h มาเก็บไว้ที่ Library แล้วเรียกใช้โดยใช้ฟังก์ชัน นี้ ซึ่งมี รายละเอียดดังนี้ #include <Stepper.h> หมายถึงเรียกใช้ Stepper.h เข้ามาใช้ในโปรแกรม stepsPerRevolution หมายถึงกำหนดความละเอียดจำนวนพัลส์ที่ใช้ในหนึ่งรอบ Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); ต่อสเต็ปปีงมอเตอร์เฟส 1 ถึง เฟส 4 ที่ พอร์ต D8, D9, D10 และ D11 ตามลำดับ myStepper.setSpeed(50), กำหนดความเร็วรอบเป็น 50 รอบต่อนาที วงจรในรูป จงเขียนโปรแกรมควบคุมการหมุนของสเต็ปปีงมอเตอร์ชนิดยูนิโพลาร์ให้สเต็ปปิงมอเตอร์หมุน ด้วยความเร็ว 50 รอบต่อนาที แต่ละรอบมีความละเอียด 200 และให้หมุนตามเข็ม นาฬิกาเป็นเวลา 5 วินาที หลังจากนั้นให้หมุนทวนเข็มนาฬิกาเป็นเวลา 10 วินาที แล้วกลับไปเริ่มต้นใหม่ โดย ให้แสดงข้อความที่ จอคอมพิวเตอร์ด้วย
179 เขียนเป็นโปรแกรมภาษ1 C++ ได้ดังนี้ 1. #include <stepper.h> 2. const int stepsPerRevolution = 200; 3. Stepper myStepper(stepsPerRevolution, 8,9, 10, 11); 4. void setup() 5. { 6. Serial.begin(9600); 7. myStepper.setSpeed(60); 8. } 9. void loop() 10. { 11. Serial.println("clockwise"); 12. myStepper.step(stepsPerRevolution); 13. delay(5000); 14. Serial.println("counterclockwise"); 15. myStepper.step(-stepsPerRevolution); 16. delay(10000); 17. } การควบคุมอาร์ซีเซอร์โวมอเตอร์ด้วย Arduino โครงสร้างของอาร์ซีเซอร์โวมอเตอร์อาร์ซีเซอร์โวมอเตอร์เป็นมอเตอร์ไฟฟ้าขนาดเล็กที่สามารถควบคุม ตำแหน่ง ความเร็ว และ ทิศทางการหมุน สามารถแบ่งเป็น 2 ประเภท คือหมุนได้ 360 องศา (สำหรับอาร์ซีเซอร์โว มอเตอร์ที่ปรับแต่งแล้ว) และหมุนได้ 180 องศา ส่วนประกอบของอาร์ซีเซอร์โวมอเตอร์ ส่วนประกอบหลักของอาร์ซีเซอร์โโดยทั่วไป มีส่วนประกอบหลัก ดังนี้คือ 1. DC Motor เป็นส่วนให้กำลังในการหมุนของเซอร์โว
180 2. Control Circuit มีหน้าที่ในการถอดรหัสสัญญาณควบคุมจากภาครับ ซึ่งส่งมาเป็นแบบ PWM และส่งสัญญาณ การควบคุมไปสั่งการทำงานของมอเตอร์ให้หมุนแขนของอาร์ซีเซอร์โวมอเตอร์ให้อยู่ ในตำแหน่งที่ได้ถอดรหัสมา 3. Potentiometer (ตัวต้านทานปรับค่าได้) เป็นส่วนที่ตรวจวัดตำแหน่งของอาร์ซีเซอร์โวมอเตอร์ และส่งสัญญาณ กลับไปยัง Control Circuit แก้ไขตำแหน่งให้ถูกต้อง 4. Drive Gear คือชุดทดรอบจากการหมุนของมอเตอร์เพื่อให้ได้แรงบิดที่สูง 5. Output Spine คือส่วนที่ป้องกันการเสียดสีระหว่าง Servo Case และ Output shaft ซึ่งใช้อุปกรณ์ประเภท Baring ลดแรงเสียดทาน 6. Servo Case เป็นตัวถังของอาร์ซีเซอร์โวมอเตอร์ ส่วนมากจะทำมาจากพลาสติก 7. Servo wire เป็นสายไฟฟ้าของอาร์ซีเซอร์โวมอเตอร์ ซึ่งเส้นที่ 1 สายสีน้ำตาลหรือสีดำเป็น สาย Ground สาย เส้นที่ 2 สายสีแดงเป็น + DC (5 ถึง 6 โวลต์) และสายเส้นที่ 3 สายสีขาวหรือสีส้มเป็น การควบคุมอาร์ซีเซอร์โวมอเตอร์การควบคุมอาร์ซีเชอร์โวมอเตอร์ทำได้โดยป้อนสัญญาณพัลส์ในรูปแบบ PWM ลายสัญญาณ ตำแหน่งและทิศทางการหมุนของแกนหมุนขึ้นอยู่กับความกว้างของสัญญาณ เข้าที่
181 รูปร่างสัญญาณ PWM สำหรับควบคุมการหมุนของอาร์ซีเซอร์โวมอเตอร์ เมื่อสัญญาณพัสส์ที่เป็น High เป็นเวลา 1 mร และคาบเวลาที่เป็น Low เป็นเวลา 19 mาร จะทำแกนหมุนของ อาร์ชีเซอร์โวมอเตอร์เคลื่อนที่ไป ที่ 0 องศา เมื่อสัญญาณพัลส์ที่เป็น High เป็นเวลา 1.25 ms และคาบเวลาที่ เป็น Low เป็นเวลา 18. 75 mร จะ ทำแกนหมุนของอาร์ซีเซอร์โวมอเตอร์เคลื่อนที่ไปที่ 45 องศา เมื่อสัญญาณ พัลส์ที่เป็น High เป็นเวลา 1.5 mร และคาบเวลาที่เป็น Low เป็นเวลา 18.5 Mร จะทำแกนหมุนของอาร์ซี เซอร์โวมอเตอร์เคลื่อนที่ไปที่ 90 องศา เมื่อสัญญาณพัสส์ที่เป็น High เป็นเวลา 1.75 ms และคาบเวลาที่เป็น Low เป็นเวลา 18.25 mร จะทำแกนหมุน ของอาร์ซีเซอร์โวมอเตอร์เคลื่อนที่ไปที่ 135 องศา เมื่อสัญญาณพัสส์ ที่เป็น High เป็นเวลา 2.00 ms และคาบเวลา ที่เป็น Low เป็นเวลา 18 mร จะทำแกนหมุนของอาร์ซีเซอร์โว มอเตอร์เคลื่อนที่ไปที่ 180 องศา การเขียนโปรแกรมควบคุมอาร์ซีเซอร์โวมอเตอร์ ชนิดหมุนได้ 180 องศา สำหรับการเขียน โปรแกรมควบคุมอาร์ซีเซอร์โวมอเตอร์ ชนิดหมุนได้ 180 องศา โดยใช้บอร์ด 0 UNO นั้น สามารถดาวน์โหลด โปรแกรม sevo.h มาเก็บไว้ที่ Library แล้วเรียกใช้โดยใช้ฟัง สำหรับควบคุมอาร์ซีเชอร์โวมอเตอร์ โคดหรือ โปรแกรมมีรายละเอียดดังนี้#include <servo.h> หมายถึงเรียกใช้ sevo.h เข้ามาใช้ในโปรแกรม servo myservo; หมายถึงใช้งานฟังก์ชันของเซอร์โวมอเตอร์myservo. attach(6);หมายถึงให้ต่อสายสัญญาณของอาร์ซี เซอร์โวมอเตอร์ที่พอร์ต 06 ที่ สามารถสร้าง PWM ได้ (สามารถเลือกใช้พอร์ต D3, D5, D6, D9, D10 และ D11) myservo.write(90), หมายถึงให้แกนหมุนของอาร์ซีเซอร์โวมอเตอร์หมุนไปที่ 90 องศา ซึ่ง ตัวเลขนี้สามารถ กำหนดได้ตั้งแต่ 0 ถึง 180 ตัวอย่างวงจร จงเขียนโปรแกรมควบคุมการหมุนของอาร์ซีเซอร์โวมอเตอร์ ให้หมุนไปที่ 100 องศา
182 เขียนโปรแกรมได้ดังนี้ 1. #include <Servo.h> // เรียกใช้ sevo.h เข้ามาใช้ใน Servo 2. myservo; //ใช้งานฟังก์ชันของเชอร์โวมอเตอร์ 3. void setup() { 4. myservo.attach(6); //ต่อสายสัญญาณของอาร์ซีเซอร์โวมอเตอร์ที่พอร์ต D6 5. } 6. void loop() { /กำหนดให้อาร์ซีเซอร์โวมอเตอร์หมุนไปที่ 100 องศา 7. myservo.write(100); 8. delay(15); /หน่วงเวลา 15 มิลลิวินาที 9. }
183 ตัวอย่างที่ 9.3 วงจที่ 9.18 จงเชียนโปรแกรมควบคุมการหมุนของอาร์ซีเซอร์โวมอเตอร์ โดยสามารถ ควบคุมหมุน แกนด้วยการปรับ VR1 เขียนโปรแกรมได้ดังนี้ 1. #include <Servo.h> 2. Servo myservo; 3. int potpin = 0; //ต่อ VR ที่พอร์ต A0 4. int val; //กำหนดตัวแปร val ให้สามารถก็บค่าตัวเลขได้ 16 บิต 5. void setup() { 6. myservo.attach(6); 7. } 8. void loop() 9. { 10. val = analogRead(potpin); //อ่านค่าสัญญาณแอนะล็อกจาก A0 เก็บไว้ที่ตัวแปร val ซึ่งจะมีค่า ตั้งแต่ 0 ถึง 1023 11. val = map(val, 0, 1023 0, 180); //เปลี่ยน val จาก 0 ถึง 1023 ให้เป็น 0 กำหนดให้อาร์ซีเซอร์โว //มอเตอร์ไปตามค่าของ val 12. myservo.write(val); 13. delay(15); 14. }
184 จุดประสงค์การมอบหมายงานให้ 1. อธิบายวิธีการควบคุมดีซีมอเตอร์ได้ 2. อธิบายการควบคุมทิศทางการหมุนของดีซีมอเตอร์ได้ 3. อธิบายการควบคุมความเร็วของดีซีมอเตอร์ได้ 4. ระบุฟังก์ชันภาษา C ที่ใช้ควบคุมความเร็วของดีซีมอเตอร์ได้ 5. อธิบายการควบคุมสเต็ปปิงมอเตอร์ได้ 6. เขียนโปรแกรมภาษา C เพื่อควบคุมสเต็ปปิงมอเตอร์ได้ 7. ระบุฟังก์ชันภาษา C ที่ใช้ควบคุมสเต็ปปิงมอเตอร์ได้ 8. อธิบายการทำงานของอาร์ซีเซอร์โวมอเตอร์ได้ 9. ระบุฟังก์ชันภาษา C ที่ใช้ควบคุมอาร์ซีเซอร์โวได้ 10. เขียนโปรแกรมภาษา C เพื่อควบคุมอาร์ซีเซอร์โวได้ แนวทางปฏิบัติงาน ก่อนเรียน ครูแนะแนวทางคำถาม ชี้แนวทางการหาคำตอบ ขณะเรียน ให้นักศึกษาอภิปรายและสรุปเกี่ยวกับการควบคุมดีซีมอเตอร์ สเต็ปปิงมอเตอร์และอาร์ซีเซอร์โว มอเตอร์ด้วย Arduino หลังเรียน ให้นักเรียนไปค้นคว้าเพิ่มเติมเกี่ยวกับการควบคุมดีซีมอเตอร์ สเต็ปปิงมอเตอร์และอาร์ซีเซอร์โว มอเตอร์ด้วย Arduino และทำใบงานและใบปฏิบัติหน่วยเรียนหน่วยที่ 10 ส่งท้ายชั่วโมง แหล่งค้นคว้า/อ้างอิง สุชิน ชินสีห์(2563). ไมโครคอนโทรลเลอร์. นนทบุรี : โรงพิมพ์ บริษัท ศูนย์หนังสือเมืองไทยจำกัด. ใบมอบหมายงานที่ 10 ระดับชั้น ปวช.3 กลุ่ม ทส.3 สัปดาห์ที่17-18 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น ชื่อเรื่อง การควบคุมดีซีมอเตอร์ สเต็ปปิงมอเตอร์และอาร์ ซีเซอร์โวมอเตอร์ด้วย Arduino จำนวนชั่วโมง 6 ชั่วโมง
185 กำหนดเวลาส่งงาน - สัปดาห์ถัดไป การประเมินผล 1. การประเมินผลโดยใช้ใบงานและใบปฏิบัติหน่วยที่ 10 2. สังเกตการมีส่วนร่วมในการเรียน 3. สังเกตจากการตอบคำถาม / การอภิปราย
186 ใบงานหน่วยที่ 10 การควบคุมดีซีมอเตอร์ สเต็ปปิงมอเตอร์และอาร์ซีเซอร์โวมอเตอร์ด้วย Arduino คำชี้แจง จงตอบคำถามต่อไปนี้ให้ถูกต้อง 1. อธิบายวิธีการควบคุมดีซีมอเตอร์ 2. อธิบายการควบคุมทิศทางการหมุนของดีซีมอเตอร์ 3. อธิบายการควบคุมความเร็วของดีซีมอเตอร์ 4. ระบุฟังก์ชันภาษา C ที่ใช้ควบคุมความเร็วของดีซีมอเตอร์ 5. อธิบายการควบคุมสเต็ปปิงมอเตอร์ 6. ระบุฟังก์ชันภาษา C ที่ใช้ควบคุมสเต็ปปิงมอเตอร์ 7. อธิบายการทำงานของอาร์ซีเซอร์โวมอเตอร์ 8. ระบุฟังก์ชันภาษา C ที่ใช้ควบคุมอาร์ซีเซอร์โว
187 ใบปฏิบัติ หน่วยที่ 10 การควบคุมดีซีมอเตอร์ สเต็ปปิงมอเตอร์และอาร์ซีเซอร์โวมอเตอร์ด้วย Arduino รายการปฏิบัติ คะแนน รายการประเมิน ได้ ไม่ได้ ต่อวงจรควบคุมสเต็ปปิงมอเตอร์ได้ 2 เขียนโปรแกรมภาษา C เพื่อควบคุมสเต็ปปิงมอเตอร์ 2 ต่อวงจรควบคุมอาร์ซีเซอร์โวมอเตอร์ได้ 2 เขียนโปรแกรมภาษา C เพื่อควบคุมอาร์ซีเซอร์โวมอเตอร์ได้ 2 แก้ไขโปรแกรมภาษา C ตามที่กำหนดได้ 2 รวม
188 ข้อสรุปหลังการจัดการเรียนรู้ ............................................................................................................................. ................................................. ................................................................................. ............................................................................................. .................................................................................................................................................................................... .................................................................................................................................................................................... ปัญหาที่พบ ............................................................................................................................. ....................................................... .................................................................................................................................................................................... ............................................................................................................................. ....................................................... แนวทางการแก้ปัญหา ............................................................................................................................. ....................................................... .................................................................................................................................................................................... (นายพลวัฒน์ ผ่องแก้ว) ครูผู้สอน (นางสาวมยุรี พงษ์อาภา) หัวหน้าแผนกวิชาคอมพิวเตอร์ (นางสาวศิริวรรณ เนาว์ประโคน) รองผู้อำนวยงานฝ่ายวิชาการ บันทึกหลังการจัดการเรียนรู้ ระดับชั้น ปวช.3 กลุ่ม ทส.3 สัปดาห์ที่17-18 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น วันเดือนปี ชื่อเรื่อง การควบคุมดีซีมอเตอร์ สเต็ปปิงมอเตอร์และอาร์ซีเซอร์ โวมอเตอร์ด้วย Arduino จำนวนชั่วโมง 6 ชั่วโมง