Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore หน่วยที่ 3 เรื่อง การเชื่อมต่อผ่านพอร์ตอนุกรม

หน่วยที่ 3 เรื่อง การเชื่อมต่อผ่านพอร์ตอนุกรม

Published by kik.fuu2021, 2021-05-28 12:59:30

Description: หน่วยที่ 3 เรื่อง การเชื่อมต่อผ่านพอร์ตอนุกรม

Search

Read the Text Version

0 เอกสารประกอบการสอน 36 หน่วยท�ี 3 การเช่ือมตอ ผา นพอรต อนกุ รม

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 55 หน่วยที่ 3 การเชื่อมต่อผา่ นพอรต์ อนุกรม สาระสาคัญ ไมโครคอนโทรลเลอรส์ ่วนใหญ่มคี วามสามารถในการรบั ส่งขอ้ มลู ระหว่างอุปกรณ์อ่นื ๆ กับคอมพิวเตอร์ผ่านพอร์ตอนุกรม (serial port) เราจงึ สามารถนาคุณสมบัติน้ีมาใช้ในการ แสดงผลลพั ธก์ ารทางานของบอรด์ ไมโครคอนโทรลเลอรท์ ใ่ี หร้ ายละเอยี ดมากกว่าการแสดงผล ผ่าน LED เพยี งอยา่ งเดยี วได้ อกี ทงั้ สภาพแวดลอ้ มของ Arduino ยงั มคี าสงั่ จาพวก Serial.print ทน่ี าไปใชใ้ นการส่งขอ้ ความมาแสดงผลบนหน้าจอคอมพวิ เตอรไ์ ดท้ นั ที โดยจะแบ่งพอรต์ สาหรบั เช่อื มต่อออกเป็น 2 ส่วนคอื ส่วนแรกตดิ ต่อพอรต์ อนุกรมเสมอื น (Virtual Com Port) จากการ ทางานของส่วนเช่อื มต่อพอร์ต USB ฟังก์ชนั่ ท่ใี ช้คือ Serial อกี ส่วนหน่ึงคือ ขาพอร์ตส่อื สาร ขอ้ มลู อนุกรมโดยใชข้ า0 (RxD) และ 1 (TxD) ฟังกช์ นั่ ของ Arduino ทใ่ี ชค้ อื Serial1 สาระการเรียนรู้ 3.1 การเรยี นรเู้ กย่ี วกบั การเชอ่ื มต่อผ่านพอรต์ อนุกรม 3.2 การเรยี นรเู้ กย่ี วกบั ฟังก์ชนั่ สาหรบั การรบั สง่ ขอ้ มลู ผา่ นพอรต์ อนุกรม จุดประสงค์เชิงพฤตกิ รรม 1. นกั เรยี นใชฟ้ ังกช์ นั่ อนิ พตุ เอาตพ์ ตุ ดจิ ติ อล (Digital l/0) ไดถ้ ูกตอ้ ง 2.นกั เรยี น ใชฟ้ ังกช์ นั่ เกย่ี วกบั การส่อื สารผ่านพอรต์ อนุกรมได้ถกู ตอ้ ง 3. นกั เรยี นใชฟ้ ังกช์ นั่ อนิ พุตเอา้ ตพ์ ตุ แอนะลอ็ กได้ถูกตอ้ ง 4. นกั เรยี นใชฟ้ ังกช์ นั่ เกย่ี วกบั เวลาไดถ้ ูกตอ้ ง 5.นกั เรยี นใชฟ้ ังกช์ นั่ เกย่ี วกบั อนิ เตอรร์ ปั ตภ์ ายนอกได้ถูกตอ้ ง 6. นกั เรยี นใชฟ้ ังกช์ นั่ ทางคณติ ศาสตรไ์ ดถ้ ูกตอ้ ง หน่วยที่ 3 : การเช่ือมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 56 แบบทดสอบกอ่ นเรยี น หน่วยท่ี 3 การเชื่อมต่อผ่านพอร์ตอนกุ รม คาสงั่ จงเลือกคาตอบท่ีถกู ที่สดุ เพียงข้อเดียว 1. การสอ่ื สารแบบอนุกรมนนั้ ตอ้ งการใชส้ ายสญั ญาณอยา่ งน้อยกเ่ี สน้ ต่อการรบั ส่งขอ้ มลู ? ก. 3 เสน้ ข. 5 เสน้ ค. 7 เสน้ ง. 9 เสน้ จ. 11 เสน้ 2. ขาพอรต์ ส่อื สารขอ้ มลู อนุกรมของ Arduino Uno R3 โดยใชข้ า? ก. ขา0 และ ขา1 ข. ขา1 และ ขา2 ค. ขา2 และ ขา3 ง. ขา3 และ ขา4 จ. ขา1 และ ขา3 3. ขาพอรต์ สอ่ื สารขอ้ มลู อนุกรมคอื ขา? ก. RxP และ TxP ข. RxC และ TxC ค. RdX และ TdX ง. RxD และ TxD จ. RCx และ TCx 4. การสอ่ื สารแบบอนุกรม ไมม่ กี าร synchronous แต่ใชเ้ ทคนิคการ? ก. Shift Baud ข. Shift Baud rate ค. Shift Bit ง. Shift Bit rate จ. Shift rate Baud หน่วยที่ 3 : การเชื่อมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 57 5. Start bit หรอื บติ เรม่ิ ตน้ มขี นาด? ก. 1 บติ ข. 2 บติ ค. 3 บติ ง. 4 บติ จ. 5 บติ 6. Data bit หรอื บติ ขอ้ มลู มขี นาด? ก. 2 บติ ข. 4 บติ ค. 6 บติ ง. 8 บติ จ. 10 บติ 7. อตั ราบอดของการรบั สง่ ขอ้ มลู อนุกรมในหน่วย? ก. บติ ต่อนาที ข. บติ ต่อวนิ าที ค. บติ ต่อไมโครวนิ าที ง. บติ ต่อนาโนวนิ าที จ. บติ ต่อพโิ กนาที 8. ขอ้ ใดไมใ่ ชค่ ่าอตั ราบอดของการรบั สง่ ขอ้ มลู อนุกรม? ก. 4800 ข. 9600 ค. 19900 ง. 115200 จ. 230400 9. คาสงั่ ใดใชส้ าหรบั ลา้ งบฟั เฟอรต์ วั รบั ขอ้ มลู พอรต์ อนุกรมใหว้ า่ ง? ก. Serial.flush(); ข. Serial.flash(); ค. Serial.flesh(); ง. Serial.flosh(); จ. Serial.flish(); หน่วยท่ี 3 : การเชื่อมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 58 10. คาสงั่ ใดใชส้ าหรบั ส่งขอ้ ความคาวา่ Arduino Uno ออกพอรต์ อนุกรม? ก. Serial.print (\"Arduino Uno); ข. Serial.print (*Arduino Uno*); ค. Serial.print (Arduino Uno); ง. Serial.print (\"Arduino Uno\") จ. Serial.print (Arduino Uno) หน่วยท่ี 3 : การเช่ือมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 59 โปรแกรม Arduino IDE ได้จดั เตรยี มฟังก์ชนั่ พ้ืนฐาน เช่นฟังก์ชนั่ เก่ียวกับขาพอร์ต อนิ พุตเอาต์พุตดจิ ติ อล,อนิ พุตเอาตพ์ ุตแอนะลอ็ กเป็นต้น ดงั นนั้ ในการเขยี นโปรแกรมจงึ เรยี กใช้ ฟังกช์ นั่ เหล่าน้ีไดท้ นั ทโี ดยไม่ต้องใช้คาสงั่ #include เพ่อื ผนวกไฟลเ์ พม่ิ เตมิ แต่อย่างใด นอกจาก ฟังก์ชนั่ พ้นื ฐานเหล่าน้ีแล้ว นักพฒั นาท่านอ่นื ๆ ท่รี ่วมในโครงการ Arduino น้ีกไ็ ด้เพม่ิ ไลบรารี อ่นื ๆเช่น ไลบรารคี วบคุมมอเตอร์, การตดิ ต่อกบั อุปกรณ์บสั I2C ฯลฯ ในการเรยี กใชง้ านต้อง เพมิ่ บรรทดั #include เพ่อื ผนวกไฟลท์ เ่ี หมาะสมก่อน จงึ จะเรยี กใชฟ้ ังกช์ นั่ ได 3.1 การเรยี นรู้เกยี่ วกบั การเชอ่ื มต่อผา่ นพอร์ตอนกุ รม การส่อื สารแบบอนุกรมนัน้ ต้องการใช้สายสญั ญาณเพยี งเส้นเดยี วต่อการส่งสญั ญาณ หน่ึงทิศทาง ดังนั้น การเช่ือมต่ออุปกรณ์ เข้าด้วยกันจึงต้องการสายไฟเพียง 3 เส้น เป็ น สายสญั ญาณสองเสน้ เพ่อื รบั ส่งขอ้ มลู สองทศิ ทาง และสายอ้างองิ ศกั ยไ์ ฟฟ้า (หรอื กราวนด์) อกี สองเส้น แต่อุปกรณ์ต่อพ่วงส่วนมากมกั ใชไ้ ฟเลย้ี งวงจรเพม่ิ เตมิ จงึ มกี ารเพมิ่ สายไฟอกี เสน้ ดงั ภาพท่ี 3.1 รปู ที่ 3.1 ตวั อยา่ งการต่อใชง้ านการเชอ่ื มต่อผ่านพอรต์ อนุกรม ที่มา : http://robotic-controls.com/book/export/html/59 อีกส่วนหน่ึงคือ ขาพอร์ตส่ือสารข้อมูลอนุกรมโดยใช้ขา0 (RxD) และ ขา1 (TxD) ฟังกช์ นั่ ของ Arduino ทใ่ี ชค้ อื Serial1 ดงั นนั้ เมอ่ื เลอื กใชง้ านเป็นขาพอรต์ ส่อื สารขอ้ มลู อนุกรม แลว้ จะไมส่ ามารถใชข้ าพอรต์ 0 และ 1 เป็นพอรต์ ดจิ ติ อลได้ การส่อื สารแบบอนุกรม หรอื Serial เป็นส่งขอ้ มลู โดยใชเ้ ทคนิคการเล่อื นขอ้ มลู (Shift Bit) ส่งไปทล่ี ะบติ บนสายสญั ญาณเสน้ เดยี ว โดยการส่งขอ้ มูลแบบ Serial จะไม่มกี าร sync สญั ญาณนาฬิการะหว่างตวั รบั และตวั ส่ง แต่จะ อาศยั วธิ ตี งั้ ค่าความเรว็ ในการรบั ส่งสญั ญาณให้เท่ากัน หรอื เรยี กว่าตงั้ ค่า baud rate และส่ง หน่วยท่ี 3 : การเช่ือมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 60 สญั ญาณ start และ stop เพอ่ื บอกว่า เป็นสว่ นตน้ ของขอ้ มลู (start bit) หรอื ส่วนทา้ ยของขอ้ มลู (stop bit) ดงั รปู ท่ี 3.2 รปู ท่ี 3.2 การส่อื สารแบบอนุกรม ท่ีมา : http://electronica.ugr.es บิตเร่ิมต้น (Start bit) จะมขี นาด 1 บติ จะเป็นลอจกิ LOW บิตข้อมลู (Data bit) 8 บติ ขอ้ มลู ทจ่ี ะสง่ บิตภาวะค่หู รือคี่ (Parity bit) มขี นาด 1 บติ ใช้ตรวจสอบขอ้ มูล ถ้าขอ้ มูลท่ี ไดร้ บั ไมส่ มบรู ณ์ นาเขา้ คา่ มา check กบั Parity bit จะไดค้ า่ ไมต่ รงกนั บิตหยดุ (Stop bit) เป็นการระบถุ งึ ขอบเขตของการสน้ิ สดุ ขอ้ มลู จะเป็นลอจกิ HIGH 3.2 การเรยี นร้เู กี่ยวกบั ฟังก์ช่ันสาหรบั การรบั สง่ ข้อมูลผ่านพอรต์ อนุกรม Arduino IDE มฟี ังกช์ นั่ เกย่ี วกบั การรบั สง่ ขอ้ มลู ผ่านพอรต์ อนุกรมมาพรอ้ มใชง้ าน ดงั น้ี 3.2.1 available() ใช้แจ้งว่าได้รบั ขอ้ มูลตัวอกั ษร (characters) และพร้อมสาหรบั การ อ่านไปใชง้ าน รปู แบบ Serial. available(); ค่าที่ได้จากการเรียกใช้งานฟังก์ชนั่ จานวนไบต์ท่พี รอ้ มสาหรบั การอ่านค่า โดย เกบ็ ขอ้ มลู ในบฟั เฟอรต์ วั รบั ถ้ามขี อ้ มลู ฟังก์ชนั่ จะคนื ค่าทม่ี ากว่า 0 โดยบฟั เฟอรส์ ามารถเกบ็ ขอ้ มูล ไดส้ งู สดุ 128 ไบต์ แต่ถา้ ไมม่ ขี อ้ มลู จะมคี า่ เป็น 0 หน่วยที่ 3 : การเชื่อมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 61 ตวั อย่างการใช้งาน รปู ที่ 3.3 โปรแกรมตวั อยา่ งเรยี กใชง้ านฟังก์ชนั่ Serial.available(); 3.2.2 begin() คอื การกาหนดค่าอตั ราบอดของการรบั ส่งขอ้ มูลอนุกรมในหน่วยบติ ต่อ วนิ าที (bits per second : bps) โดยใช้ค่านาไปใชง้ านมดี งั ต่อไปน้ีคอื 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 หรอื 115200 รปู แบบ Serial.begin(datarate); พารามิเตอร์ int datarate ในหน่วยบติ ต่อวนิ าที (baud หรอื bps) ตวั อย่างการใช้งาน รปู ท่ี 3.4 โปรแกรมตวั อยา่ งเรยี กใชง้ านฟังก์ชนั่ Serial. 3.2.3 read() ใชอ้ ่านค่าขอ้ มลู ทไ่ี ดร้ บั จากพอรต์ อนุกรม รปู แบบ Serial.read(); ค่าที่ได้จากการเรียกใช้งานฟังกช์ นั่ เป็นเลข int ทเ่ี ป็นไบตแ์ รกของขอ้ มลู ท่ี ไดร้ บั หน่วยท่ี 3 : การเช่ือมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 62 ตวั อย่างการใช้งาน รปู ที่ 3.5 โปรแกรมตวั อยา่ งเรยี กใชง้ านฟังกช์ นั่ Serial.read(); 3.2.4 flush() ใชล้ า้ งบฟั เฟอรต์ วั รบั ขอ้ มลู พอรต์ อนุกรมใหว้ า่ ง รปู แบบ Serial.flush(); 3.2.5 print() รปู แบบ Serial.print(val); Serial.print(val, format); Serial.print(\" \"); พารามิเตอร์ val เป็นขอ้ มลู เลขจานวนเตม็ ไดแ้ ก่ char, int หรอื เลขทศนยิ มทต่ี ดั เศษออกเป็น จานวนเตม็ format จะพมิ พค์ า่ ตวั แปร val เป็นเลขฐานสบิ โดยพมิ พต์ วั อกั ษรรหสั ASCIIx \" \" เครอ่ื งหมายอญั ประกาศ (double quote) ทอ่ี ยภู่ ายในวงเลบ็ เป็นการส่ง ขอ้ ความทอ่ี ยภู่ ายในเครอ่ื งหมายอญั ประกาศออกพอรต์ อนุกรม หน่วยท่ี 3 : การเชื่อมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 63 ตวั อย่างการใช้งาน รปู ท่ี 3.6 โปรแกรมตวั อยา่ งเรยี กใชง้ านฟังก์ชนั่ Serial.print(); หน่วยที่ 3 : การเชื่อมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 64 3.2.5 println() เป็นฟังก์ชนั่ พมิ พ์ (หรอื ส่ง) ขอ้ มูลออกทางพอรต์ อนุกรมตามด้วยรหสั carriage return (รหสั ASCII หมายเลข 13 หรอื \\r) และ linefeed (รหสั ASCII หมายเลข 10 หรอื \\n) เพ่อื ใหเ้ กดิ การเล่อื นบรรทดั และขน้ึ บรรทดั ใหม่ หลงั จากพมิ พข์ อ้ ความมรี ปู แบบเหมอื น คาสงั่ Serial.print() รปู แบบ Serial.println(); ตวั อย่างการใช้งาน รปู ท่ี 3.7 โปรแกรมตวั อยา่ งเรยี กใชง้ านฟังกช์ นั่ Serial.println(); นอกจากน้ีทางเวปไซต์ของ Arduino.cc ยงั มตี วั อย่างและฟังก์ชนั่ อ่นื ๆ ใหศ้ กึ ษาเพมิ่ เติม ไดท้ ่ี https://www.arduino.cc/reference/en/language/functions/communication/serial/ หน่วยท่ี 3 : การเชื่อมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 65 3.2.6 การทดลองใช้งาน UART เพ่ือติดต่อกบั คอมพิวเตอร์ บอรด์ Arduino ตดิ ต่อ กบั คอมพิวเตอร์เพ่ือส่อื สารข้อมูลอนุกรมผ่านพอร์ต USB โดยใช้พอร์ตอนุกรมเสมอื นหรอื Virtual COM Port ท่ี เกิ ด ข้ึ น จ า ก ก า ร ท า ง า น ข อ ง ส่ ว น เช่ื อ ม ต่ อ พ อ ร์ต USB ข อ ง ไมโครคอนโทรลเลอร์ ATmega32U4และไดรเวอร์ โดยปกตแิ ลว้ จะเช่อื มต่อพอรต์ อนุกรมเสมอื น ผ่านทางพอรต์ USB เพ่อื ตดิ ต่อกบั คอมพวิ เตอรใ์ นการอปั โหลดโปรแกรมเป็นหลกั แต่นามาใช้ รบั สง่ ขอ้ มลู จากโปรแกรมของผใู้ ชงานกบั คอมพวิ เตอรไ์ ด้ 3.2.7 โปรแกรมรบั ค่าจากพอรต์ อนุกรมเพ่ือกาหนดความเรว็ ในการกระพริบของ LED ในการรบั ค่าจากพอรต์ อนุกรมจะใช้ฟังก์ชนั่ 2 ตวั คอื Serial.avaliable() และ Serial.read() โดย เรม่ิ จากใช้ฟังก์ชนั่ Serial.avaliable() เพ่ือตรวจสอบว่ามีข้อมูลหรอื ไม่ ฟังก์ชนั่ จะคืนค่าเป็นเลข จานวนเต็ม แสดงจานวนขอ้ มลู ในบฟั เฟอรต์ วั รบั ของพอรต์ อนุกรม ถ้าอ่านค่าไดเ้ ท่ากบั 0 แสดง ว่าไมม่ ขี อ้ มลู เม่อื ทดสอบพบว่าฟังก์ชนั่ Serial.avaliable() คนื ค่าไม่เท่ากบั 0 ถดั มาใหใ้ ช้ฟังก์ชนั่ Serial. read() เพ่อื อ่านคา่ จากบฟั เฟอร์ ตวั รบั ฟังกช์ นั่ คนื ค่าเป็นเลขจานวนเตม็ ทเ่ี ป็นไบตแ์ รกของขอ้ มลู (หรอื เป็น -1 ถา้ ไมม่ ขี อ้ มลู ) ตวั อยา่ งการรบั ค่าจากพอรต์ อนุกรม เพ่อื นาค่าทร่ี บั ไดไ้ ปควบคุมอตั ราการกระพรบิ ของ LED มีโปรแกรมดังรูปท่ี 3.7 มีส่วนของโปรแกรมท่ีควรทราบอยู่แห่งห น่ึ งคือ หาก ผพู้ ฒั นาโปรแกรมตอ้ งการใหม้ กี ารแสดงขอ้ ความบนหน้าต่าง Serial monitor ในทุกครงั้ ทเ่ี รมิ่ ตน้ ทางานใหม่ จะต้องหน่วงเวลารอให้วงจร USB ภายใน ATmega16U2 ของ Arduino เตรยี ม ความพร้อมในการทางาน หรอื อีนัมเมอเรชนั่ ให้เสรจ็ สมบูรณ์เสียก่อนด้วยการแทรกคาสงั่ delay(2000); ก่อนใช้ คาสงั่ Serial.print(); หน่วยที่ 3 : การเช่ือมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 66 รปู ท่ี 3.8 โปรแกรมการกาหนดความเรว็ ในการกระพรบิ ของ LED จากโปรแกรมดงั รูปท่ี 3.8 โปรแกรมน้ีจะพมิ พ์ขอ้ ความ “Plese push button 1-5” ออก ทางพอร์ตอนุกรมแล้วรอให้ผู้ทดลองกดปุ่มแป้นคีย์บอร์ด 1 ถึง 5 นอกนัน้ โปรแกรมจะไม่ ตอบสนองการทางาน เพ่ือไปทาการคานวนค่าหน่วงเวลาในการกระพรบิ เม่ือทาการกด หมายเลขแล้วจะแสดงข้อความ “I received button No.” ตามด้วยหมายเลขท่กี ด โดยท่แี ต่ละ หมายเลขจะกาหนดความเรว็ ดงั ตารางท่ี 3.1 ตาราง 3.1 แสดงความเรว็ ในการกระพรบิ ของหลอด LED หมายเลข ความเรว็ ในการกระพรบิ ของ LED 1 สวา่ ง 0.2 วนิ าที ดบั 0.2 วนิ าที 2 สว่าง 0.4 วนิ าที ดบั 0.4 วนิ าที 3 สวา่ ง 0.6 วนิ าที ดบั 0.6 วนิ าที 4 สวา่ ง 0.8 วนิ าที ดบั 0.8 วนิ าที 5 สวา่ ง 1.0 วนิ าที ดบั 1.0 วนิ าที หน่วยท่ี 3 : การเชื่อมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 67 แบบทดสอบหลังเรยี น หนว่ ยที่ 3 การเช่ือมต่อผา่ นพอรต์ อนกุ รม คาสงั่ จงเลือกคาตอบที่ถกู ที่สดุ เพียงข้อเดียว 1. การส่อื สารแบบอนุกรมนนั้ ตอ้ งการใชส้ ายสญั ญาณอยา่ งน้อยกเ่ี สน้ ต่อการรบั สง่ ขอ้ มลู ? ก. 3 เสน้ ข. 5 เสน้ ค. 7 เสน้ ง. 9 เสน้ จ. 11 เสน้ 2. ขาพอรต์ ส่อื สารขอ้ มลู อนุกรมของ Arduino Uno R3 โดยใชข้ า? ก. ขา0 และ ขา1 ข. ขา1 และ ขา2 ค. ขา2 และ ขา3 ง. ขา3 และ ขา4 จ. ขา1 และ ขา3 3. ขาพอรต์ ส่อื สารขอ้ มลู อนุกรมคอื ขา? ก. RxP และ TxP ข. RxC และ TxC ค. RdX และ TdX ง. RxD และ TxD จ. RCx และ TCx 4. การส่อื สารแบบอนุกรม ไมม่ กี าร synchronous แต่ใชเ้ ทคนิคการ? ก. Shift Baud ข. Shift Baud rate ค. Shift Bit ง. Shift Bit rate จ. Shift rate Baud หน่วยท่ี 3 : การเชื่อมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 68 5. Start bit หรอื บติ เรม่ิ ตน้ มขี นาด? ก. 1 บติ ข. 2 บติ ค. 3 บติ ง. 4 บติ จ. 5 บติ 6. Data bit หรอื บติ ขอ้ มลู มขี นาด? ก. 2 บติ ข. 4 บติ ค. 6 บติ ง. 8 บติ จ. 10 บติ 7. อตั ราบอดของการรบั สง่ ขอ้ มลู อนุกรมในหน่วย? ก. บติ ต่อนาที ข. บติ ต่อวนิ าที ค. บติ ต่อไมโครวนิ าที ง. บติ ต่อนาโนวนิ าที จ. บติ ต่อพโิ กนาที 8. ขอ้ ใดไมใ่ ชค่ ่าอตั ราบอดของการรบั ส่งขอ้ มลู อนุกรม? ก. 4800 ข. 9600 ค. 19900 ง. 115200 จ. 230400 9. คาสงั่ ใดใชส้ าหรบั ลา้ งบฟั เฟอรต์ วั รบั ขอ้ มลู พอรต์ อนุกรมใหว้ า่ ง? ก. Serial.flush(); ข. Serial.flash(); ค. Serial.flesh(); ง. Serial.flosh(); จ. Serial.flish(); หน่วยท่ี 3 : การเชื่อมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 69 10. คาสงั่ ใดใชส้ าหรบั ส่งขอ้ ความคาวา่ Arduino Uno ออกพอรต์ อนุกรม? ก. Serial.print (\"Arduino Uno); ข. Serial.print (*Arduino Uno*); ค. Serial.print (Arduino Uno); ง. Serial.print (\"Arduino Uno\") จ. Serial.print (Arduino Uno) หน่วยท่ี 3 : การเช่ือมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 70 แบบฝกึ หดั หนว่ ยท่ี 3 การเชื่อมตอ่ ผา่ นพอร์ตอนกุ รม ตอนท่ี 1 ให้ผเู้ รียนเลือกคาตอบที่ถกู ท่ีสดุ แล้วกาเครื่องหมายกากบาท () ให้ครบทกุ ข้อ 1. การเชอ่ื มต่อผา่ นพอรต์ อนุกรมระหว่างตวั รบั และตวั ส่งจะอาศยั วธิ ?ี ก. วธิ ตี งั้ คา่ ปรมิ าณขอ้ มลู ในการรบั สง่ สญั ญาณใหเ้ ทา่ กนั ข. วธิ ตี งั้ คา่ ปรมิ าณขอ้ มลู ในการรบั ส่งสญั ญาณใหไ้ มเ่ ท่ากนั ค. วธิ ตี งั้ ค่าความเรว็ ในการรบั สง่ สญั ญาณใหเ้ ท่ากนั ง. วธิ ตี งั้ ค่าความเรว็ ในการรบั สง่ สญั ญาณใหไ้ มเ่ ท่ากนั จ. วธิ ปี รบั คา่ ความเรว็ การรบั ส่งสญั ญาณใหเ้ ทา่ กนั 2. บติ ภาวะคหู่ รอื ค่ี (Parity bit) มขี นาด? ก. 1 บติ ข. 2 บติ ค. 3 บติ ง. 4 บติ จ. 5 บติ 3. ขอ้ ใดกล่าวถกู เกย่ี วกบั Parity bit? ก. การเรมิ่ ต้นของขอ้ มมลู มลี อจกิ เป็น LOW ข. ระบถุ งึ ขอบเขตของการสน้ิ สดุ ขอ้ มลู จะเป็นลอจกิ HIGH ค. ขอ้ มลู ทจ่ี ะสง่ ง. ตรวจสอบความสมบูรณ์ของขอ้ มลู จ. เพมิ่ ขอ้ มลู 4. ขอ้ ใดกล่าวถูกตอ้ งเกย่ี วกบั ฟังกชนั่ available() ? ก. จานวนไบตท์ พ่ี รอ้ มสาหรบั การอ่านคา่ โดยเกบ็ ขอ้ มลู ในบฟั เฟอรต์ วั รบั สงู สดุ 64 ไบต์ ข. จานวนไบตท์ พ่ี รอ้ มสาหรบั การอ่านคา่ โดยเกบ็ ขอ้ มลู ในบฟั เฟอรต์ วั รบั สงู สุด 128 ไบต์ ค. จานวนไบตท์ พ่ี รอ้ มสาหรบั การอ่านคา่ โดยเกบ็ ขอ้ มลู ในบฟั เฟอรต์ วั รบั สงู สุด 256 ไบต์ หน่วยท่ี 3 : การเช่ือมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 71 ง. จานวนไบตท์ พ่ี รอ้ มสาหรบั การอ่านค่าโดยเกบ็ ขอ้ มลู ในบฟั เฟอรต์ วั รบั สงู สดุ 1 กกิ ะไบต์ จ. ไมม่ ขี อ้ ถกู 5. ขอ้ ใดตรงกบั คาสงั่ Serial.begin(57600) ? ก. กาหนดค่าอตั ราบอด 57600 บติ ต่อวนิ าที ข. กาหนดค่าอตั ราบอด 57600 บติ ต่อมลิ ลวิ นิ าที ค. กาหนดคา่ อตั ราบอด 57600 บติ ต่อไมโครวนิ าที ง. กาหนดคา่ อตั ราบอด 57600 บติ ต่อนาโนวนิ าที จ. กาหนดค่าอตั ราบอด 57600 บติ ต่อพโิ กวนิ าที 6. เครอ่ื งหมาย double quote ในฟังกช์ นั่ print() ใชส้ าหรบั ? ก. การรบั ขอ้ ความทางพอรต์ อนุกรม ข. การอ่านขอ้ ความทางพอรต์ อนุกรม ค. การสง่ ภาพออกทางพอรต์ อนุกรม ง. การส่งขอ้ ความออกทางพอรต์ อนุกรม จ. การแสดงคา่ คงทอ่ี อกทางพอรต์ อนุกรม 7. ฟังกช์ นั่ println() ต่างจาก print() ตรงท?่ี ก. ขน้ึ บรรทดั ใหมก่ ่อนพมิ พข์ อ้ ความ ข. ขน้ึ บรรทดั ใหมห่ ลงั จากพมิ พข์ อ้ ความ ค. ขน้ึ บรรทดั ใหมก่ ่อนและหลงั พมิ พข์ อ้ ความ ง. ขน้ึ บรรทดั ใหมท่ ุก ๆ การพมิ พข์ อ้ ความ จ. ไมม่ ขี อ้ ใดถูก 8. คาสงั่ ใดใชแ้ ปลงเลข 35 ในฐานสบิ ไปยงั เลขฐาน 8 ออกทางพอรต์ อนุกรม? ก. Serial.print (35, BIN); ข. Serial.print (35, OCT); ค. Serial.print (35, DEC); ง. Serial.print (35, HEX); จ. Serial.print (35, READ); หน่วยท่ี 3 : การเช่ือมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 72 9. คาสงั่ ใดใชแ้ ปลงเลข 53 ในฐานสบิ ไปยงั เลขฐาน 16 ออกทางพอรต์ อนุกรม? ก. Serial.print (53, BIN); ข. Serial.print (53, OCT); ค. Serial.print (53, DEC); ง. Serial.print (53, HEX); จ. Serial.print (35, READ); 10. ค่ารหสั ASCII ของตวั อกั ษร 1 คอื ? ก. 49 ข. 50 ค. 51 ง. 52 จ. 53 หน่วยท่ี 3 : การเช่ือมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 73 ตอนที่ 2 ใหผ้ เู้ รยี นทาการทดลองและเขยี นโปรแกรมรบั -ส่งค่าจากการเชอ่ื มต่อผ่านพอรต์ อนุกรม ดว้ ยบอรด์ Arduino Uno R3 โดยใชเ้ วลา 180 นาที จดุ ประสงคเ์ ชิงพฤติกรรม 1. สามารถใชฟ้ ังก์ชนั่ พน้ื ฐานการรบั -สง่ ขอ้ มลู ผ่านพอรต์ อนุกรมได้ 2. สามารถต่อใชง้ านวงจรและเขยี นโปรแกรมได้ 3. สามารถอธบิ ายโปรแกรมและแกป้ ัญหาในการรบั -สง่ ขอ้ มลู ผ่านพอรต์ อนุกรมเพอ่ื ควบคุมความเรว็ ในการกระพรบิ ของหลอด LED ดว้ ยบอรด์ Arduino Uno R3 ได้ อปุ กรณ์การทดลอง 1. โปรแกรม Arduino IDE 1 โปรแกรม 2. สายโหลด USB Arduino Uno R3 1 เสน้ 3. บอรด์ Arduino Uno R3 1 บอรด์ 4. สายต่อวงจร 1 ชดุ 5. เครอ่ื งคอมพวิ เตอร์ 1 เครอ่ื ง 6. แผงต่อวงจร 1 ตวั 7. หลอด LED 1 หลอด 8. ตวั ตา้ นทานขนาด 220 โอหม์ 1 ตวั การทดลองท่ี 3.1 การส่งข้อมลู ออกพอรต์ อนุกรม ขนั้ ตอนการทดลอง 1. เปิดโปรแกรม Arduino IDE 2. ต่อบอรด์ Arduino เขา้ กบั คอมพวิ เตอร์ 3. เขยี นโปรแกรมและอพั โหลดโปรแกรม รปู ที่ 3.9 การเช่อื มต่อบอรด์ Arduino กบั คอมพวิ เตอรส์ าหรบั การทดลองท่ี 3.1 หน่วยที่ 3 : การเช่ือมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 74 Code รปู ที่ 3.10 โปรแกรมสาหรบั การทดลองท่ี 3.1 ประเมินผลการทดลอง 1. สามารถเขยี นโปรแกรมและต่อวงจรไดถ้ ูกตอ้ ง 10 คะแนน 2. สามารถทดสอบและอธบิ ายการทางานไดถ้ ูกตอ้ ง 10 คะแนน …………………………………… รวมคะแนนภาคปฏิบตั ิ คะแนน หน่วยท่ี 3 : การเชื่อมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 75 การทดลองที่ 3.2 การรบั ข้อมลู ออกพอรต์ อนุกรม ขนั้ ตอนการทดลอง 1. เปิดโปรแกรม Arduino IDE 2. ต่อบอรด์ Arduino เขา้ กบั คอมพวิ เตอร์ 3. เขยี นโปรแกรมและอพั โหลดโปรแกรม รปู ท่ี 3.11 การเช่อื มต่อบอรด์ Arduino กบั คอมพวิ เตอรส์ าหรบั การทดลองท่ี 3.2 Code รปู ที่ 3.12 โปรแกรมสาหรบั การทดลองท่ี 3.2 ประเมินผลการทดลอง 1. สามารถเขยี นโปรแกรมและต่อวงจรไดถ้ กู ตอ้ ง 10 คะแนน 10 คะแนน 2. สามารถทดสอบและอธบิ ายการทางานได้ ถูกตอ้ ง …………………… คะแนน รวมคะแนนภาคปฏิบตั ิ หน่วยที่ 3 : การเชื่อมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 76 การทดลองที่ 3.3 การรบั ค่าจากพอรต์ อนุกรมเพื่อกาหนดความเรว็ ในการกระพริบของ LED ขนั้ ตอนการทดลอง 1. ต่อวงจรตามรปู ท่ี 3.13 2. รบั ค่าตวั เลขจากคยี บ์ อรด์ เลข 1 - 5 3. เงอ่ื นไขความเรว็ ในการกระพรบิ 3.1 หมายเลข 1 สว่าง 0.1 วนิ าที ดบั 0.1 วนิ าที 3.2 หมายเลข 2 สว่าง 0.2 วนิ าที ดบั 0.2 วนิ าที 3.3 หมายเลข 3 สว่าง 0.3 วนิ าที ดบั 0.3 วนิ าที 3.4 หมายเลข 4 สว่าง 0.4 วนิ าที ดบั 0.4 วนิ าที 3.5 หมายเลข 5 สวา่ ง 0.5 วนิ าที ดบั 0.5 วนิ าที 3.6 แสดงขอ้ ความ “Button is no.” ตามดว้ ยหมายเลขทก่ี ดแสดงทาง Serial Monitor รปู ที่ 3.13 วงจรสาหรบั การทดลองท่ี 3.3 ประเมินผลการทดลอง 1. สามารถต่อวงจรและเขยี นโปรแกรมไดถ้ กู ตอ้ งตาม 10 คะแนน เงอ่ื นไข 10 คะแนน 2. สามารถทดสอบและอธบิ ายการทางานไดถ้ ูกตอ้ ง ……………… คะแนน รวมคะแนนภาคปฏิบตั ิ หน่วยท่ี 3 : การเชื่อมต่อผา่ นพอรต์ อนุกรม

เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 77 เฉลยแบบทดสอบก่อนเรียน 5. ก 10. ง หน่วยที่ 3 การเชื่อมต่อผา่ นพอรต์ อนุกรม 1. ก 2. ก 3. ง 4. ค 6. ง 7. ข 8. ค 9. ก เฉลยแบบทดสอบหลงั เรียน 5. ง 10. ค หน่วยท่ี 3 การเชื่อมต่อผา่ นพอรต์ อนุกรม 1. ง 2. ค 3. ข 4. ว 6. ข 7. ก 8. ง 9. ข เฉลยแบบฝึ กหดั หน่วยท่ี 3 การเชื่อมต่อผา่ นพอรต์ อนุกรม ตอนที่ 1 1. ค 2. ก 3. ง 4. ข 5. ก 6. ง 7. ข 8. ข 9. ง 10. ก หน่วยที่ 3 : การเช่ือมต่อผา่ นพอรต์ อนุกรม


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook