0 เอกสารประกอบการสอน 36 หน่วยท�ี 4 การเช่ือมตอ ไมโครคอนโทรลเลอรก บั อปุ กรณอ นิ พตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 78 หน่วยที่ 4 การเชื่อมตอ่ ไมโครคอนโทรลเลอร์กับอปุ กรณอ์ นิ พตุ สาระสาคญั สวติ ช์เป็นอุปกรณ์ทำหน้ำท่ตี ดั หรอื ต่อกระแสไฟฟ้ำในวงจร นิยมนำมำใช้ควบคุมกำร เปิด และปิดวงจรไฟฟ้ำ ซง่ึ ในงำนควบคุมดว้ ยไมโครคอนโทรลเลอรก์ จ็ ะมกี ำรใชง้ ำนสวติ ชเ์ ป็น ตวั เปิดปิดและรบั สญั ญำณ ดงั นนั้ ในหน่วยกำรเรยี นจะกลำ่ วถงึ กำรทำงำนของวงจรสวติ ช์ กำรรบั ขอ้ มูลจำกสวติ ช์ กำรเช่อื มต่อไมโครคอนโทรลเลอรก์ บั สวติ ช์ กำรเขยี นโปรแกรมรบั ขอ้ มูลจำก สวติ ช์ สาระการเรียนรู้ 4.1 หลกั กำรทำงำนของวงจรสวติ ซ์ 4.2 กำรเชอ่ื มต่อไมโครคอนโทรลเลอรก์ บั สวติ ซ์ 4.3 กำรรบั ขอ้ มลู จำกพอรต์ 4.4 กำรเขยี นโปรแกรมรบั คำ่ จำกสวติ ซ์ 4.5 โปรแกรมแก้ปัญหำสญั ญำณรบกวนในกำรกดสวติ ซโ์ ดยใชซ้ อฟตแ์ วร์ 4.6 ฟังกช์ นั่ เกย่ี วกบั อนิ เตอรร์ ปั ตภ์ ำยนอก จุดประสงคเ์ ชงิ พฤติกรรม 1. นกั เรยี นอธบิ ำยกำรควำมรเู้ บอ้ื งตน้ เกย่ี วกบั สวติ ชไ์ ดถ้ กู ตอ้ ง 2. นกั เรยี นสำมำรถต่อวงจรสวติ ชไ์ ดถ้ กู ตอ้ ง 3. นกั เรยี นสำมำรถเช่อื มต่อคอนโทรลเลอรก์ บั สวติ ชไ์ ดถ้ กู ตอ้ ง 4. นกั เรยี นสำมำรถใชง้ ำนคอนโทรลเลอรก์ บั สวติ ชไ์ ดถ้ กู ตอ้ ง หน่วยท่ี 4 : การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 79 แบบทดสอบก่อนเรยี น หน่วยท่ี 4 การเชอื่ มต่อไมโครคอนโทรลเลอร์กับอปุ กรณอ์ นิ พุต คาสงั่ จงเลือกคาตอบที่ถกู ที่สดุ เพียงข้อเดียว 1. สวติ ชเ์ ป็นอปุ กรณ์ทำหน้ำท?่ี ก. ตดั กระแสไฟฟ้ำในวงจร ข. ต่อกระแสไฟฟ้ำในวงจร ค. ตดั หรอื ต่อกระแสไฟฟ้ำในวงจร ง. เปิดหลอดไฟ LED จ. จ่ำยกระแสไฟในวงจร 2. ในงำนควบคมุ ดว้ ยไมโครคอนโทรลเลอรน์ ยิ มใชส้ วติ ชท์ เ่ี รยี กว่ำ? ก. Micro Switch ข. Nano Switch ค. Limit Switch ง. On Switch จ. Off Switch 3. กำรทำงำนของวงจรสวติ ชใ์ นสภำวะปกตหิ รอื ขณะทไ่ี มม่ กี ำรกดสวติ ชจ์ ะไดเ้ อำ้ ทพ์ ตุ เป็น? ก. N/A ข. 12 Volt ค. ลอจกิ “0” ง. ลอจกิ “1” จ. NC 4. สำหรบั Arduino ลอจกิ “1” มรี ะดบั แรงดนั ไฟ? ก. แรงดนั ไฟ 0 โวลท์ ข. แรงดนั ไฟ 1 โวลท์ ค. แรงดนั ไฟ 3.3 โวลท์ ง. แรงดนั ไฟ 5 โวลท์ จ. แรงดนั ไฟ 3.5 โวลท์ หน่วยท่ี 4 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 80 5. ตงั้ แตเ่ รม่ิ ตน้ ของขำพอรต์ ของ Arduino Uno จะถกู กำหนดใหเ้ ป็น? ก. OUTPUT ข. INPUT ค. HIGH ง. LOW จ. BEGIN 6. สำหรบั ขำอนิ พตุ เมอ่ื ไมม่ อี นิ พตุ ป้อนจะตอ้ งกำหนดคำ่ แรงดนั ใหแ้ น่นอน ทำไดโ้ ดย? ก. Pull-up Capacitor ข. Pull-up Resistor ค. Pull-up Inductor ง. Pull-up Diode จ. Pull-up exercise 7. คำ่ ตวั ตำ้ นทำนทใ่ี ชส้ ำหรบั พลดู ำวน์ (Pull-down)? ก. 10kΩ ข. 20kΩ ค. 30kΩ ง. 40kΩ จ. 50kΩ 8. กำหนดพอรต์ เป็นอนิ พตุ ดว้ ยฟังกช์ นั่ คอื ? ก. digitalRead() ข. digitalWrite() ค. pinMode() ง. pullMode() จ. analogRead() 9. กำรอำ่ นคำ่ สวติ ชอ์ นิ พตุ ไดจ้ ำกฟังกช์ นั่ ? ก. digitalRead() ข. digitalWrite() ค. pinMode() ง. pullMode() จ. analogRead() หน่วยท่ี 4 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 81 10. กำรแกป้ ัญหำทร่ี ะดบั สญั ญำณเกดิ กำรสนั่ น้เี รยี กวำ่ ? ก. Debounce ข. Detective ค. Deploy ง. Detox จ. Displacement excitation หน่วยท่ี 4 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 82 กำรทำงำนของไมโครคอนโทรลเลอรม์ คี วำมจำเป็นทจ่ี ะตอ้ งตดิ ต่อกบั วงจรหรอื อุปกรณ์ ภำยนอกเสมอ ยกตวั อย่ำงเช่นกำรท่ไี มโครคอนโทรลเลอรท์ ำกำรอ่ำนขอ้ มูลจำกอุปกรณ์อนิ พุต และทำกำรส่งขอ้ มลู ออกไปทำงอุปกรณ์เอำตพ์ ุต โดยกระบวนกำรดงั กล่ำวไมโครคอนโทรลเลอร์ จะทำกำรติดต่อกบั อุปกรณ์ภำยนอกผ่ำนทำงพอรต์ (Port) ดงั นัน้ จงึ อำจกล่ำวได้ว่ำพอรต์ คือ ช่องทำงในกำรโอนยำ้ ยขอ้ มลู ระหว่ำงไมโครคอนโทรลเลอรก์ บั อุปกรณ์ภำยนอก สำหรบั เน้ือหำ ในบทน้ีจะกล่ำวถงึ กำรใชง้ ำนพอรต์ อนิ พุตและพอรต์ เอำต์พุตของไมโครคอนโทรลเลอรต์ ระกูล MCS-51 เพ่อื ควบคมุ กำรทำงำนของอุปกรณ์ภำยนอก การเช่อื มต่อไมโครคอนโทรลเลอร์กับอปุ กรณ์อนิ พุต สวติ ช์เป็นอุปกรณ์ทำหน้ำท่ตี ัดหรอื ต่อกระแสไฟฟ้ำในวงจร นิยมนำมำใช้ควบคุมกำร เปิดและปิดวงจรไฟฟ้ำ ซง่ึ ในงำนควบคมุ ดว้ ยไมโครคอนโทรลเลอรก์ จ็ ะมกี ำรใชง้ ำนสวติ ชเ์ ป็นตวั เปิดปิดและ.รบั สญั ญำณ ดงั นนั้ ในหน่วยกำรเรยี นจะกล่ำวถงึ กำรทำงำนของวงจรสวติ ช์ กำรรบั ขอ้ มูลจำกสวติ ช์ กำรเช่อื มต่อไมโครคอนโทรลเลอร์กบั สวติ ช์ กำรเขยี นโปรแกรมรบั ขอ้ มลู จำก สวติ ช์ รปู ที่ 4.1 ตวั อยำ่ งสวติ ช์ ที่มา: https://www.amazon.in หน่วยท่ี 4 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 83 4.1 หลกั การทางานของวงจรสวติ ซ์ สวติ ช์ท่ใี ชง้ ำนกนั อย่ใู นปัจจุบนั มหี ลำยชนิดและหลำยแบบ แต่ท่นี ิยมใชใ้ นงำนควบคุม ดว้ ยไมโครคอนโทรลเลอรจ์ ะใช้สวติ ช์ท่เี รยี กว่ำ ไมโครสวชิ ท์ (Micro Switch) หรอื สวติ ชก์ ดตดิ ปลอ่ ยดบั ขนำดเลก็ เน่อื งจำกไมโครสวติ ชม์ ขี นำดเลก็ ใชง้ ำนงำ่ ยและรำคำถูก รปู ท่ี 4.2 กำรทำงำนของสวติ ช์ ท่ีมา: https://www.electronics-tutorials.ws จำกรปู ท่ี 4.2 กำรทำงำนของวงจรสวติ ชใ์ นสภำวะปกตหิ รอื ขณะท่ีไม่มกี ำรกดสวติ ชจ์ ะ ไดเ้ อ้ำทพ์ ุตเป็นลอจกิ “1” หรอื แรงดนั ไฟ 5 โวลท์ และในสภำวะทม่ี กี ำรกดสวติ ชจ์ ะได้เอำทพ์ ุต เป็นลอจกิ “0” หรอื แรงดนั ไฟ 0 โวลท์ 4.2 การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั สวิตซ์ ขำพอร์ตของ Arduino Uno จะถูกกำหนดเป็นอินพุตตงั้ แต่เรมิ่ ต้น จงึ ไม่จำเป็นต้องใช้ ฟังก์ชนั่ pinMode() ในกำรกำหนดให้เป็นอินพุต ขำพอรต์ ท่ถี ูกกำหนดเป็นอินพุตจะมสี ถำนะเป็น อมิ พแี ดนซ์สูง ทำใหม้ คี วำมต้องกำรกระแสไฟฟ้ำจำกอุปกรณ์ทต่ี ้องกำรอ่ำนค่ำอนิ พุตน้อยมำก ทำให้ไม่สำมำรถรบั หรอื จ่ำยกระแสให้กบั วงจรภำยนอกทำให้เขำท่เี ป็นอินพุตน้ีไปใชง้ ำนบำง ประเภท เชน่ สรำ้ งตวั ตรวจจบั กำรสมั ผสั ท่อี ำศยั กำรวดั คำ่ ควำมจไุ ฟฟ้ำ สำหรบั ขำอนิ พตุ เมอ่ื ไม่ มีอินพุตป้อนจะต้องกำหนดค่ำแรงดนั ให้แน่นอน ทำได้โดยต่อตัวต้ำนทำนพลูอัป (Pull-up Resistor) โดยต่อขำของตวั ต้ำนทำนขำหน่ึงไปยงั ไฟเลย้ี ง หรอื ต่อพลูดำวน์ (Pull-down) ซ่งึ ต่อ ขำหน่งึ ของตวั ตำ้ นทำนจำกขำพอรต์ ลงกรำวด์ ค่ำตวั ตำ้ นทำนทใ่ี ชท้ วั่ ไปคอื 10kΩ ดงั รปู ท่ี 4.1 หน่วยที่ 4 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 84 4.3 การรับขอ้ มูลจากพอรต์ Arduino Uno มีขำพอร์ตดิจติ อลท่ีกำหนดให้เป็นอินพุตหรอื เอำต์พุตจำนวน 13 ขำ ถ้ำ ตอ้ งกำรกำหนดเป็นอนิ พุตต้องกำหนดด้วยฟังก์ชนั่ pinMode และอ่ำนค่ำอนิ พุตได้จำกฟังก์ชนั่ digitalRead ซง่ึ มรี ปู แบบดงั น้ี ฟังกช์ นั่ digitalRead (pin); เมอ่ื pin คอื หมำยเลขขำทต่ี อ้ งกำรอ่ำนค่ำสถำนะ เมอ่ื ฟังกช์ นั่ ทำงำนคำ่ เป็น LOW (คำ่ เป็น “0”) หรอื HIGH (ค่ำเป็น “1”) รปู ที่ 4.3 แสดงกำรต่อตวั ทำ้ นทำนพลอู ปั ภำยในทข่ี ำพอรต์ อนิ พตุ ดจิ ติ อล ท่ีมา: https://cybergibbons.com/ ภำยในขำพอร์ตของไมโครคอนโทรลเลอร์ ATmega ซ่ึงเป็นไมโครคอนโทรลเลอร์ หลกั กำร Arduino Uno จะมกี ำรต่อตวั ต้ำนทำนพลูอปั ค่ำ 20kΩ เตรยี มไวใ้ ห้ ซง่ึ สำมำรถสงั่ ต่อ ใชง้ ำนผำ่ นทำงซอฟตแ์ วร์ ดงั ในรปู ท่ี 4.3 สำหรบั ตวั อยำ่ งโปรแกรมเพอ่ื ใชง้ ำนทม่ี ดี งั น้ี ฟังกช์ นั่ pinMode(pin, INPUT); // set pin to input ฟังกช์ นั่ digitalWrite(pin, HIGH); // turn on pullup resistors 4.4 การเขียนโปรแกรมรับค่าจากสวติ ซ์ สำหรบั กำรเขยี นโปรแกรมรบั ค่ำจำกสวติ ชไ์ มจ่ ำเป็นต้องลงไลบรำรเ่ี พมิ่ สำมำรถเรยี กใช้ ฟังก์ชนั่ ได้เลย ในกำรทดลองน้ีจะทดลองอ่ำนค่ำสถำนะของสวิตช์แบบกดติดปล่อยดบั เพ่ือ ควบคุมหลอด LED เม่อื กดสวติ ช์ S1 ทำให้ LED ตดิ สว่ำง เม่อื ปล่อยสวติ ช์ LED1 จะดบั และ เขยี นเป็นโปรแกรมไดด้ งั น้ี หน่วยท่ี 4 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 85 โปรแกรมท่ี 4.1 กำรใชง้ ำนขำอนิ พุตดจิ ติ อลต้องต่อตวั ตำ้ นทำนพลอู ปั (ต่อตวั ต้ำนทำนจำกไฟเลย้ี ง +5V มำยงั ขำอนิ พตุ ) เพ่อื กำหนดสถำนะทแ่ี น่นอนใหก้ บั ขำอนิ พุตในภำวะทไ่ี ม่มกี ำรกดสวติ ช์ ดงั วงจร ในรูปท่ี 4.5 โดยต่อขำ 7 ผ่ำนตัวต้ำนทำนค่ำ 10kΩ ไปยงั ไฟเล้ยี ง +5V เม่อื ไม่ได้กดสวติ ช์ SW1 ท่ขี ำ 7 จะมสี ถำนะเป็นลอจกิ สูง HIGH หรอื “1” เม่อื กดสวติ ชจ์ ะทำให้ขำ 7 ต่อลงกรำวด์ อ่ำนค่ำสถำนะเป็นลอจกิ ต่ำ LOW หรอื “0” รปู ที่ 4.4 โปรแกรมท่ี 4.1 กดตดิ -ปลอ่ ยดบั จำกโปรแกรมท่ี 4.1 เป็นโปรแกรมสำหรบั อ่ำนค่ำอินพุตจำกสวิตช์แบบปุ่มกดเพ่ือ ควบคมุ LED กำรทำงำนของ LED1 จะตรงขำ้ มกบั สถำนะของสวติ ช์ คอื เม่อื ไมก่ ดสวติ ช์ จะอ่ำน สถำนะของขำ 7 ไดล้ อจกิ สูง จงึ ต้องสงั่ ใหข้ ำ 11 เป็นลอจกิ ต่ำหรอื “0” เพ่อื ทำให้ LED1 ดบั เม่อื กด สวติ ช์ อ่ำนค่ำสถำนะของขำ 7 ไดล้ อจกิ “0” ตอ้ งสงั่ ใหข้ ำ 11 เป็น “1” เพอ่ื ขบั LED1 ตดิ สว่ำง เม่อื โปรแกรมทำงำนได้ผลตำมท่ตี ้องกำรแล้วให้ทดลองตวั ต้ำนทำนพลูอปั ค่ำ 10kΩ ออก เพ่ือให้ขำ 7 ลอยสังเกตกรณีน้ี เม่ือยังไม่มีกำรกดสวิตช์ LED1 อำจติดกะพรบิ ด้วย ควำมเรว็ สูง เหน็ LED สว่ำงเร่อื ย ๆ เน่ืองจำกสถำนะของขำ Di7 เป็น “0” และ “1” สลบั กนั ไม่ แน่นอน 4.5 โปรแกรมแกป้ ญั หาสญั ญาณรบกวนในการกดสวติ ซโ์ ดยใชซ้ อฟต์แวร์ สำหรบั หวั ขอ้ น้จี ะทดลองเขยี นโปรแกรมรบั ค่ำของสวติ ช์ ซง่ึ เป็นแบบกดตดิ ปล่อยดบั ให้ มกี ำรทำงำนเป็นแบบกดตดิ กดดบั คอื เม่อื เรม่ิ ต้นโปรมแกรม LED ดบั อยู่ เมอ่ื กดสวติ ช์ LED จะ ตดิ สว่ำงเม่อื กดสวติ ชอ์ กี ครงั้ LED จะดบั สลบั กนั ไปมำตลอดเวลำ โดยทวั่ ไปแลว้ สวติ ชท์ ่ใี ชจ้ ะ เป็นสวติ ช์ทำงกลท่ปี ระกอบดว้ ยหน้ำสมั ผสั โลหะ ในกำรกดสวติ ช์ใหต้ ่อวงจร พบว่ำหน้ำสมั ผสั หน่วยท่ี 4 : การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 86 ของสวติ ช์จะไม่สมั ผัสกันสนิททนั ที โดยมชี ่วงเวลำท่เี ร่ิมสมั ผสั และหลุดเป็นช่วงเวลำสนั้ ๆ ก่อนทห่ี น้ำสมั ผสั ของสวติ ช์จะต่ออย่ำงสมบูรณ์ และเม่อื วดั สญั ญำณทไ่ี ดจ้ ำกสวติ ช์พบว่ำระดบั สญั ญำณมกี ำรสนั่ รปู ท่ี 4.5 แสดงกำรเกดิ สญั ญำณรบกวนเมอ่ื มกี ำรกดและปล่อยสวติ ชใ์ นวงจรดจิ ติ อล กำรสัน่ ท่ีเรยี กว่ำเบำซ์ (Bounce) อยู่ชัว่ ขณะดังแสดงในรูปท่ี 4.5 โดยระยะเวลำท่ี สญั ญำณเกดิ กำรเบำวซ์น้ีมรี ะยะเวลำตงั้ แต่ไม่ก่มี ลิ ลวิ นิ ำที (ms) ไปจนถึงหลำยสบิ มลิ ลวิ นิ ำที ขน้ึ กบั ประเภทของสวติ ชท์ ใ่ี ช้ กำรแก้ปัญหำท่รี ะดบั สญั ญำณเกิดกำรสนั่ น้ีเรยี กว่ำกำรดเี บำซ์ (Debounce) หลกั กำร แก้ไขสญั ญำณรบกวนแบบบนคอื หน่วงเวลำกำรเกดิ ขน้ึ ของสญั ญำณพลั สเ์ ลก็ น้อย เพ่อื ใหว้ งจร ไมส่ นใจสญั ญำณทเ่ี กดิ ขน้ึ ในช่วงเรมิ่ ตน้ กดสวติ ช์ ซง่ึ ทำไดห้ ลำยวธิ ี เช่นวธิ กี ำรแรกทำไดโ้ ดยใช้ อุปกรณ์อเิ ล็กทรอนิกสพ์ ้นื ฐำน อย่ำงตวั ต้ำนทำนและตวั เก็บประจุ โดยต่อกนั ในลกั ษณะวงจร RC อนิ ติเกรเตอรด์ งั ในรูปท่ี 4.6 ด้วยวธิ กี ำรน้ีจะช่วยลดผลของสญั ญำณรบกวนท่เี กิดข้นึ จำกกำรกด สวติ ช์ไดใ้ นระดบั หน่ึง โดยประสทิ ธภิ ำพของวงจรจะขน้ึ กบั กำรเลอื กค่ำของตวั ต้ำนทำนและตวั เกบ็ ประจุ หำกเลอื กค่ำของตวั เก็บประจุน้อยเกนิ ไป อำจไม่สำมำรถลดสญั ญำณรบกวนได้ แต่ถ้ำ เลอื กค่ำมำกเกินไปจะทำให้ควำมไวในกำรตรวจจบั กำรกดสวิตช์ลดลง นัน่ คอื อำจต้องกดสวติ ช์ มำกกว่ำ 1 ครงั้ เพอ่ื ใหไ้ ดส้ ญั ญำณทต่ี อ้ งกำร รปู ท่ี 4.6 กำรต่อวงจร RC อนิ ตเิ กรเตอร์ เพอ่ื แกไ้ ขปัญหำสญั ญำณรบกวนจำกกำรกดสวติ ช์ หน่วยที่ 4 : การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 87 หรอื ถ้ำแก้โดยใช้ไมโครคอนโทรลเลอร์ จะสำมำรถแก้ไขได้ด้วยกระบวนกำรทำง ซอฟตแ์ วร์ โดยเขยี นโปรแกรมใหต้ รวจจบั กำรเปลย่ี นแปลงระดบั ลอจกิ ของสวติ ช์ ถำ้ พบว่ำมกี ำร เรมิ่ กดสวติ ช์ กค็ อื ระดบั ลอจกิ เปลย่ี นจำก “1” เป็น “0” โปรแกรมจะหน่วงเวลำรอจนเลยช่วงเวลำเกดิ เบำซข์ องสวติ ช์ เม่อื เลยเวลำแลว้ ใหท้ ำกำรอ่ำนค่ำสถำนะของสวติ ชอ์ กี ครงั้ ถำ้ ยงั คงเป็น “0” แสดงว่ำ กดสวติ ชส์ มบรู ณ์แลว้ ระยะเวลำท่ตี ้องหน่วงเวลำหำได้จำกกำรใช้ออสซลิ โลสโคปวดั ระดบั สญั ญำณ หรอื ใช้ กำรทดลองป้อนค่ำหน่วงเวลำแล้วปรบั ค่ำจนกระทงั่ ได้ค่ำท่แี ก้ปัญหำกำรเบำวซ์ของสวติ ช์ได้ อย่ำงสมบูรณ์ ในโปรแกรมทดลองท่ี 4.2 ได้ทดลองโดยใช้ค่ำของกำรหน่วงเวลำเท่ำกบั 10 มลิ ลวิ นิ ำที โปรแกรมท่ี 4.2 กำรอ่ำนค่ำสวติ ช์เพ่อื ควบคุม LED แบบมกี ำรแก้สญั ญำณรบกวนจำก กำรกดสวติ ชห์ รอื ดเี บำซ์ รปู ที่ 4.7 โปรแกรมแกส้ ญั ญำณรบกวนจำกกำรกดสวติ ช์ 4.6 ฟังก์ชนั่ เก่ยี วกบั อินเตอรร์ ปั ต์ภายนอก 4.6.1 attachInterrupt(interrupt, function, mode) ใชร้ ะบุว่ำเมอ่ื ขำอนิ พุตทร่ี บั สญั ญำณอนิ เตอรร์ ปั ต์จำกภำยนอกมกี ำรเปลย่ี นแปลง เกดิ ขน้ึ จะกำหนดให้ ซพี ยี กู ระโดดไปยงั ฟังก์ชนั่ ใด โดยมขี ำอนิ พุตรบั สญั ญำณอนิ เตอรร์ ปั ตจ์ ำก ภำยนอก 2 ขำคอื D2 และ D3 ซง่ึ ตรง หมายเหตุ ฟังกช์ นั่ ทท่ี ำงำนเม่อื กำรอนิ เตอรร์ ปั ต์ จะไมส่ ำมำรถเรยี กใช้ฟังก์ชนั่ milis() และ delay() ไดเ้ ม่อื เกดิ กำรตอบสนองอนิ เตอรร์ ปั ต์แลว้ ดงั นนั้ ขอ้ มลู ทเ่ี ขำ้ มำทำงขำ serial data อำจสญู หำยได้ หน่วยท่ี 4 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 88 พารามิเตอร์ Interrupt - หมำยเลขของชอ่ งอนิ พตุ อนิ เตอรร์ ปั ต์ (เป็น int) function – ฟังกช์ นั่ ทจ่ี ะกระโดดไปทำงำนเมอ่ื เกดิ อนิ เตอรร์ ปั ต์ ฟังกช์ นั่ น้ตี อ้ งไมร่ บั คำ่ พำรำมเิ ตอรแ์ ละไม่มกี ำรคนื คำ่ mode – เลอื กประเภทสญั ญำณทใ่ี ชก้ ระตุน้ ใหเ้ กดิ กำรอนิ เตอรร์ ปั ต์ LOW เกดิ อนิ เตอรร์ ปั ตเ์ มอ่ื ขำสญั ญำณเป็นลอจกิ “0” CHANGE เกดิ อนิ เตอรร์ ปั ตเ์ มอ่ื มกี ำรเปลย่ี นแปลงลอจกิ RISING เกดิ อนิ เตอรร์ ปั ตเ์ ม่อื มกี ำรเปลย่ี นลอจกิ “0” เป็น “1” FALLING เกดิ อนิ เตอรร์ ปั ตเ์ มอ่ื เปลย่ี นลอจกิ “1” เป็น “0” โปรแกรมท่ี 4.3 กำรโปรแกรมอ่ำนคำ่ สวติ ชด์ ว้ ยฟังกช์ นั่ attachInterrupt() เป็นกำรเลอื กอินพุตอินเตอรร์ ปั ต์ช่อง 0 กำหนดให้กระโดดไปทำงำนท่ฟี ังก์ชนั่ blink เพ่อื เปลย่ี นสถำนะลอจกิ ทข่ี ำ 13 เมอ่ื เกดิ กำรอนิ เตอรร์ ปั ตจ์ ำกกำรเปลย่ี นแปลงลอจกิ ทข่ี ำ 2 รปู ที่ 4.8 โปรแกรมอ่ำนค่ำสวติ ชด์ ว้ ยฟังกช์ นั่ attachInterrupt() 4.6.2 detachInterrupt(interrupt) ยกเลกิ กำรอนิ เตอรร์ ปั ต์ พารามิเตอร์ Interrupt - หมำยเลขของช่องอินพุตอินเตอรร์ ปั ต์ท่ตี ้องกำรยกเลกิ (ค่ำเป็น 0 หรอื 1) หน่วยที่ 4 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 89 แบบทดสอบหลังเรยี น หนว่ ยที่ 4 การเชื่อมตอ่ ไมโครคอนโทรลเลอร์กบั อปุ กรณอ์ นิ พตุ คาสงั่ จงเลือกคาตอบท่ีถกู ที่สดุ เพียงข้อเดียว 1. สวติ ชเ์ ป็นอปุ กรณ์ทำหน้ำท?่ี ก. ตดั กระแสไฟฟ้ำในวงจร ข. ตอ่ กระแสไฟฟ้ำในวงจร ค. ตดั หรอื ต่อกระแสไฟฟ้ำในวงจร ง. เปิดหลอดไฟ LED จ. จ่ำยกระแสไฟในวงจร 2. ในงำนควบคมุ ดว้ ยไมโครคอนโทรลเลอรน์ ิยมใชส้ วติ ชท์ เ่ี รยี กว่ำ? ก. Micro Switch ข. Nano Switch ค. Limit Switch ง. On Switch จ. Off Switch 3. กำรทำงำนของวงจรสวติ ชใ์ นสภำวะปกตหิ รอื ขณะทไ่ี มม่ กี ำรกดสวติ ชจ์ ะไดเ้ อำ้ ทพ์ ตุ เป็น? ก. N/A ข. 12 Volt ค. ลอจกิ “0” ง. ลอจกิ “1” จ. NC 4. สำหรบั Arduino ลอจกิ “1” มรี ะดบั แรงดนั ไฟ? ก. แรงดนั ไฟ 0 โวลท์ ข. แรงดนั ไฟ 1 โวลท์ ค. แรงดนั ไฟ 3.3 โวลท์ ง. แรงดนั ไฟ 5 โวลท์ จ. แรงดนั ไฟ 3.5 โวลท์ หน่วยที่ 4 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 90 5. ตงั้ แตเ่ รม่ิ ตน้ ของขำพอรต์ ของ Arduino Uno จะถกู กำหนดใหเ้ ป็น? ก. OUTPUT ข. INPUT ค. HIGH ง. LOW จ. BEGIN 6. สำหรบั ขำอนิ พตุ เมอ่ื ไมม่ อี นิ พตุ ป้อนจะตอ้ งกำหนดคำ่ แรงดนั ใหแ้ น่นอน ทำไดโ้ ดย? ก. Pull-up Capacitor ข. Pull-up Resistor ค. Pull-up Inductor ง. Pull-up Diode จ. Pull-up exercise 7. คำ่ ตวั ตำ้ นทำนทใ่ี ชส้ ำหรบั พลดู ำวน์ (Pull-down)? ก. 10kΩ ข. 20kΩ ค. 30kΩ ง. 40kΩ จ. 50kΩ 8. กำหนดพอรต์ เป็นอนิ พตุ ดว้ ยฟังกช์ นั่ คอื ? ก. digitalRead() ข. digitalWrite() ค. pinMode() ง. pullMode() จ. analogRead() 9. กำรอำ่ นคำ่ สวติ ชอ์ นิ พตุ ไดจ้ ำกฟังกช์ นั่ ? ก. digitalRead() ข. digitalWrite() ค. pinMode() ง. pullMode() จ. analogRead() หน่วยท่ี 4 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 91 10. กำรแกป้ ัญหำทร่ี ะดบั สญั ญำณเกดิ กำรสนั่ น้เี รยี กวำ่ ? ก. Debounce ข. Detective ค. Deploy ง. Detox จ. Displacement excitation หน่วยท่ี 4 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 92 แบบฝึกหัด หน่วยท่ี 4 การเช่อื มต่อไมโครคอนโทรลเลอร์กับอปุ กรณอ์ ินพตุ ตอนท่ี 1 ใหผ้ เู้ รยี นกำเครอ่ื งหมำยถกู () หน้ำขอ้ ทค่ี ดิ วำ่ ถกู และกำเครอ่ื งหมำยผดิ () ในขอ้ ทค่ี ดิ ว่ำผดิ กำรเขยี นโปรแกรมรบั คำ่ จำกสวติ ชจ์ ำเป็นตอ้ งลงไลบรำรเ่ี พม่ิ Switch.h หลกั กำรแกไ้ ขสญั ญำณรบกวนแบบบนคอื หน่วงเวลำกำรเกดิ ขน้ึ ของสญั ญำณ พลั สเ์ ลก็ น้อยเพ่อื ใหว้ งจรไมส่ นใจสญั ญำณทเ่ี กดิ ขน้ึ ในช่วงเรม่ิ ตน้ กดสวติ ช์ ระยะเวลำทส่ี ญั ญำณเกดิ กำรเบำวซน์ ้มี รี ะยะเวลำหลำยสบิ วนิ ำที กำรแก้ปัญหำ Debounce โดยใชอ้ ุปกรณ์อเิ ลก็ ทรอนกิ สพ์ น้ื ฐำน อยำ่ งตวั ตำ้ นทำน และตวั เกบ็ ประจุ โดยต่อกนั ในลกั ษณะวงจร RC อนิ ตเิ กรเตอร์ LOW เกดิ อนิ เตอรร์ ปั ตเ์ มอ่ื ขำสญั ญำณเป็นลอจกิ “0” CHANGE เกดิ อนิ เตอรร์ ปั ตเ์ มอ่ื มกี ำรเปลย่ี นแปลงลอจกิ RISING เกดิ อนิ เตอรร์ ปั ตเ์ มอ่ื มกี ำรเปลย่ี นลอจกิ “1” เป็น “0” FALLING เกดิ อนิ เตอรร์ ปั ตเ์ มอ่ื เปลย่ี นลอจกิ “1” เป็น “0” ขำอนิ พตุ รบั สญั ญำณอนิ เตอรร์ ปั ตจ์ ำกภำยนอก 2 ขำคอื D2 และ D3 detachInterrupt(interrupt) คอื ฟังกช์ นั่ เรยี กกำรอนิ เตอรร์ ปั ต์ หน่วยที่ 4 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 93 ตอนที่ 2 คาสงั่ ใหผ้ เู้ รยี นทดลองกำรอ่ำนค่ำขอ้ มลู จำกสวติ ชด์ ว้ ยบอรด์ Arduino Uno R3 โดยใชเ้ วลำ 120 นำที จดุ ประสงคเ์ ชิงพฤติกรรม 1. สำมำรถอ่ำนคำ่ สวติ ช์ ไดถ้ ูกตอ้ ง 2. สำมำรถแกป้ ัญหำในกำรทำงำนของบอรด์ Arduino Uno R3 ได้ 3. สำมำรถต่อใชง้ ำนและอพั โหลดโปรแกรมใหก้ บั บอรด์ Arduino Uno R3 ได้ อปุ กรณ์การทดลอง 1 โปรแกรม 1 เสน้ 1. โปรแกรม Arduino IDE 1 บอรด์ 2. สำยโหลด USB Arduino Uno R3 1 ชดุ 3. บอรด์ Arduino Uno R3 1 เครอ่ื ง 4. สำยต่อวงจร 1 ตวั 5. เครอ่ื งคอมพวิ เตอร์ 10 เสน้ 6. สวติ ช์ 7. Hook-up Wires การทดลองท่ี 4.1 การสวิตชค์ วบคมุ หลอด LED แบบกดติด-กดดบั ขนั้ ตอนการทดลอง 1. เปิดโปรแกรม Arduino IDE 2. ต่อวงจรดงั รปู ท่ี 4.9 3. เขยี นโปรแกรมและอพั โหลดโปรแกรม รปู ท่ี 4.9 กำรต่อวงจรสวติ ชส์ ำหรบั ควบคุมหลอด LED แบบกดตดิ -กดดบั หน่วยท่ี 4 : การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 94 Code รปู ที่ 4.10 โปรแกรมสำหรบั กำรทดลองท่ี 4.1 ประเมินผลการทดลอง 1. สำมำรถเขยี นโปรแกรมและต่อวงจรไดถ้ ูกตอ้ ง 10 คะแนน 2. สำมำรถทดสอบและอธบิ ำยกำรทำงำนได้ 10 คะแนน ถูกตอ้ ง ………………………คะแนน รวมคะแนนภาคปฏิบตั ิ การทดลองที่ 4.2 การควบคมุ ความเรว็ ในการกระพริบของหลอด LED ด้วยฟังกช์ นั่ attachInterrupt() ขนั้ ตอนการทดลอง 1. เปิดโปรแกรม Arduino IDE 2. ต่อวงจรดงั รปู ท่ี 4.11 3. เขยี นโปรแกรมและอพั โหลดโปรแกรม รปู ท่ี 4.11 กำรต่อวงจรสวติ ชส์ ำหรบั ควบคุมควำมเรว็ ในกำรกระพรบิ ของหลอด LED หน่วยท่ี 4 : การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 95 Code รปู ท่ี 4.12 โปรแกรมสำหรบั กำรทดลองท่ี 4.2 ประเมินผลการทดลอง 10 คะแนน 10 คะแนน 1. สำมำรถเขยี นโปรแกรมและต่อวงจรได้ …………………… คะแนน ถกู ตอ้ ง 2. สำมำรถทดสอบและอธบิ ำยกำรทำงำนได้ ถูกตอ้ ง รวมคะแนนภาคปฏิบตั ิ หน่วยท่ี 4 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 96 เฉลยแบบทดสอบก่อนเรียน หน่วยท่ี 4 การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ 1. ค 2. ก 3. ง 4. ง 5. ข 6. ข 7. ก 8. ค 9. ก 10. ก เฉลยแบบทดสอบหลงั เรียน หน่วยท่ี 4 การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ 1. ง 2. ค 3. ก 4. ข 5. ค 6. ก 7. ง 8. ข 9. ก 10. ค เฉลยแบบฝึ กหดั หน่วยที่ 4 การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ ตอนท่ี 1 ใหผ้ เู้ รยี นกำเครอ่ื งหมำยถูก () หน้ำขอ้ ทค่ี ดิ ว่ำถูก และกำเครอ่ื งหมำยผดิ () ในขอ้ ทค่ี ดิ ว่ำผดิ กำรเขยี นโปรแกรมรบั คำ่ จำกสวติ ชจ์ ำเป็นตอ้ งลงไลบรำรเ่ี พม่ิ Switch.h หลกั กำรแกไ้ ขสญั ญำณรบกวนแบบบนคอื หน่วงเวลำกำรเกดิ ขน้ึ ของสญั ญำณ พลั ส์ เลก็ น้อย เพอ่ื ใหว้ งจรไมส่ นใจสญั ญำณทเ่ี กดิ ขน้ึ ในชว่ งเรมิ่ ตน้ กดสวติ ช์ ระยะเวลำทส่ี ญั ญำณเกดิ กำรเบำวซน์ ้มี รี ะยะเวลำหลำยสบิ วนิ ำที กำรแกป้ ัญหำ Debounce โดยใชอ้ ุปกรณ์อเิ ลก็ ทรอนิกสพ์ น้ื ฐำน อยำ่ งตวั ตำ้ นทำน และ ตวั เกบ็ ประจุ โดยต่อกนั ในลกั ษณะวงจร RC อนิ ตเิ กรเตอร์ LOW เกดิ อนิ เตอรร์ ปั ตเ์ มอ่ื ขำสญั ญำณเป็นลอจกิ “0” CHANGE เกดิ อนิ เตอรร์ ปั ตเ์ มอ่ื มกี ำรเปลย่ี นแปลงลอจกิ RISING เกดิ อนิ เตอรร์ ปั ตเ์ มอ่ื มกี ำรเปลย่ี นลอจกิ “1” เป็น “0” FALLING เกดิ อนิ เตอรร์ ปั ตเ์ มอ่ื เปลย่ี นลอจกิ “1” เป็น “0” ขำอนิ พตุ รบั สญั ญำณอนิ เตอรร์ ปั ตจ์ ำกภำยนอก 2 ขำคอื D2 และ D3 detachInterrupt(interrupt) คอื ฟังกช์ นั่ เรยี กกำรอนิ เตอรร์ ปั ต์ หน่วยท่ี 4 : การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
Search
Read the Text Version
- 1 - 20
Pages: