The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

แผนการจัดการเรียนรู้ <br>รหัสวิชา 20901-2405 วิชาการโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น<br>จัดทำโดย นายพลวัฒน์ ผ่องแก้ว<br>ปีการศึกษา 2/2566

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by phonlawat.po, 2024-02-15 04:27:54

แผนการจัดการเรียนรู้ วิชาการโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น

แผนการจัดการเรียนรู้ <br>รหัสวิชา 20901-2405 วิชาการโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น<br>จัดทำโดย นายพลวัฒน์ ผ่องแก้ว<br>ปีการศึกษา 2/2566

96 • ขา GND เชื่อมต่อกับขา GND ของ Arduino • ขา SCLK เชื่อมต่อกับขา D13 ของ Arduino • ขา MOSI เชื่อมต่อกับขา D11 ของ Arduino • ขา MISO เชื่อมต่อกับขา D12 ของ Arduino การเชื่อมต่อแบบ I²C การเชื่อมต่อแบบ I²C เป็นการเชื่อมต่อที่ส่งข้อมูลไปยังจอ LCD ทีละบิต โดยใช้สายสัญญาณเพียง 2 เส้นเท่านั้น การเชื่อมต่อแบบ I²Cมีข้อดีคือ ใช้สายสัญญาณจำนวนน้อยกว่าการเชื่อมต่อแบบ SPI และความเร็วในการส่งข้อมูล ใกล้เคียงกับการเชื่อมต่อแบบ SPI การเชื่อมต่อแบบ I²C ของ TFT LCD สำหรับ Arduino มีรายละเอียดดังนี้ • ขา VCC เชื่อมต่อกับขา 5V ของ Arduino • ขา GND เชื่อมต่อกับขา GND ของ Arduino • ขา SDA เชื่อมต่อกับขา A4 ของ Arduino • ขา SCL เชื่อมต่อกับขา A5 ของ Arduino ตัวอย่างการเชื่อมต่อ TFT LCD สำหรับ Arduino ตัวอย่างการเชื่อมต่อ TFT LCD 2.4 นิ้วแบบ SPI กับ Arduino Uno มีดังนี้ จอ TFT LCD 2.4 นิ้ว | VCC | GND | SCLK | MOSI | MISO | |---|---|---|---|---| | 5V | GND | D13 | D11 | D12 |


97 ตัวอย่างการเชื่อมต่อ TFT LCD 2.4 นิ้วแบบ I²C กับ Arduino Uno มีดังนี้ จอ TFT LCD 2.4 นิ้ว | VCC | GND | SDA | SCL | |---|---|---|---| | 5V | GND | A4 | A5 |


98 การเขียนโปรแกรมควบคุม TFT LCD หลังจากเชื่อมต่อ TFT LCD กับ Arduino เรียบร้อยแล้ว ขั้นตอนต่อไปคือการเขียนโปรแกรมเพื่อควบคุม การทำงานต่าง ๆ ของจอ LCD สามารถทำได้โดยใช้ library ของ Arduino ที่ชื่อว่า TFT ตัวอย่างการเขียนโปรแกรมแสดงข้อความ "Hello, world!" บนจอ TFT LCD แบบ SPI มีดังนี้ /* Simple "Hello World" for ILI9341 LCD https://wokwi.com/arduino/projects/308024602434470466 */ #include "SPI.h" #include "Adafruit_GFX.h" #include "Adafruit_ILI9341.h" #define TFT_DC 9 #define TFT_CS 10 Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC); void setup() { tft.begin(); tft.setCursor(26, 120); tft.setTextColor(ILI9341_RED); tft.setTextSize(3); tft.println("Hello, TFT!"); tft.setCursor(20, 160); tft.setTextColor(ILI9341_GREEN); tft.setTextSize(2); tft.println("I can has colors?"); // Meme reference: https://english.stackexchange.com/questions/20356/origin-of-i-can-haz } void loop() { }


99 ตัวอย่างการเขียนโปรแกรมแสดงข้อความ "Hello, world!" บนจอ TFT LCD แบบ I²C มีดังนี้ #include <Wire.h> #include <TFT_ILI9341.h> TFT_ILI9341 lcd(0x27, 240, 320); // กำหนดขาสัญญาณของจอ TFT LCD void setup() { lcd.begin(); lcd.setTextSize(2); lcd.setTextColor(ILI9341_WHITE); lcd.setCursor(0, 0); // กำหนดขนาดของจอ TFT LCD lcd.print("Hello, world!"); // แสดงข้อความ "Hello, world!" } void loop() { } OLED หรือ Organic Light Emitting Diode เป็นจอแสดงผลแบบอนาล็อกที่ได้รับความนิยมอย่างมาก ในปัจจุบัน เนื่องจากมีอัตราการรีเฟรชเรทสูง แสดงภาพได้คมชัด และประหยัดพลังงาน OLED แต่ละประเภทจะมี การเชื่อมต่อที่แตกต่างกันออกไป ในที่นี้จะกล่าวถึงการเชื่อมต่อ OLED สำหรับ Arduino เป็นหลัก การเชื่อมต่อ OLED สำหรับ Arduino สามารถแบ่งออกเป็น 2 รูปแบบหลัก ๆ คือ • การเชื่อมต่อแบบ SPI • การเชื่อมต่อแบบ I²C การเชื่อมต่อแบบ SPI


100 การเชื่อมต่อแบบ SPI เป็นการเชื่อมต่อที่ส่งข้อมูลไปยังจอ OLED ทีละบิต โดยใช้สายสัญญาณเพียง 4 เส้นเท่านั้น การเชื่อมต่อแบบ SPIมีข้อดีคือ ใช้สายสัญญาณจำนวนน้อยกว่าการเชื่อมต่อแบบ I²C แต่ข้อเสียคือความเร็วในการ ส่งข้อมูลต่ำกว่าการเชื่อมต่อแบบ I²C การเชื่อมต่อแบบ SPI ของ OLED สำหรับ Arduino มีรายละเอียดดังนี้ • ขา VCC เชื่อมต่อกับขา 5V ของ Arduino • ขา GND เชื่อมต่อกับขา GND ของ Arduino • ขา SCLK เชื่อมต่อกับขา D13 ของ Arduino • ขา MOSI เชื่อมต่อกับขา D11 ของ Arduino • ขา MISO เชื่อมต่อกับขา D12 ของ Arduino การเชื่อมต่อแบบ I²C การเชื่อมต่อแบบ I²C เป็นการเชื่อมต่อที่ส่งข้อมูลไปยังจอ OLED ทีละบิต โดยใช้สายสัญญาณเพียง 2 เส้นเท่านั้น การเชื่อมต่อแบบ I²Cมีข้อดีคือ ใช้สายสัญญาณจำนวนน้อยกว่าการเชื่อมต่อแบบ SPI และความเร็วในการส่งข้อมูล ใกล้เคียงกับการเชื่อมต่อแบบ SPI การเชื่อมต่อแบบ I²C ของ OLED สำหรับ Arduino มีรายละเอียดดังนี้ • ขา VCC เชื่อมต่อกับขา 5V ของ Arduino • ขา GND เชื่อมต่อกับขา GND ของ Arduino • ขา SDA เชื่อมต่อกับขา A4 ของ Arduino • ขา SCL เชื่อมต่อกับขา A5 ของ Arduino ตัวอย่างการเชื่อมต่อ OLED สำหรับ Arduino ตัวอย่างการเชื่อมต่อ OLED 1.3 นิ้วแบบ SPI กับ Arduino Uno มีดังนี้


101 จอ OLED 1.3 นิ้ว | VCC | GND | SCLK | MOSI | MISO | |---|---|---|---|---| | 5V | GND | D13 | D11 | D12 | ตัวอย่างการเชื่อมต่อ OLED 1.3 นิ้วแบบ I²C กับ Arduino Uno มีดังนี้ จอ OLED 1.3 นิ้ว | VCC | GND | SDA | SCL | |---|---|---|---| | 5V | GND | A4 | A5 |


102 การเขียนโปรแกรมควบคุม OLED หลังจากเชื่อมต่อ OLED กับ Arduino เรียบร้อยแล้ว ขั้นตอนต่อไปคือการเขียนโปรแกรมเพื่อควบคุมการทำงาน ต่าง ๆ ของจอ OLED สามารถทำได้โดยใช้ library ของ Arduino ที่ชื่อว่า Adafruit_GFX ตัวอย่างการเขียนโปรแกรมแสดงข้อความ "Hello, world!" บนจอ OLED แบบ SPI มีดังนี้ #include <SPI.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> // กำหนดขาสัญญาณของจอ OLED Adafruit_SSD1306 oled(128, 64, &SPI, 13, 11, 12); void setup() { // เริ่มต้นใช้งานจอ OLED oled.begin(); // แสดงข้อความ "Hello, world!" oled.setTextSize(1); oled.setTextColor(WHITE); oled.setCursor(0, 0); oled.print("Hello, world!"); } void loop() { } ตัวอย่างการเขียนโปรแกรมแสดงข้อความ "Hello, world!" บนจอ OLED แบบ I²C มีดังนี้ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> // กำหนดขาสัญญาณของจอ OLED Adafruit_SSD1306 oled(128, 64, &Wire, 0x3C);


103 void setup() { // เริ่มต้นใช้งานจอ OLED oled.begin(); // แสดงข้อความ "Hello, world!" oled.setTextSize(1); oled.setTextColor(WHITE); oled.setCursor(0, 0); oled.print("Hello, world!"); } void loop() { }


104 จุดประสงค์การมอบหมายงานให้ 1. อธิบายการทำงานของการแสดงผลที่หน้าจอคอมพิวเตอร์ 2. อธิบายฟังก์ชันที่ใช้งาน Software serial 3. อธิบายโครงสร้างของ Character LCD 4. ต่อวงจรจอ Character LCD 5. เขียนโปรแกรมเพื่อใช้งานจอ character LCD การเชื่อมต่อแบบ I2C 6. เขียนโปรแกรมเพื่อใช้งาน character LCD 7. อธิบายการใช้งานจอแสดงผลชนิด TFT LCD 8. เขียนโปรแกรมเพื่อใช้งาน TFT LCD 9. อธิบายการใช้งานจอแสดงผลชนิด OLED 10. เขียนโปรแกรมเพื่อมใช้งานจอ OLED แนวทางปฏิบัติงาน ก่อนเรียน ครูแนะแนวทางคำถาม ชี้แนวทางการหาคำตอบ ขณะเรียน ให้นักศึกษาอภิปรายและสรุปเกี่ยวกับจอแสดงผลสำหรับใช้งานร่วมกับบอร์ด Arduino หลังเรียน ให้นักเรียนไปค้นคว้าเพิ่มเติมเกี่ยวกับจอแสดงผลสำหรับใช้งานร่วมกับบอร์ด Arduino และทำใบ งานและปฏิบัติหน่วยเรียนหน่วยที่ 6 ส่งท้ายชั่วโมง แหล่งค้นคว้า/อ้างอิง สุชิน ชินสีห์(2563). ไมโครคอนโทรลเลอร์. นนทบุรี : โรงพิมพ์ บริษัท ศูนย์หนังสือเมืองไทยจำกัด. ใบมอบหมายงานที่ 6 ระดับชั้น ปวช.3 กลุ่ม ทส.3 สัปดาห์ที่9-10 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น ชื่อเรื่อง จอแสดงผลสำหรับใช้งานร่วมกับบอร์ด Arduino จำนวนชั่วโมง 6 ชั่วโมง


105 กำหนดเวลาส่งงาน - ท้ายชั่วโมงเรียน การประเมินผล 1. การประเมินผลโดยใช้ใบงานและใบปฏิบัติหน่วยที่ 6 2. สังเกตการมีส่วนร่วมในการเรียน 3. สังเกตจากการตอบคำถาม / การอภิปราย


106 ใบงานหน่วยที่ 6 จอแสดงผลสำหรับใช้งานร่วมกับบอร์ด Arduino คำชี้แจง จงตอบคำถามต่อไปนี้ให้ถูกต้อง 1. อธิบายการทำงานของการแสดงผลที่หน้าจอคอมพิวเตอร์ 2. อธิบายฟังก์ชันที่ใช้งาน Software serial 3. อธิบายโครงสร้างของ Character LCD 4. อธิบายการใช้งานจอแสดงผลชนิด TFT LCD 5. อธิบายการใช้งานจอแสดงผลชนิด OLED


107 ใบปฏิบัติ หน่วยที่ 6 จอแสดงผลสำหรับใช้งานร่วมกับบอร์ด Arduino รายการปฏิบัติ คะแนน รายการประเมิน ได้ ไม่ได้ ต่อวงจรใช้งาน character LCD ได้ 1 เขียนโปรแกรมใช้งาน character LCD ได้ 1 ต่อวงจรใช้งาน TFT LCD ได้ 1 เขียนโปรแกรมใช้งาน TFT LCD ได้ 1 ต่อวงจรใช้งาน OLED ได้ 2 เขียนโปรแกรมควบคุมการทำงาน OLED ได้ 2 แก้ไขโปรแกรมภาษา C ตามที่กำหนดได้ 2 รวม


108 ข้อสรุปหลังการจัดการเรียนรู้ .............................................................................................................................................................................. .............................................................................................................................................................................. .................................................................................................................................................................................... .................................................................................................................................................................................... ปัญหาที่พบ .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... แนวทางการแก้ปัญหา .................................................................................................................................................................................... .................................................................................................................................................................................... (นายพลวัฒน์ ผ่องแก้ว) ครูผู้สอน (นางสาวมยุรี พงษ์อาภา) หัวหน้าแผนกวิชาคอมพิวเตอร์ (นางสาวศิริวรรณ เนาว์ประโคน) รองผู้อำนวยงานฝ่ายวิชาการ บันทึกหลังการจัดการเรียนรู้ ระดับชั้น ปวช.3 กลุ่ม ทส.3 สัปดาห์ที่9-10 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น วันเดือนปี ชื่อเรื่อง จอแสดงผลสำหรับใช้งานร่วมกับบอร์ด Arduino จำนวนชั่วโมง 6 ชั่วโมง


109 แผนการจัดการเรียนรู้ หน่วยที่ 7 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น สอนครั้งที่ 11-12 ชื่อหน่วย การใช้งานแอนะล็อกและ PWM ของบอร์ด Arduino ชั่วโมงรวม 6 ชั่วโมง ชื่อเรื่อง การใช้งานแอนะล็อกและ PWM ของบอร์ด Arduino จำนวน 6 ชั่วโมง สาระสำคัญ ไอซีไมโครคอนโทรลเลอร์ตระกูล AVR มีโมดูลแปลงสัญญาณแอนะล็อกเป็นสัญญาณดิจิทัล มีความ ละเอียด 10 บิต จำนวนช่องที่สามารถต่อแอนะล็อกได้นั้นแตกต่างกันไป เช่น ไมโครคอนโทรลเลอร์เบอร์ ATmega328/p มีจำนวน 8 ช่อง เบอร์ ATmega32U4 มีจำนวน 12 ช่อง และเบอร์ ATmega2560 มีจำนวน 12 ช่อง ถึงอย่างไรก็ตาม เมื่อนำมาสร้างเป็นบอร์ด Arduino รุ่นมาตรฐาน ผู้ออกแบบได้ออกแบบช่องแอนะล็อกอิน พุตไว้เพียง 6 ช่อง คือ ช่อง AO ถึง A5 ส่วนบอร์ด Arduino รุ่น Mega นั้น มีช่องแอนะล็อกอินพุตจำนวน 16 ช่อง คือช่อง A0 ถึง A15 สำหรับบอร์ด Arduino รุ่นที่สอง (DUE) จะมีช่องช่องแอนะล็อกอินพุตจำนวน 12 ช่อง คือช่อง A0 ถึง A11 และมี ด 12 บิต เนื่องจากใช้ไอซีไมโคคอนโทรลเลอร์เบอร์ ATSAM3X8E บอร์ด Arduino รุ่น U สำหรับส่งออก PWM จำนวน 6 ขา ได้แก่ D3, D5, D6, D9, D10 และ D11 ความถี่ของ PWM ประมาณ 490 Hz นดค่า Duty cycle สามารถกำหนดได้โดยค่าตัวเลข 0 ถึง 255 หมายถึงค่ากำหนดค่า Duty ถึง 100 น นั้น กำหนดด้วยค่าตัวเลข 0 ถึง 255 ฟังก์ชันที่กำหนดให้ส่งสัญญาณ PWM สำหรับ Buzzer เป็น นำผลของ แม่เหล็กไฟฟ้ามาดึงดูดให้แกนอามาเจอร์ (Armature) เคลื่อนที่มาเคาะกับกร เสียงดังได้ ฟังก์ชันที่ใช้กำเนิด สัญญาณเสียงคือ wave(speakerPin, f, t) ซึ่ง speakerPin คือ กับ Buzzer หรือลำโพง f คือค่าความถี่ที่ต้องการ ให้เกิดขึ้น มีหน่วยเป็น Hz ส่วน t คือเวลาที่เกิดเสียง มีหน่วยเป็น ms สมรรถนะประจำหน่วย 1. แสดงความรู้เกี่ยวกับพอร์ตรับสัญญาณแอนะล็อกของบอร์ด Arduino 2. แสดงความรู้เกี่ยวกับ PWM ของบอร์ด Arduino 3. แสดงความรู้เกี่ยวกับการใช้บอร์ด Arduino สำหรับกำเนิดสัญญาณเสียง 4. เขียนโปรแกรมและแก้ไขโปรแกรมภาษา C ที่เกี่ยวข้องกับสัญญาณแอนะล็อก จุดประสงค์การเรียนรู้ประจำหน่วย จุดประสงค์ทั่วไป 1. เพื่อให้นักเรียนอธิบายการใช้งานพอร์ตแอนะล็อกของไมโครคอนโทรลเลอร์ตระกูล AVR 2. เพื่อให้นักเรียนระบุจำนวนช่องสำหรับรับสัญญาณแอนะล็อกของบอร์ด Arduino 3. เพื่อให้นักเรียนเลือกใช้งานพอร์ตแอนะล็อกของ Arduino


110 4. เพื่อให้นักเรียนบอกฟังก์ชันภาษา C ที่ใช้งานสำหรับรับสัญญาณแอนะล็อกของบอร์ด Arduino 5. เพื่อให้นักเรียนเขียนโปรแกรมภาษา C สำหรับรับสัญญาณแอนะล็อกของบอร์ด Arduino 6. เพื่อให้นักเรียนอธิบายการใช้ PWM ของบอร์ด Arduino 7. เพื่อให้นักเรียนระบุความถี่ของสัญญาณ PWM ของบอร์ด Arduino 8. เพื่อให้นักเรียนอธิบายฟังก์ชันภาษา C ที่ใช้งานสำหรับสัญญาณ PWM ของบอร์ด Arduino 9. เพื่อให้นักเรียนอธิบายการใช้บอร์ด Arduino สำหรับกำเนิดเสียง 10. เพื่อให้นักเรียนเขียนโปรแกรมภาษา C สำหรับสร้างสัญญาณเสียง จุดประสงค์เชิงพฤติกรรม 1. อธิบายการใช้งานพอร์ตแอนะล็อกของไมโครคอนโทรลเลอร์ตระกูล AVR ได้ 2. ระบุจำนวนช่องสำหรับรับสัญญาณแอนะล็อกของบอร์ด Arduino ได้ 3. เลือกใช้งานพอร์ตแอนะล็อกของ Arduino ได้ 4. บอกฟังก์ชันภาษา C ที่ใช้งานสำหรับรับสัญญาณแอนะล็อกของบอร์ด Arduino ได้ 5. เขียนโปรแกรมภาษา C สำหรับรับสัญญาณแอนะล็อกของบอร์ด Arduino ได้ 6. อธิบายการใช้ PWM ของบอร์ด Arduino ได้ 7. ระบุความถี่ของสัญญาร PWM ของบอร์ด Arduino ได้ 8. อธิบายฟังก์ชันภาษา C ที่ใช้งานสำหรับสัญญาณ PWM ของบอร์ด Arduinoได้ 9. .อธิบายการใช้บอร์ด Arduino สำหรับกำเนิดเสียงได้ 10. เขียนโปรแกรมภาษา C สำหรับสร้างสัญญาณเสียงได้


111 กิจกรรมการเรียนรู้ ขั้นตอนการสอน (กิจกรรมของครู) ขั้นตอนการเรียน (กิจกรรมผู้เรียน) เครื่องมือ/การวัดผล ประเมินผล 1.ขั้นนำเข้าสู่บทเรียน 1.1 ครูบอกจุดประสงค์ของการเรียนใน บทเรียนนี้ 1.2 ครูเปิดประเด็นคำถามเกี่ยวกับการ ใช้งานแอนะล็อกและ PWM ของ บอร์ด Arduino 1.1 นักเรียนรับฟังจุดประสงค์ของการ เรียนในบทเรียนนี้ 1.2 นักเรียนตอบคำถามการใช้งานแอนะล็อก และ PWM ของบอร์ด Arduino 1. คำถามประจำหน่วย - การตอบคำถามแบบสุ่มถามเพื่อ กระตุ้นผู้เรียน 2. ขั้นสอนทฤษฎี 2.1 ครูอธิบายการใช้งานแอนะล็อก และ PWM ของบอร์ด Arduino 2.2 ซักถามปัญหาเกี่ยวกับการใช้งาน แ อ น ะ ล ็ อ ก แ ละ PWM ขอ ง บอร์ด Arduino 2.1 รับฟังคำบรรยาย 2.2 ตอบคำถามและแสดงความคิดเห็น 1.สื่อนำเสนอ Canva หน่วยที่ 7 2. คำถามหน่วยที่ 7 3. ขั้นสรุป 3.1 ครูและนักเรียนช่วยกันสรุปและ ครูซักถามปัญหาข้อสงสัย 3.1 นักเรียนช่วยครูสรุปและตอบคำถาม 3.2 จดบททึกย่อ 1. สื่อนำเสนอ Canva 4. ขั้นสอนปฏิบัติ 4.1 ครูสาธิตเขียนโปรแกรมเกี่ยวกับ การใช้งานแอนะล็อกและ PWM ของ บอร์ด Arduino 4.1 นักเรียนปฏิบัติตาม 1. สังเกตและสอบถาม 5. ขั้นการประเมินผล 5.1 ครูแจกใบประเมินผลหลังเรียน หน่วยที่ 7 5.2 ดูแลนักเรียนไม่ให้ทุจริต 5.3 เมื่อครบเวลาที่กำหนดรับ แบบทดสอบคืน 5.1 รับใบประเมินผลหลังเรียนหน่วยที่ 7 5.2 ทำแบบทดสอบหลังเรียน 5.3 เมื่อครบเวลาที่กำหนดส่งแบบทดสอบคืน 1. ใบปฏิบัติหน่วยที่ 7 2. การสอบถาม 6. ขั้นมอบหมายงาน 6.1 ให้นักเรียนไปค้นคว้าเพิ่มเติม เกี่ยวกับการใช้งานแอนะล็อกและ PWM ของบอร์ด Arduino 6.1 รับงานที่ได้รับมอบหมาย 1. ใบมอบงานหน่วยที่ 7 7. ขั้นตรวจสอบความเรียบร้อย 7.1 ตรวจความเรียบร้อยและความ 7.1 ช่วยกันจัดเก็บและทำความสะอาด 1.ใบตรวจสอบความเรียบร้อย


112 เรียบร้อยของห้องเรียนห้องปฏิบัติงาน ห้องเรียนห้องปฏิบัติงานให้เรียบร้อย สื่อการเรียนรู้และแหล่งการเรียนรู้ สื่อสิ่งพิมพ์ - สุชิน ชินสีห์(2563). ไมโครคอนโทรลเลอร์. นนทบุรี : โรงพิมพ์ บริษัท ศูนย์หนังสือเมืองไทย จำกัด. สื่ออื่นๆ - สื่อนำเสนอ Canva หลักฐานการเรียนรู้ที่ต้องการ หลักฐานความรู้ ใบงานหน่วยที่ 7 ใบปฏิบัติหน่วยที่ 7 การต่อวงจรและเขียนโปรแกรมควบคุมการทำงาน หลักฐานการปฏิบัติงาน คะแนนใบงานหน่วยที่ 7 คะแนนปฏิบัติหน่วยที่ 7 วงจรและเขียนโปรแกรมควบคุมการทำงาน การวัดและประเมินผล การวัดผล (ใช้เครื่องมือ) การประเมินผล (นำผลเทียบกับเกณฑ์และแปลความหมาย) 1. ใบปฏิบัติหน่วยที่ 7 เกณฑ์ผ่าน 100% 2. ใบงานหน่วยที่ 7 เกณฑ์ผ่าน 50% 2. แบบประเมินคุณธรรม จริยธรรม ตามสภาพจริง เกณฑ์ผ่าน 50% การบูรณาการหลักปรัชญาเศรษฐกิจพอเพียงสู่แผนการจัดการเรียนรู้ การถอดรหัสปรัชญาของเศรษฐกิจพอเพียง การพัฒนาโปรแกรมด้วยเทคโนโลยีดอตเน็ต พอประมาณ มีเหตุผล มีภูมิคุ้มกัน - นักศึกษามีความพอประมาณใน การใชอุปกรณการเรียน - นักศึกษาใชเหตุผลในการ ทำกิจกรรม - นักศึกษาทำงานอยางมีระเบียบวินัยในการ เรียนไมกอความวุนวาย


113 เงื่อนไขความรู้ เงื่อนไขคุณธรรม - นักศึกษามีความรูเกี่ยวกับเนื้อหาในบทเรียน - นักศึกษารูจักความรักและความสามัคคีในเพื่อนรวมหอง เวลามีปญหาในการทำงาน - ชวยกันแกไขขอผิดพลาดที่เกิดขึ้นเบื้องตนกอนถาแกไขไม ไดจึงเรียกอาจารย ครอบคลุม 4 มิติ วัตถุ สังคม สิ่งแวดล้อม วัฒนธรรม - สื่อ วัสดุ อุปกรณ์ - แบบทดสอบ - ใบมอบหมายงาน - ใบปฏิบัติงาน - การช่วยเหลือ เพื่อนในกลุ่ม - การแลกเปลี่ยน เรียนรู้ในชั้นเรียน - การร่วมกิจกรรม - รักษาความสะอาด ของห้องเรียน - จัดโต๊ะให้เหมาะสม - ปิดไฟ พัดลม ก่อนออกจากห้อง - อนุรักษ์ สิ่งแวดล้อม - การอยู่ร่วมกัน ในสังคม


114 เนื้อหาสาระ หน่วยที่ 7 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น สอนครั้งที่ 11-12 ชื่อหน่วย การใช้งานแอนะล็อกและ PWM ของบอร์ด Arduino ชั่วโมงรวม 6 ชั่วโมง ชื่อเรื่อง การใช้งานแอนะล็อกและ PWM ของบอร์ด Arduino จำนวน 6 ชั่วโมง หน่วยที่ 7 การใช้งานแอนะล็อกและ PWM ของบอร์ด Arduino พื้นฐานของแอนะล็อกอินพุตของบอร์ด Arduino ไอซีไมโครคอนโทรลเลอร์ตระกูล AVR จะมีโมดูลแปลง สัญญาณแอนะล็อกเป็นสัญญาณดิจิทัลความละเอียด 10 บิต (มีบางเบอร์ที่มีความละเอียด 12 บิต) จำนวนช่องที่ สามารถต่อแอนะล็อกกันไป เช่น ไอซีไมโครคอนทรลเลอร์เบอร์ ATmega328/pมีจำนวน 8 ช่อง เบอร์ AT 12 ช่อง ส่วนเบอร์ ATmega2560มีจำนวน 16 ช่อง ถึงอย่างไรก็ตามเมื่อนำมาสร้างเป็นบ Arduino รุ่นมาตรฐาน หรือ รุ่นแรก (UNO) ผู้ออกแบบได้ออกแบบช่องแอนะล็อกอินพุตไว้เพียง 6 ช่อง คือช่อง A0 ถึง A5 ส่วนบอร์ด Arduino รุ่น Mega นั้น มีช่องแอนะล็อกอินพุตจำนวน 16 ช่อง คือช่อง A0 ถึง A15 รับบอร์ด Arduino DUE มีช่องแอนะ ล็อกอินพุตจำนวน 12 ช่อง คือช่อง A0 ถึง A11 และมี12 บิต เนื่องจากใช้ใอซีไมโครคอนโทรลเลอร์เบอร์ ATSAM3XBE โมดูลแปลงสัญญาณแอนะล็อกเป็นดิจิทัลที่บรรจุอยู่ภายในไมโครคอนโทรลเลอร์ AVR นั้น มีวงจร แปลงสัญญาณแอนะล็อกเป็นดิจิทัลเพียงชุดเดียว แต่ใช้หลักการมัลติเพล็กซ์สัญญาณแอนะล็อกอินพุตเข้าไปใน วงจร ADC ด้วยความเร็วสูง จึงสามารถรับสัญญาณแอนะล็อกได้หลายช่อง โครงสร้างโมดูลแปลงสัญญาณ แอนะล็ อกเป็นดิจิทัล ฟังก็ชันสำหรับอ่านสัญญาณแอนะล็อก การใช้งานช่องสัญญาณแอนะล็อกอินพุตของบอร์ด Arduino รุ่น UNO ซึ่งประกอบด้วย A0 ถึง A5 นั้น มี ฟังก์ชัน ตัวแปรและการใช้งานเป็นพอร์ตดิจิทัล ดังนี้


115 1. การใช้อ่านสัญญาณแอนะล็อก analogRead(channel); ใช้สำหรับอ่านสัญญาณแอนะล็อก จากอินพุตช่องที่กำหนด channel หมายถึงช่องสัญญาณที่รับ แอนะล็อก คือ 0 ถึง 5 (A0 ถึง A5) เช่น int value1 = analogRead(0) เป็นการรับสัญญาณแอนะล็อกจากช่อง A0 ที่มีขนาด 0V ถึง 5V แล้วแปลงเป็นสัญญาณดิจิทัลที่มีความละเอียด 10 บิต หรือให้ค่าตัวเลข 0 ถึง 1023 เก็บค่าไวที่ตัวแปร value1 int value2 = analogRead(5); เป็นการรับสัญญาณแอนะล็อกจากช่อง A5 ที่มีขนาด 0V ถึง 5V แล้วแปลงเป็นสัญญาณดิจิทัลที่ มีความละเอียด 10 บิต หรือให้ค่าตัวเลข 0 ถึง 1023 เก็บค่าไวที่ตัวแปร value2 2. การแปลงค่าที่ได้จากการอ่านสัญญาณแอนะล็อกให้เป็นค่าตัวเลขจากค่าหนึ่งถึงค่าหนึ่ง map(value, fromLow, fromHigh, toLow, toHigh); value คือตัวแปรที่เก็บค่าที่ได้จากการอ่านค่าสัญญาณแอนะล็อก fromLow คือตัวเลขต่ำสุดของตัวแปร value fromHigh คือตัวเลขสูงสุดของตัวแปร value toLow คือค่าตัวเลขต่ำสุดของค่าที่ต้องการเปลี่ยนไป toHigh คือค่าตัวเลขสูงสุดของค่าที่ต้องการเปลี่ยนไป int value = analogRead(0); int x = map(value,0,1023,0,100); เป็นการแปลงค่าของ value ที่มีค่า 0 ถึง 1023 ให้เป็นค่าใหม่คือ 0 ถึง 100 เก็บค่าไว้ที่ตัวแปร x int num = analogRead(1); int y = map(num,0,1023),50,250); เป็นการแปลงค่าของ num ที่มีค่า 0 ถึง 1023 ให้เป็นค่าใหม่คือ 50 ถึง 250 เก็บค่าไว้ที่ตัวแปร y int analogValue = analogRead(3);


116 int analogValue = map(analogValue,0,1023),0,500); เป็นการแปลงค่าของ analogValue ที่มีค่า 0 ถึง 1023 ให้เป็นค่าใหม่คือ 0 ถึง 500 เก็บค่าไว้ที่ตัว แปร ชื่อเดิม คือ analogValue 3. การใช้ช่องที่รับสัญญาณแอนะล็อกให้เป็นพอร์ตดิจิทัลอินพุตเอาต์พุต ช่องที่รับสัญญาณแอ นะล็อกสามารถกำหนดให้เป็นพอร์ตดิจิทัลอินพุตเอาต์พุตได้โดยการ กำหนดด้วยคำสั่งดังนี้ pinMode(analogChannel,mode) analogChannel หมายถึง A0 ถึง A5 mode หมายถึงต้องการให้เป็นดิจิทัลอินพุต หรือต้องการ ให้เป็นดิจิทัลเอาต์พุต ตัวอย่าง เช่น pinMode(A0, INPUT); // กำหนดให้ A0 เป็นพอร์ตดิจิทัลอินพุต pinMode(A1, OUTPUT); // กำหนดให้ A1 เป็นพอร์ตดิจิทัลเอาต์พุต digitalRead(A0); digitalWrite(A1); การใช้ PWM ของบอร์ด Arduino บอร์ด Arduino รุ่น UNO และ Mega จะไม่มีช่องแอนะล็อกเอาต์พุต แต่จะมีช่องสำหรับเอาต์พุต ของ Width Modulation) ซึ่งบอร์ด Arduino รุ่น UNO จะมีขาสำหรับส่งออก PWM ได้แก่ D3, D5, D6, D9, D10 และ D11 ความถี่ของ PWM ประมาณ 490 Hz การกำหนดค่า Duty cycle สามารถกำหนด โดยค่าตัวเลข 0 ถึง 255 หมายถึงค่ากำหนดค่า Duty cycle 0 ถึง 1023 ด้วยค่าตัวเลข 0 ถึง 255 ฟังก์ชัน ที่กำหนดให้ส่งสัญญาณ PWM analogWrite(pin,value); pin คือพอร์ตที่สามารถส่งสัญญาณ PWM คือ D3, D5, D6, D9, D10 และ D11 (สำหรับบอร์ด UNO) value คือตัวเลขที่กำหนด duty cycle กำหนดได้โดยค่าตัวเลข 0 ถึง 255


117 buzzer เป็นอุปกรณ์ที่ใช้สร้างเสียงได้บนแพลตฟอร์ม Arduino Buzzer เป็นอุปกรณ์ที่สามารถแปลง สัญญาณไฟฟ้าเป็นเสียงได้ โดยทั่วไปในทางปฏิบัตินิยมจะใช้ในการสร้างเสียงเตือนหรือเสียงแจ้งเตือนต่าง ๆ ในโปร เจคอิเล็กทรอนิกส์ หรือการทำโปรแกรมมิ่งต่าง ๆ การใช้งาน Buzzer บน Arduino มีขั้นตอนการเขียนโปรแกรมที่เพื่อให้ Buzzer ส่งสัญญาณเสียงตามที่ ต้องการ ตัวอย่างเช่น: 1. int buzzerPin = 9; // กำหนดขาที่ Buzzer ต่อ 2. void setup() { 3. pinMode(buzzerPin, OUTPUT); // กำหนดขาเป็น OUTPUT 4. } 5. void loop() { 6. // ส่งสัญญาณเสียงด้วยความถี่ 1000 Hz ในเวลา 500 มิลลิวินาที 7. tone(buzzerPin, 1000); 8. delay(500); 9. // ปิดเสียง 10. noTone(buzzerPin); 11. delay(500); 12. }


118 ในตัวอย่างนี้tone() ใช้เพื่อส่งสัญญาณเสียงที่ถูกต้องไปที่ Buzzer ที่ตั้งค่าไว้ใน buzzerPin โดย กำหนดความถี่ของเสียงที่ 1000 Hz และ delay(500) คือการหน่วงเวลา 500 มิลลิวินาที จากนั้น noTone() จะใช้ปิดเสียง


119 จุดประสงค์การมอบหมายงานให้ 1. อธิบายการใช้งานพอร์ตแอนะล็อกของไมโครคอนโทรลเลอร์ตระกูล AVR ได้ 2. ระบุจำนวนช่องสำหรับรับสัญญาณแอนะล็อกของบอร์ด Arduino ได้ 3. เลือกใช้งานพอร์ตแอนะล็อกของ Arduino ได้ 4. บอกฟังก์ชันภาษา C ที่ใช้งานสำหรับรับสัญญาณแอนะล็อกของบอร์ด Arduino ได้ 5. เขียนโปรแกรมภาษา C สำหรับรับสัญญาณแอนะล็อกของบอร์ด Arduino ได้ 6. อธิบายการใช้ PWM ของบอร์ด Arduino ได้ 7. ระบุความถี่ของสัญญาร PWM ของบอร์ด Arduino ได้ 8. อธิบายฟังก์ชันภาษา C ที่ใช้งานสำหรับสัญญาณ PWM ของบอร์ด Arduinoได้ 9. อธิบายการใช้บอร์ด Arduino สำหรับกำเนิดเสียงได้ 10. เขียนโปรแกรมภาษา C สำหรับสร้างสัญญาณเสียงได้ แนวทางปฏิบัติงาน ก่อนเรียน ครูแนะแนวทางคำถาม ชี้แนวทางการหาคำตอบ ขณะเรียน ให้นักศึกษาอภิปรายและสรุปเกี่ยวกับการควบคุมการทำงานของอินพุตและเอาต์พุต หลังเรียน ให้นักเรียนไปค้นคว้าเพิ่มเติมเกี่ยวกับการควบคุมการทำงานของอินพุตและเอาต์พุตและทำใบ งานและปฏิบัติหน่วยเรียนหน่วยที่ 7 ส่งท้ายชั่วโมง แหล่งค้นคว้า/อ้างอิง สุชิน ชินสีห์(2563). ไมโครคอนโทรลเลอร์. นนทบุรี : โรงพิมพ์ บริษัท ศูนย์หนังสือเมืองไทยจำกัด. ใบมอบหมายงานที่ 7 ระดับชั้น ปวช.3 กลุ่ม ทส.3 สัปดาห์ที่11-12 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น ชื่อเรื่อง การใช้งานแอนะล็อกและ PWM ของบอร์ด Arduino จำนวนชั่วโมง 6 ชั่วโมง


120 กำหนดเวลาส่งงาน - ท้ายชั่วโมงเรียน การประเมินผล 1. การประเมินผลโดยใช้ใบงานและใบปฏิบัติหน่วยที่ 7 2. สังเกตการมีส่วนร่วมในการเรียน 3. สังเกตจากการตอบคำถาม / การอภิปราย


121 ใบงาน หน่วยที่ 7 การใช้งานแอนะล็อกและ PWM ของบอร์ด Arduino คำชี้แจง จงตอบคำถามต่อไปนี้ให้ถูกต้อง 1. อธิบายการใช้งานพอร์ตแอนะล็อกของไมโครคอนโทรลเลอร์ตระกูล AVR 2. ระบุจำนวนช่องสำหรับรับสัญญาณแอนะล็อกของบอร์ด Arduino 3. บอกฟังก์ชันภาษา C ที่ใช้งานสำหรับรับสัญญาณแอนะล็อกของบอร์ด Arduino 4. อธิบายการใช้ PWM ของบอร์ด Arduino 5. ระบุความถี่ของสัญญาณ PWM ของบอร์ด Arduino 6. อธิบายฟังก์ชันภาษา C ที่ใช้งานสำหรับสัญญาณ PWM ของบอร์ด Arduino


122 ใบปฏิบัติ หน่วยที่ 7 การใช้งานแอนะล็อกและ PWM ของบอร์ด Arduino รายการปฏิบัติ คะแนน รายการประเมิน ได้ ไม่ได้ ต่อวงจรใช้งานพอร์ตแอนะล็อกได้ 2 เขียนโปรแกรมรับสัญญาณแอนะล็อกได้ 2 ต่อวงจรใช้งาน Buzzer ได้ 2 เขียนโปรแกรมใช้งาน Buzzer ได้ 2 แก้ไขโปรแกรมภาษา C ตามที่กำหนดได้ 2 รวม


123 ข้อสรุปหลังการจัดการเรียนรู้ .............................................................................................................................................................................. .............................................................................................................................................................................. .................................................................................................................................................................................... .................................................................................................................................................................................... ปัญหาที่พบ .................................................................................................................................................................................... .................................................................................................................................................................................... .................................................................................................................................................................................... แนวทางการแก้ปัญหา .................................................................................................................................................................................... .................................................................................................................................................................................... (นายพลวัฒน์ ผ่องแก้ว) ครูผู้สอน (นางสาวมยุรี พงษ์อาภา) หัวหน้าแผนกวิชาคอมพิวเตอร์ (นางสาวศิริวรรณ เนาว์ประโคน) รองผู้อำนวยงานฝ่ายวิชาการ บันทึกหลังการจัดการเรียนรู้ ระดับชั้น ปวช.3 กลุ่ม ทส.3 สัปดาห์ที่11-12 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น วันเดือนปี ชื่อเรื่อง การใช้งานแอนะล็อกและ PWM ของบอร์ด Arduino จำนวนชั่วโมง 6 ชั่วโมง


124 แผนการจัดการเรียนรู้ หน่วยที่ 8 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น สอนครั้งที่ 13-14 ชื่อหน่วย การใช้งาน Arduino ร่วมกับอุปกรณ์ตรวจรู้บูรณา การงานสวนพฤกษศาสตร์โรงเรียนในองค์ประกอบที่ 2 การ รวบรวมพรรณไม้เข้าปลูกในโรงเรียน ข้อที่ 1 ชั่วโมงรวม 6 ชั่วโมง ชื่อเรื่อง การใช้งาน Arduino ร่วมกับอุปกรณ์ตรวจรู้ จำนวน 6 ชั่วโมง สาระสำคัญ คลื่นอัลตร้าโซนิค เป็นคลื่นความถี่เหนือความถี่สัญญาณเสียง ความถี่อัลตร้าโซนิกนั้น ที่นิยมใช้งาน เซ็นเซอร์วัดระยะรุ่นต่าง ๆ จะมีความถี่ที่ประมาณ 40 KHz ข้อดีของการใช้ความถี่นี้ คือมีลักษณะ ยาวคลื่นที่สั้น ส่งผลให้คลื่นไม่แตกจายออกเป็นวงกว้าง และสามารถยิงคลื่นตรงไปชนวัตถุใด ๆ ก็ได้ และ นอกจากนี้ความถี่ 40 KHz ยังเป็นความถี่ที่มีระยะเดินทางเพียงพอกับการใช้งาน หากใช้ความถี่สูงขึ้นจะทำให้ คลื่นเดินทางได้ใน ระยะทางที่ลดลง ทำให้เมื่อนำมาใช้งานจริงจะวัดระยะได้ในระยะที่สั้น หลักการที่สำคัญของ การวัดระยะด้วยคลื่น อัลตร้าโซนิก คือการส่งคลื่นอัลตร้าโซนิกจำนวนหนึ่งออกไปจากตัวส่ง (Transmitter) เมื่อ คลื่นวิ่งไปชนกับวัตถุ คลื่นจะมีการสะท้อนกลับมา แล้ววิ่งกลับยังตัวรับ (Receiver) ระยะเวลาที่ส่งคลื่นออกไป จนถึงได้รับคลื่นกลับมา โดยอัตราเร็วเสียงที่เดินทางได้ในอากาศสามารถหาได้ตามสูตร อัตราเร็วของเสียง ในอากาศ - 331 + (0.606 x คุณหภูมิในหน่วยองศาเซลเซียส) m/s ดังนั้นจึงสามารถคำนวณระยะทางได้จาก distance = (PulseWidth * 0.0347362)/2; หรือ distance = PulseWidth * 0.0173681; โมดูลวัดระยะทางด้วยแสงอินฟราเรตจะส่งแสงอินฟราเรดจากตัวส่งไปกระทบวัตถุผ่านเลนส์นูน เพื่อ โฟกัสแสงให้มีคสามเข้มแสงไปยังจุดใดจุดหนึ่ง เมื่อแสกระทบวัตถุจะเกิดการกระเจิงของแสงไปทิศทางต่าง ๆ แสง ส่วนหนึ่งจะกระเจิงกลับมายังภาครับ โดยมีเลนส์รวบรวมแสงและกำหนดจุดตกกระทบ แสงจะถูกส่งผ่าน ไปยังโฟ โต้ทรานจิสตอร์จำนวนมากที่ต่อเรียงกันเป็นอาร์เรย์ สมการคำนวณหาระยะทางของโมดูลวัดระยะทาง ด้วยแสง อินฟราเรด สูตรการคำนวณสำหรับหาระยะทางของวัตถุที่ห่างจากเลนส์ของตัวส่ง กรณีใช้วงจร AOC ความ ละเอียด 10 บิต - สำหรับโมคูลตรวจวัดระยะทางแบบอินฟราเรด รุ่น GP2YOA41 2914 ระยะทาง = 2914 + 5 − 1 เมื่อ AN คือค่าตัวเลขที่ได้จากวงจร ADC ที่มีความละเอียด 10 บิต -สำหรับโมดูลตรวจวัดระยะทางแบบอินฟราเรด รุ่น GP2YOA21 ระยะทาง = 6787 − 3 − 4


125 เมื่อ AN คือค่าตัวเลขที่ได้จากวงจร ADC ที่มีความละเอียด 10 บิต อุปกรณ์ตรวจรู้อุณหภูมิและความชื้นสำหรับวัดอุณหภูมิและความชื้นสัมพัทธ์ (Temperature Relative Humidity Sensor) เป็นอุปกรณ์ที่สกมารถนำมาประยุกต์ใช้งานทางด้านระบบสมองกลฝังตัวได้ หลากหลาย เช่น การวัดและควบคุมอุณหภูมิและความชื้น ระบบบันทึกข้อมูลเกี่ยวกับอุณหภูมิและความชื้น ในห้อง เป็นต้น อุปกรณ์ประเกทนี้แตกต่างกันตามผู้ผลิต ราคา ความแม่นยำ ความละเอียดในการวัต การให้ค่า แบบดิจิทัลหรือ แบบแอนะล็อก อุปกรณ์ตรวจรู้อุณหภูมิและความชื้นที่นิยมใช้ในปัจจุบันมีหลายเบอร์ เช่นเบอร์ DHT22 / AM2302 ซึ่งมีราคาถูก ให้ค่าเป็นแบบดิจิทัล ใช้ขาสัญญาณดิจิทัลเพียงเส้นเดียวสำหรับการเชื่อมต่อ แบบบิต อนุกรมสองทิศทาง (serial data, bi-directional โดยนำมาเชื่อมต่อกับ Arduino เพื่ออ่านค่าจาก เซนเชอร์รูปร่าง ของ DHT22 / AM2302 สมรรถนะประจำหน่วย 1. แสดงความรู้เกี่ยวกับอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอัลตราโซนิก 2. แสดงความรู้เกี่ยวกับ อุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอินฟาร์เรด 3. แสดงความรู้เกี่ยวกับอุปกรณ์ตรวจรู้อุณหภูมิและความชื้น 4. เขียนโปรแกรมและแก้ไขโปรแกรมภาษา C ที่เกี่ยวกับอุปกรณ์ตรวจรู้ 5. บูรณาการงานสวนพฤกษศาสตร์โรงเรียนในองค์ประกอบที่ 2 การรวบรวมพรรณไม้เข้าปลูกใน โรงเรียน ข้อที่ 1 จุดประสงค์การเรียนรู้ประจำหน่วย จุดประสงค์ทั่วไป 1. เพื่อให้นักเรียนอธิบายหลักการทำงานของอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอัลตราโซนิก 2. เพื่อให้นักเรียนระบุฟังก์ชันภาษา C ที่ใช้กับอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอัลตราโซนิก 3. เพื่อให้นักเรียนเขียนโปรแกรมภาษา C เพื่ออ่านค่าจากอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอัลตราโซนิก 4. เพื่อให้นักเรียนอธิบายหลักการทำงานของอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอินฟราเรด 5. เพื่อให้นักเรียนระบุฟังก์ชันภาษา C ที่ใช้กับอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอินฟราเรด 6. เพื่อให้นักเรียนเขียนโปรแกรมภาษา C เพื่ออ่านค่าจากอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอินฟราเรด 7. เพื่อให้นักเรียนอธิบายหลักการทำงานของอุปกรณ์ตรวจรู้อุณหภูมิและความชื้น 8. เพื่อให้นักเรียนระบุฟังก์ชันภาษา C ที่ใช้กับอุปกรณ์ตรวจรู้อุณหภูมิและความชื้น 9. เพื่อให้นักเรียนเขียนโปรแกรมภาษา C เพื่ออ่านค่าจากอุปกรณ์ตรวจรู้อุณหภูมิและความชื้น 10. เพื่อให้นักเรียนแก้ไขโปรแกรมภาษา C ที่ใช้กับอุปกรณ์ตรวจรู้ที่ใช้งานร่วมกับบอร์ด Arduino


126 11. บูรณาการงานสวนพฤกษศาสตร์โรงเรียนในองค์ประกอบที่ 2 การรวบรวมพรรณไม้เข้าปลูกใน โรงเรียน ข้อที่ 1 จุดประสงค์เชิงพฤติกรรม 1. อธิบายหลักการทำงานของอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอัลตราโซนิกได้ 2. ระบุฟังก์ชันภาษา C ที่ใช้กับอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอัลตราโซนิกได้ 3. เขียนโปรแกรมภาษา C เพื่ออ่านค่าจากอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอัลตราโซนิกได้ 4. อธิบายหลักการทำงานของอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอินฟราเรดได้ 5. ระบุฟังก์ชันภาษา C ที่ใช้กับอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอินฟราเรดได้ 6. เขียนโปรแกรมภาษา C เพื่ออ่านค่าจากอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอินฟราเรดได้ 7. อธิบายหลักการทำงานของอุปกรณ์ตรวจรู้อุณหภูมิและความชื้นได้ 8. ระบุฟังก์ชันภาษา C ที่ใช้กับอุปกรณ์ตรวจรู้อุณหภูมิและความชื้นได้ 9. เขียนโปรแกรมภาษา C เพื่ออ่านค่าจากอุปกรณ์ตรวจรู้อุณหภูมิและความชื้นได้ 10. แก้ไขโปรแกรมภาษา C ที่ใช้กับอุปกรณ์ตรวจรู้ที่ใช้งานร่วมกับบอร์ด Arduino ได้ 11. บูรณาการงานสวนพฤกษศาสตร์โรงเรียนในองค์ประกอบที่ 2 การรวบรวมพรรณไม้เข้าปลูกใน โรงเรียน ข้อที่ 1


127 กิจกรรมการเรียนรู้ ขั้นตอนการสอน (กิจกรรมของครู) ขั้นตอนการเรียน (กิจกรรมผู้เรียน) เครื่องมือ/การวัดผล ประเมินผล 1.ขั้นนำเข้าสู่บทเรียน 1.1 ครูบอกจุดประสงค์ของการเรียนใน บทเรียนนี้ 1.2 ครูเปิดประเด็นคำถามเกี่ยวกับการ ใช้งาน Arduino ร่วมกับอุปกรณ์ ตรวจรู้ 1.3 บูรณาการงานสวนพฤกษศาสตร์ โรงเรียนในองค์ประกอบที่ 2 การ รวบรวมพรรณไม้เข้าปลูกใน โรงเรียน ข้อที่ 1 1.1 นักเรียนรับฟังจุดประสงค์ของการ เรียนในบทเรียนนี้ 1.2 นักเรียนตอบคำถามการใช้งาน Arduino ร่วมกับอุปกรณ์ตรวจรู้ 1.3 บูรณาการงานสวนพฤกษศาสตร์โรงเรียน ในองค์ประกอบที่ 2 การรวบรวมพรรณไม้เข้า ปลูกในโรงเรียน ข้อที่ 1 1. คำถามประจำหน่วย - การตอบคำถามแบบสุ่มถามเพื่อ กระตุ้นผู้เรียน 2. ขั้นสอนทฤษฎี 2.1 ครูอธิบายการใช้การใช้งาน Arduino ร่วมกับอุปกรณ์ตรวจรู้ 2.2 ซักถามปัญหาเกี่ยวกับการใช้งาน Arduino ร่วมกับอุปกรณ์ตรวจรู้ 2.3 บูรณาการงานสวนพฤกษศาสตร์ โรงเรียนในองค์ประกอบที่ 2 การ รวบรวมพรรณไม้เข้าปลูกในโรงเรียน ข้อ ที่ 1 2.1 รับฟังคำบรรยาย 2.2 ตอบคำถามและแสดงความคิดเห็น 1.สื่อนำเสนอ Canva หน่วยที่ 8 2. คำถามหน่วยที่ 8 3. ขั้นสรุป 3.1 ครูและนักเรียนช่วยกันสรุปและ ครูซักถามปัญหาข้อสงสัย 3.1 นักเรียนช่วยครูสรุปและตอบคำถาม 3.2 จดบททึกย่อ 1. สื่อนำเสนอ Canva 4. ขั้นสอนปฏิบัติ 4.1 ครูสาธิตเขียนโปรแกรมเกี่ยวกับ การใช้งาน Arduino ร่วมกับอุปกรณ์ ตรวจรู้ 4.2 บูรณาการงานสวนพฤกษศาสตร์ โรงเรียนในองค์ประกอบที่ 2 การรวบรวม พรรณไม้เข้าปลูกในโรงเรียน ข้อที่ 1 4.1 นักเรียนปฏิบัติตาม 4.2 บูรณาการงานสวนพฤกษศาสตร์โรงเรียน ในองค์ประกอบที่ 2 การรวบรวมพรรณไม้เข้า ปลูกในโรงเรียน ข้อที่ 1 1. สังเกตและสอบถาม 5. ขั้นการประเมินผล 5.1 รับใบประเมินผลหลังเรียนหน่วยที่ 8 1. ใบปฏิบัติหน่วยที่ 8


128 5.1 ครูแจกใบประเมินผลหลังเรียน หน่วยที่ 8 5.2 ดูแลนักเรียนไม่ให้ทุจริต 5.3 เมื่อครบเวลาที่กำหนดรับ แบบทดสอบคืน 5.4 บูรณาการงานสวนพฤกษศาสตร์ โรงเรียนในองค์ประกอบที่ 2 การ รวบรวมพรรณไม้เข้าปลูกในโรงเรียน ข้อ ที่ 1 5.2 ทำแบบทดสอบหลังเรียน 5.3 เมื่อครบเวลาที่กำหนดส่งแบบทดสอบคืน 5.4 บูรณาการงานสวนพฤกษศาสตร์โรงเรียน ในองค์ประกอบที่ 2 การรวบรวมพรรณไม้เข้า ปลูกในโรงเรียน ข้อที่ 1 2. การสอบถาม 3. บูรณาการงานสวน พฤกษศาสตร์โรงเรียนใน องค์ประกอบที่ 2 การ รวบรวมพรรณไม้เข้าปลูกใน โรงเรียน ข้อที่ 1 6. ขั้นมอบหมายงาน 6.1 ให้นักเรียนไปค้นคว้าเพิ่มเติม เกี่ยวกับการใช้งาน Arduino ร่วมกับ อุปกรณ์ตรวจรู้ 6.2 บูรณาการงานสวนพฤกษศาสตร์ โรงเรียนในองค์ประกอบที่ 2 การ รวบรวมพรรณไม้เข้าปลูกในโรงเรียน ข้อ ที่ 1 6.1 รับมอบหมายงาน 6.2 บูรณาการงานสวนพฤกษศาสตร์โรงเรียน ในองค์ประกอบที่ 2 การรวบรวมพรรณไม้เข้า ปลูกในโรงเรียน ข้อที่ 1 1. ใบมอบงานหน่วยที่ 8 2. บูรณาการงานสวน พฤกษศาสตร์โรงเรียนใน องค์ประกอบที่ 2 การรวบรวม พรรณไม้เข้าปลูกในโรงเรียน ข้อที่ 1 7. ขั้นตรวจสอบความเรียบร้อย 7.1 ตรวจความเรียบร้อยและความ เรียบร้อยของห้องเรียนห้องปฏิบัติงาน 7.1 ช่วยกันจัดเก็บและทำความสะอาด ห้องเรียนห้องปฏิบัติงานให้เรียบร้อย 1.ใบตรวจสอบความ เรียบร้อย สื่อการเรียนรู้และแหล่งการเรียนรู้ สื่อสิ่งพิมพ์ - สุชิน ชินสีห์(2563). ไมโครคอนโทรลเลอร์. นนทบุรี : โรงพิมพ์ บริษัท ศูนย์หนังสือเมืองไทย จำกัด. สื่ออื่นๆ - สื่อนำเสนอ Canva หลักฐานการเรียนรู้ที่ต้องการ หลักฐานความรู้ ใบงานหน่วยที่ 8 ใบปฏิบัติหน่วยที่ 8


129 การต่อวงจรและเขียนโปรแกรมควบคุมการทำงาน หลักฐานการปฏิบัติงาน คะแนนใบงานหน่วยที่ 8 วงจรและเขียนโปรแกรมควบคุมการทำงาน การวัดและประเมินผล การวัดผล (ใช้เครื่องมือ) การประเมินผล (นำผลเทียบกับเกณฑ์และแปลความหมาย) 1. ใบปฏิบัติหน่วยที่ 8 เกณฑ์ผ่าน 100% 2. ใบงานหน่วยที่ 8 เกณฑ์ผ่าน 50% 2. แบบประเมินคุณธรรม จริยธรรม ตามสภาพจริง เกณฑ์ผ่าน 50% การบูรณาการหลักปรัชญาเศรษฐกิจพอเพียงสู่แผนการจัดการเรียนรู้ การถอดรหัสปรัชญาของเศรษฐกิจพอเพียง การพัฒนาโปรแกรมด้วยเทคโนโลยีดอตเน็ต พอประมาณ มีเหตุผล มีภูมิคุ้มกัน - นักศึกษามีความพอประมาณใน การใชอุปกรณการเรียน - นักศึกษาใชเหตุผลในการ ทำกิจกรรม - นักศึกษาทำงานอยางมีระเบียบวินัยในการ เรียนไมกอความวุนวาย เงื่อนไขความรู้ เงื่อนไขคุณธรรม - นักศึกษามีความรูเกี่ยวกับเนื้อหาในบทเรียน - นักศึกษารูจักความรักและความสามัคคีในเพื่อนรวมหอง เวลามีปญหาในการทำงาน - ชวยกันแกไขขอผิดพลาดที่เกิดขึ้นเบื้องตนกอนถาแกไขไม ไดจึงเรียกอาจารย ครอบคลุม 4 มิติ วัตถุ สังคม สิ่งแวดล้อม วัฒนธรรม - สื่อ วัสดุ อุปกรณ์ - แบบทดสอบ - ใบมอบหมายงาน - ใบปฏิบัติงาน - การช่วยเหลือ เพื่อนในกลุ่ม - การแลกเปลี่ยน เรียนรู้ในชั้นเรียน - การร่วมกิจกรรม - รักษาความสะอาด ของห้องเรียน - จัดโต๊ะให้เหมาะสม - ปิดไฟ พัดลม ก่อนออกจากห้อง - อนุรักษ์ สิ่งแวดล้อม - การอยู่ร่วมกัน ในสังคม


130


131 เนื้อหาสาระ หน่วยที่ 8 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น สอนครั้งที่ 13-14 ชื่อหน่วย การใช้งาน Arduino ร่วมกับอุปกรณ์ตรวจรู้ ชั่วโมงรวม 6 ชั่วโมง ชื่อเรื่อง การใช้งาน Arduino ร่วมกับอุปกรณ์ตรวจรู้ จำนวน 6 ชั่วโมง หน่วยที่ 8 การใช้งาน Arduino ร่วมกับอุปกรณ์ตรวจรู้ อุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอัลตร้าโซนิก คลื่นอัลตร้าโซนิก เป็นคลื่นความถี่เหนือความถี่ สัญญาณเสียง โดยปกติแล้ว มนุษย์สามารถได้ยินเสียงหรือรับรู้ได้ที่ความถี่ 20 Hz ถึง 20 kHZ แต่คลื่นอัลตร้า โซนิกนั้น ระบเพียงว่าเป็นคถิ่นที่มีความถี่เหนือคลื่นความถี่สียง แต่ไม่ได้บอกว่าความถี่เท่าใด ความถี่อัลตร้าโซนิก นั้น ที่นิยมใช้งานเซ็นเซอร์วัดระยะรุ่นต่ำ ครามถี่ที่ประมาณ 40 kHz ข้อตีของการใช้ความถี่นี้ คือมีลักษณะของ ความยาวคสี่นที่สั้น ส่งผลให้คลื่นไม่แตก กระจ่ายออกเป็นวงกว้าง และสามารถยิงคลื่นตรงไปชนวัตถุใด ๆ ก็ได้ และนอกจากนี้ความถี่ 40 KH2 ยังเป็น ความถี่ที่มีระยะเดินทางเพียงพอกับการใช้งาน หากใช้ความถี่สูงขึ้นจะทำให้ คลื่นเดินทางได้ในระยะทางที่สดลง ทำให้เมื่อนำมาใช้งานจริงจะวัดระยะได้ในระยะที่สั้น หลักการวัดระยะด้วยคลื่น อัลตร้าโซนิก หลักการที่สำคัญของการวัดระยะด้วยคลื่นอัลตร้าโซนิก คือการส่งคลื่นอัลตร้าโซนิกจำนวนหนึ่ง ออกไปจากตัวส่ง (Transmitter) เมื่อคลื่นวิ่งไปชนกับวัตถุ คลื่นจะสะท้อนกลับมา แล้ววิ่งกลับยังตัวรับ (Receiver) ระยะเวลาที่ส่งคลื่นออกไป จนถึงได้รับคลื่นกลับมา ทำให้เราสามารถหาระยะห่างระหว่างวัตถุกับ เซ็นเซอร์ได้


132 ระยะเวลาที่ได้จากการวัดช่วงเวลาการเดินทางไปและกลับนี้ เราสามารถนำค่าที่ได้ไป เรียบเทียบกับอัตราเร็วที่ เสียงสามารถเดินทางได้ไปในอากาศได้เลย โดยอัตราเร็วเสียงที่เดินทางได้ในอากาศ สมารถหาได้ตามสูตร อัตราเร็วของเสียงในอากาศ = 331 + (0.606 x อุณหภูมิในหน่วยองศาเซลเซียส) m/s หากอุณหภูมิ 27 องศาเซลเซียส อัตราเร็วของเสียงในอากาศ = 331 + (0.606 x 27) m/s = 347.362 m/s = 0.0347362 cm/us สังเกตว่าอัตราเร็วของเสียงที่เดินทางในอากาศนั้น จะขึ้นอยู่กับอุณหภูมิ ณ ขณะนั้นด้วย ดังนั้น ในเซ็นเซอร์อัลตรัา โซนิศบางรุ่น จึงมีเซ็นเชอร์วัดอุณหภูมิมาด้วย ทำให้สามารถวัดระยะทางได้แม่นยำมากยิ่งขึ้น สำหรับในรุ่นที่ไม่มี เซ็นเซอร์วัดอุณหภูมิ สามารถนำเซ็นเซอร์วัดอุณหภูมิมาต่อเพื่อแก้ค่าความผิดพลาดเองได้ หรือใช้ค่อุณหภูมิเฉลี่ย ทั้งปีของประเทศไทยได้ อุณหภูมิเฉลี่ยของประเทศไทยทั้งปีจะอยู่ที่ 27 องศาเซลเชียส 7,1.2 หลักการทำงานของ เซ็นเซอร์วัดระยะทางด้วยคลื่นอัลตร้าโซนิค ในโมดุลเซ็นเซอร์อัสตร้โซนิคนั้น จะมีวงจรที่แตกต่างกัน เนื่องจากแต่ ละรุ่นมีความสามารถที่ แตกต่างกัน แต่ยังคงมีหลักการทำงานงานที่สำคัญที่เหมือนกัน จากรูปที่ 17.2 จะเห็นว่า เมื่อมีการส่งสัญญาณ เข้าไปที่ Trg วงจรภายในจะเริ่มสร้างความถี่ 40 KH2 จำนวน 8 ลูกคลื่นออกไป โดยใช้ ความถี่จากคลิสตอล เป็นตัวอ้างอิง แล้วตัวส่งที่เปรียบเสมือนลำโพง จะส่งสัญญาณออกไป จากนั้นเมื่อคลื่นวิ่ง กลับมาที่ตัวรับ ที่ เปรียบเสมือนเป็นไมโครโฟน สัญญาณฟฟ้าจะผ่านตัวประมวลผล แล้วให้ค่าเอาต์พุตออกมาทาง ขา Echo จะ เห็นว่า แกนหลักของเซ็นเชอร์จะเป็นตัวประมวลผล ซึ่งตัวประมวนผลนี้ ในแต่ละรุ่นก็จะแตกต่างกัน อย่างใน รุ่น HC-SR04 จะใช้ไอซีไมโครคอนโทรลเลอร์เบอร์ ATtiny24 การทริกสัญญาณ เซ็นเซอร์หลายรุ่น ใช้วิธีนี้ในการติดต่อสื่อสารกับไมโครคอนโทรลเลอร์ ซึ่งใน แต่ละรุ่น จะใช้จำนวนสายไม่เท่ากัน ในบางรุ่นจะใช้สาย 2 เส้น คือ Trig สำหรับส่งสัญญาณ และ Echo สำหรับ รับสัญญาณ กลับมา และในบางรุ่นจะใช้เส้นเดียว คือทั้ง Trig และ Echo อยู่เส้นเตียวกันเลย และใช้วิ แบ่งเวลารับ - ส่งข้อมูล


133 (หลักการเหมือน 1-wire bus) ในการสื่อสารแบบทริกสัญญาณ เริ่มต้นจะต้องให้ สัญญาณขา Trig มีสถานะทาง ลอจิกเป็น LOW เสียก่อน จากนั้นจึงเริ่มทริกสัญญาณ โดยให้ขา Trig มีสถานะ เป็น HIGH ค้างไว้อย่างน้อย 10us แล้วจึงปรับสถานะเป็น LOW จากนั้น ที่ขา Echo ให้เตรียมรับสัญญาณทริก HIGH กลับมา เมื่อมีการส่งสัญญาณ HIGH กลับมา ให้เริ่มนับเวลาที่สัญญาณเป็น HIGH และเมื่อสัญญาณขา Echo กลับเป็น LOW ให้สิ้นสุดการนับ เวลา แล้วจึงนำค่าเวลาที่นับได้ ไปคำนวณอีกที ซึ่งในการคำนวณนั้น ขึ้นอยู่กับรุ่น ในบางรุ่นสามารถใช้ค่าอัตราเร็ว เสียงมาคำนวณได้เลย แต่ในบางรุ่น ต้องใช้สูตรคำนวณเฉพาะ ในส่วนการเขียนโปรแกรมเพื่อให้ได้สัญญาณตามที่ กำหนดและคำนวณหาระยะทางหาได้จากโปรแกรมต่อไปนี้ digitalWrite(Trig_PIN, LOW); delayMicroseconds(5); digitalWrite(Trig PIN, HIGH); delayMicroseconds(10); digitalWrite(Trig PIN, LOW); unsigned int PulseWidth = pulseln(Echo _ PIN, HIGH); unsigned int distance = (PulseWidth * 0.0347362)/2; หรือ unsigned int distance = PulseWidth * 0.01 73681; หน่วยที่ได้คือ เชนติเมตร อุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอัลตร้าโซนิกที่มีจำหน่ายในตลาดทั่วไปหลายรุ่น เช่น HC-SR04 HYSRFO5, US-100, US-016 เป็นตัน ซึ่งแต่ละรุ่นมีคุณลักษณะเฉพาะต่างกัน ก่อนใช้งานควรศึกษาให้ ละเอียด ใน ที่นี่จะกล่าวเฉพาะอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอัลตร้าโซนิกรุ่น HC-SRO4 เนื่องจากเป็นรุ่นที่ นิยมใช้มาก ตัวอย่างโปรแกรมสำหรับวัดระยะทางด้วยคลื่นอัลตร้าโซนิกที่ใช้รุ่น HC-SR04 แสดงค่าที่มอนิตอร์ ซึ่งความหมาย ของคำสั่งแต่ละบรรทัดได้คอมเมนค์หรืออธิบายไว้ด้านขวามือ 1. #define Tris PIN 13 //ต่อขา Trig ของ HC-SR04 เข้ากับพอร์ต D13 2. #define Echo PIN 12 //ต่อขา Echro ของ HC SR04 เข้ากับพอร์ต D12 3. void setup()


134 4. { 5. Serial.begin(9600); //กำหนดความเร็วในการสื่อสารอนุกรม = 9600 6. pinMode(Trig_PIN, OUTPUT); //กำหนดให้ Trig PIN เป็นเอาต์พุต 7. pinMode(Echo_ PIN, INPUT); //กำหนดให้ Echo PIN เป็นอินพุต 8. } 9. void loop() 10. { 11. digitalWrite(Trig_PIN, LOW); //ให้ขา Trig _PIN เป็นลอจิก 0 12. delayMicroseconds(5); //หน่วงเวลา 5 us เพื่อให้ขา Trig PIN เป็นสอจิก 0 13. digitalWrite(Trig_ PIN, HIGH); //ให้ขา Trig PIN เป็นลอจิก 1 14. delayMicroseconds(10); //ให้ขา Trig PIN เป็นลอจิก 1 เป็นเวลา 10 us 15. digitalWrite(Trig_ PIN, LOW); /ให้ขา Trig_ PIN เป็นลอจิก 0 16. unsigned int PulseWidth = pulsein(Echo PIN, HIGH), //อ่านค่าความกว้างพัลส์ 17. unsigned int distance = (PulseWidth * 0.0173681); //คำนวณหาระยะทาง 18. Serial.print('Distance = ') //แสดงข้อความ Distance is ที่จอมอนิเตอร์ โดยไม่ขึ้น บรรทัดให 19. Serial.print(distance); //นำค่าที่คำนวณได้มาแสดงผล โดยไม่ขึ้นบรรทัดใหม่ 20. Serial.printtn(" cm."); //แสดงข้อความ cM แล้วขึ้นบรรทัดใหม่ 21. delay(100); //หน่วงเวลา 10 มิลลิวินาที 22. } อุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอินฟราเรด โมดูลวัดระยะทางด้วยแสงอินฟราเรดจะส่งแสงอินฟราเรดจากตัวส่งไปกระทบวัตถุผ่านเลนส์นูน เพื่อ โฟกัสแสงให้มีความเข้มแสงไปยังจุดใดจุดหนึ่ง เมื่อแสกระทบวัตถุจะเกิดการกระเจิงของแสงไปทิศทางต่างๆแสง ส่วนหนึ่งจะกระเจิงกลับมายังภาครับ โดยมีเลนส์รวบรวมแสงและกำหนดจุดตกกระทบ แสงจะถูกส่งผ่านไปยังโฟ โต้ทรานชิสเตอร์จำนวนมากที่ต่อเรียงกันเป็นอาร์เรย์


135 ตำแหน่งที่ตกกระทบนี้สามารถคำนวณหาระยะทาง L จากภาคส่งไปวัตถุได้จากสูตร = เมื่อ L คือ ระยะห่างระหว่างโมดูลวัดระยะทางกับวัตถุ A คือ ระยะห่างระหว่างเลนส์ตัวส่งและเลนส์ตัวรับ F คือ ระยะห่างระหว่างเลนส์กับตัวรับ R X คือ ระยะทางจากตำแหน่ง IR ที่ตรงกับเลนส์ตัวรับกับตำแหน่ง IR ที่แสงตกกระทบ ปัจจุบันมีหลายบริษัทได้ผลิตโมดูลตรวจวัดระยะทางแบบอินฟราเรดขึ้นมาใช้งาน ซึ่งมีความสามารถวัด ระยะทางได้ตั้งแต่ 4 เซนติเมตรถึง 30 เชนติเมตร รุ่นที่สามารถวัดได้ตั้งแต่ 10 เซนติเมตรถึง 80 เซนติเมตร และ รุ่นที่สามารถวัดได้ดั่งแต่ 20 เขนติเมตรถึง 150 เซนติเมตร ซึ่งมีคุณลักษณะเฉพาะแตกต่างกันออกไป และให้ค่า แรงดันไฟฟ้ากระแสตรงทางด้านเอาต์พุตแตกต่างกัน จึงต้องใช้สูตรคำนวณแตกต่างกันเล็กน้อย โมดูลตรวจวัต ระยะทางแบบอินฟราเรด รุ่น GP2Y0A41 เป็นโมดูลตรวจจับระยะทางแบบอินฟราเรต สามารถวัดระยะทางได้ ตั้งแต่ 4 เซนติเมตรถึง 30 เชนติเมตร สูตรการคำนวณสำหรับหาระยะทางของวัตถุที่ห่างจากเลนส์ของตัวส่ง หาก ใช้ไมโครคอนโทรลเลอร์ที่มีวงจร ADC ที่มีค่าความละเอียด 10 บิต หาค่าได้จาก


136 = 2914 + 5 − 1 เมื่อ R หมายถึงระยะทางเป็นเซนติเมตร AN หมายถึงข้อมูลจาก ADC ที่มีความละเอียด 10 บิต โมดูลตรวจวัดระยะทางแบบอินฟราเรด รุ่น GP2Y042! เป็นโมดูลตรวจจับระยะทางแบบอินฟราเรต สา,k รถวัดระยะทางได้ตั้งแต่ 10 เซนติเมตรถึง 80 เซนติเมตร สูตรการคำนวณสำหรับหาระยะทางของวัตถุที่ห่างจากเลนส์ของตัวส่ง หากใช้ไม่โครคอนโทรลเลอร์ที่มี วงจร ADC ที่มีค่าความละเอียด 10 บิต หาคำได้จาก = 6787 −3 − 4 เมื่อ R หมายถึงระยะทางเป็นเซนติเมตร AN หมายถึงข้อมูลจาก ADC ความละเอียด 10 บิต การต่อโมดูลตรวจวัตระยะทางแบบอินฟราเรด รุ่น GP2Y0A41 เข้ากับบอร์ด Arduino UNO 1. #define Ain A0 2. void setup ( ) { 3. Serial.begin (9600); 4. pinMode (Ain, INPUT); 5. void loop ( ) { 6. uint16_t value = analogRead (Ain); 7. uint16_t range = get_gp2d41 (value); 8. Serial.println (value); 9. Serial.print (range); 10. Serial.println (" mm"); 11. Serial.println (); 12. delay (500); 13. }


137 14. uint16_t get _gp2d41 (uint16_t value) { 15. if (value < 4) value = 4; 16. return ((29410.0 / (value + 5.0)) - 10.0); 17. } การต่อโมดูลตรวจวัดระยะทางแบบอินฟราเรด รุ่น GP2YOA21 เข้ากับบอร์ด Arduino UNO 1. #define pin A0 2. void setup () { 3. Serial.begin (9600); 4. pinMode (pin, INPUT); 5. } 6. void loop () { 7. uint16_t value = analogRead (pin); 8. uint16_t range = get_gp2d21 (value); 9. Serial,printin (value); 10. Serial.print (range); 11. Serial.print(n (" mm"); 12. Serial,println (); 13. delay (500); 14. } 15. uint16_t get _gp2d21 (uint16_t value) { 16. if (value < 10) value = 10; 17. return ((67870.0 / (value - 3.0)) - 40.0); 18. } อุปกรณ์ตรวจรู้อุณหภูมิและความชื้น อุปกรณ์ตรวจรู้อุณหภูมิและความชื้นสำหรับวัดอุณหภูมิและ ความชื้นสัมพัทธ์ (Temperature& Relative Humidity Sensor) เป็นอุปกรณ์ที่สามารถนำมาประยุกต์ใช้งาน


138 ทางด้านระบบสมองกลฝังตัวได้ หลากหลาย เช่น การวัดและควบคุมอุณหภูมิและความชื้น ระบบบันทึกข้อมูล เกี่ยวกับอุณหภูมิและความชื้น ให้อง เป็นต้น อุปกรณ์ประเภทนี้แตกต่างกันตามผู้ผลิต ราคา ความแม่นยำ ความละเอียดในการวัด การให้ค่า แบบ ดิจิทัลหรือแบบแอนะล็อก เป็นต้น อุปกรณ์ตรวจรู้อุณหภูมิและความชื้นที่นิยมใช้ในปัจจุบันมีหลายเบอร์ เช่นเบอร์ DHT22/AM2302 ซึ่งมี ราคาถูก ให้ค่าเป็นแบบดิจิทัล ใช้ขาสัญญาณดิจิทัลเพียงเส้นเดียวสำหรับการเชื่อมต่อแบบ บิตอนุกรม สองทิศทาง (Serial data, bi-directional) โดยนำมาเชื่อมต่อกับ Arduino เพื่ออ่านค่าจากเซนเซอร์ รูปร่างของ DHT22 / AM2302 และตำแหน่งขา ข้อมูลเชิงเทคนิคของอุปกรณ์ตรวจรู้อุณหภูมิและความชื้น เบอร์ DHT22 / AM2302 ใช้แรงดันไฟเลี้ยงได้ในช่วง: 3.3V ถึง 5.5V DC วัดอุณหภูมิได้ในช่วง: -40 to 80 °C (±0.5 'C accuracy) วัดความขึ้นสัมพัทธ์ใต้ในช่วง: 0-100 RH% (2 - 5% accuracy) อัตราการวัดสูงสุด: 0.5Hz คอนเนกเตอร์แบบ 4 ขา ( 0.1" / 2.54mm spacing) แต่มีตัวต่อใช้งานเพียง 3 ขา Pin 1 = Vcc Pin 2 = SDA (Serial data, bidirectional) Pin 3 = GND


139 ในการอ่านข้อมูลจากไอซี จะใช้ขาสัญญาณเพียงเส้นเดียวคือ DATA (หรือ SDA) แบบสองทิศทาง และ ใน สถานะปรกติสัญญาณ DATA จะเป็น HIGH ในการอ่านข้อมูลแต่ละครั้ง ไมโครคอนโทรลเลอร์จะต้อง กำหนดให้ ขา DATA เป็นเอาต์พุต และสร้างบิต START ซึ่งจะต้องเป็น LOW อย่างน้อย 800 µsec จากนั้น จึงให้เป็น HIGH อย่างน้อย 20 µsec หลังจากนั้นเป็นการรอการตอบกลับ (response) และจากไอซี ขา DATA จะถูกต้อง เปลี่ยนเป็นอินพุต เริ่มตันของการตอบกลับไอซี จะดึงสัญญาณลงเป็น LOW และปล่อยให้เป็น HGH ช่วงละ 80 µsec โดยประมาณ (เรียกว่า Response Bit) จากนั้นจึงจะเป็นการส่งข้อมูลทีละบิต รวม 40 G (ช่วง LOW ตาม ด้วยช่วง HIGH) ช่วง LOW ของแต่ละบิต จะกว้างเท่ากัน แต่จะต่างกันในช่วง HIGH สำหรับ บิตที่มีค่าเป็น 0 หรือ 1 (ใช้ความกว้างช่วง HIGH ในการจำแนกค่าของบิต) การต่ออุปกรณ์ตรวจรู้อุณหภูมิและความชื้น เบอร์ DHT22 เข้ากับบอร์ด Arduino UNO โปรแกรมภาษา C สำหรับอ่านค่าอุณหภูมิและความชื้น แสดงที่จอมอนิเตอร์ของคอมพิวเตอร์ 1. #include "DHT.h" 2. DHT dht; // สร้างออปเจก DHT22 สำหรับติตต่อกับเชนเซอร์ 3. void setup() 4. { 5. Serial.begin(9600); 6. Serial.printtln(); 7. Serial,printtn("Status ttHumidity (%)tTemperature (C)\t(F)"); 8. dht.setup(2); // กำหนดขาที่ต่อกับ data ของ DHT22 เป็น ขา Arduino pin 2 9. } 10. void loop()


140 11. { 12. delay(dht.getMinimumSamplingPeriod(); 13. float humidity = dht.getHumidity(); // คำสั่งอ่านค่าความชื้นจาก DHT22 14. float temperature = dht.getTemperature(); // คำสั่งอ่านค่าอุณหภูมิจาก DHT22 15. Serial.print(dht.getStatusString()); 16. Serial.print("\tHumidity :"); 17. Serial.print(humidity, 1); 18. Serial.print("\t\tTemp C:"); 19. Serial.print(temperature, 1); 20. Serial.print("\t\tTemp F:"); 21. Serial.printtn(dht.toFahrenheit(temperature), 1); // แปลงองศาเซลเซียสเป็นฟาเรนไฮต์ 22. } การต่อวงจรสำหรับอ่านค่าอุณหภูมิและความชื้น แสดงที่จอ LCD ขนาด 16x2 โปรแกรมภาษา C++ สำหรับอ่านค่าอุณหภูมิและความชื้น แสดงที่จอ LCD ขนาด 16x2 1. #include <DHT.h> 2. #include <Wire.h> 3. #include <LCD.h> 4. #include <LiquidCrystal_12C.h> 5. #define DHTPIN 2


141 6. #define DHTTYPE DHT22 7. DHT dht(DHTPIN, DHTTYPE); 8. int chk; 9. float hum; float temp; 10. void setup() 11. { 12. dht.begin(); 13. lcd.begin(16,2); 14. lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE); 15. lcd.setBacklight(HIGH); 16. } 17. void loop() 18. { 19. delay(2000); 20. hum = dht.readHumidity(); 21. temp = dht.readTemperature(); 22. lcd.clear(); 23. lcd.setCursor(0,0); 24. lcd.print("Temp: "); 25. lcd.print(temp); 26. lcd.print(" "); 27. lcd.print((char)223); 28. lcd.print("C"); 29. lcd.setCursor(0,1); 30. (cd.print("Hum: "); 31. lcd.print(hum); 32. lcd.print("%"); 33. }


142


143 จุดประสงค์การมอบหมายงานให้ 1. อธิบายหลักการทำงานของอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอัลตราโซนิกได้ 2. ระบุฟังก์ชันภาษา C ที่ใช้กับอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอัลตราโซนิกได้ 3. เขียนโปรแกรมภาษา C เพื่ออ่านค่าจากอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอัลตราโซนิกได้ 4. อธิบายหลักการทำงานของอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอินฟราเรดได้ 5. ระบุฟังก์ชันภาษา C ที่ใช้กับอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอินฟราเรดได้ 6. เขียนโปรแกรมภาษา C เพื่ออ่านค่าจากอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอินฟราเรดได้ 7. อธิบายหลักการทำงานของอุปกรณ์ตรวจรู้อุณหภูมิและความชื้นได้ 8. ระบุฟังก์ชันภาษา C ที่ใช้กับอุปกรณ์ตรวจรู้อุณหภูมิและความชื้นได้ 9. เขียนโปรแกรมภาษา C เพื่ออ่านค่าจากอุปกรณ์ตรวจรู้อุณหภูมิและความชื้นได้ 10. แก้ไขโปรแกรมภาษา C ที่ใช้กับอุปกรณ์ตรวจรู้ที่ใช้งานร่วมกับบอร์ด Arduino ได้ 11. บูรณาการงานสวนพฤกษศาสตร์โรงเรียนในองค์ประกอบที่ 2 การรวบรวมพรรณไม้เข้าปลูกใน โรงเรียน ข้อที่ 1 แนวทางปฏิบัติงาน ก่อนเรียน ครูแนะแนวทางคำถาม ชี้แนวทางการหาคำตอบ ขณะเรียน ให้นักศึกษาอภิปรายและสรุปเกี่ยวกับการควบคุมการทำงานของอินพุตและเอาต์พุต บูรณาการ งานสวนพฤกษศาสตร์โรงเรียนในองค์ประกอบที่ 2 การรวบรวมพรรณไม้เข้าปลูกในโรงเรียน ข้อที่ 1 หลังเรียน ใบมอบหมายงานที่ 8 ระดับชั้น ปวช.3 กลุ่ม ทส.3 สัปดาห์ที่13-14 ชื่อวิชา การโปรแกรมไมโครคอนโทรลเลอร์เบื้องต้น ชื่อเรื่อง การใช้งาน Arduino ร่วมกับอุปกรณ์ตรวจรู้ จำนวนชั่วโมง 6 ชั่วโมง


144 ให้นักเรียนไปค้นคว้าเพิ่มเติมเกี่ยวกับการควบคุมการทำงานของอินพุตและเอาต์พุตและทำใบ งานและปฏิบัติหน่วยเรียนหน่วยที่ 8 ส่งท้ายชั่วโมง บูรณาการงานสวนพฤกษศาสตร์โรงเรียนใน องค์ประกอบที่ 2 การรวบรวมพรรณไม้เข้าปลูกในโรงเรียน ข้อที่ 1 แหล่งค้นคว้า/อ้างอิง สุชิน ชินสีห์(2563). ไมโครคอนโทรลเลอร์. นนทบุรี : โรงพิมพ์ บริษัท ศูนย์หนังสือเมืองไทยจำกัด. กำหนดเวลาส่งงาน - ท้ายชั่วโมงเรียน การประเมินผล 1. การประเมินผลโดยใช้ใบงานและการปฏิบัติหน่วยที่ 8 2. ใบปฏิบัติงาน บูรณาการงานสวนพฤกษศาสตร์โรงเรียนในองค์ประกอบที่ 2 การรวบรวมพรรณไม้เข้า ปลูกในโรงเรียน ข้อที่ 1 3. สังเกตจากการตอบคำถาม / การอภิปราย


145 ใบงาน หน่วยที่ 8 การใช้งาน Arduino ร่วมกับอุปกรณ์ตรวจรู้ คำชี้แจง จงตอบคำถามต่อไปนี้ให้ถูกต้อง 1. อธิบายหลักการทำงานของอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอัลตราโซนิก 2. ระบุฟังก์ชันภาษา C ที่ใช้กับอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอัลตราโซนิก 3. อธิบายหลักการทำงานของอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอินฟราเรด 4. ระบุฟังก์ชันภาษา C ที่ใช้กับอุปกรณ์ตรวจรู้ระยะทางด้วยคลื่นอินฟราเรด 5. อธิบายหลักการทำงานของอุปกรณ์ตรวจรู้อุณหภูมิและความชื้น 6. ระบุฟังก์ชันภาษา C ที่ใช้กับอุปกรณ์ตรวจรู้อุณหภูมิและความชื้น


Click to View FlipBook Version