เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 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 : การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์อินพตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 97 หนว่ ยท่ี 5 การอา่ นคา่ แอนนาลอ๊ ก สาระสาคญั การพฒั นาโปรแกรมภาษา C/C++ ด้วย Arduino IDE สาหรบั บอร์ด Arduino ภายใต้ การเรยี กใชง้ านไลบรารหี ลกั ของทาง Arduino จดั เตรยี มใหผ้ นวกเขา้ กบั ไฟลไ์ ลบรารที พ่ี ฒั นาขน้ึ มาเป็นเฉพาะสาหรบั บอรด์ Arduino เพ่อื ช่วยลดความซบั ซอ้ นในการเขยี นโปรแกรมควบคุมลง Arduino IDE ได้บรรจุไฟล์ไลบรารีท่ีช่วยให้การเขียนโปรแกรมภาษา C/C++ เพ่ือให้ใช้งาน ไมโครคอนโทรลเลอร์ได้ง่ายข้ึน รวม ถึงผู้เริ่ม ต้น ให ม่ก็สาม ารถ เรีย น รู้เพ่ือ ใช้งาน ไมโครคอนโทรลเลอรไ์ ด้ โดยไมจ่ าเป็นตอ้ งศกึ ษาเพ่อื ลงลกึ ในรายละเอยี ดของสถาปัตยกรรม สาระการเรยี นรู้ 5.1 ไลบรารขี อง Arduino 5.2 ไลบรารเี กย่ี วกบั เวลา 5.3 การอ่านคา่ แอนนาลอ๊ ก จดุ ประสงคเ์ ชงิ พฤติกรรม เพ่อื ใหน้ กั เรยี น 1. สามารถใชง้ านไลบรารข่ี อง Arduino ไดถ้ กู ตอ้ ง 2. สามารถใชง้ านไลบรารเี กย่ี วกบั เวลาไดถ้ กู ตอ้ ง 3. สามารถใชง้ านไลบรารเี กย่ี วกบั การอ่านค่าแอนนาล๊อกได้ถูกตอ้ ง หน่วยท่ี 5 : การอ่านคา่ แอนนาลอ๊ ก
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 98 แบบทดสอบก่อนเรยี น หน่วยท่ี 5 การอา่ นคา่ แอนนาล๊อก คาสงั่ จงเลือกคาตอบที่ถกู ท่ีสดุ เพียงข้อเดียว 1. หน่วยความจาขอ้ มลู ออี พี รอม ภายในตวั ไมโครคอนโทรลเลอรเ์ มอ่ื ตอ้ งการใชง้ านตอ้ งผนวก ไฟลไ์ ลบรารี ดว้ ยคาสงั่ ? ก. #include<EEPROM.d> ข. #include<EEPROM.hpp> ค. #include<EEPROM.h> ง. #include<EEPROM.c> จ. #include<EEPROM.o> 2. ตอ้ งใชค้ าสงั่ ใดในการผนวกไฟลไ์ ลบรารขี อง servo? ก. #include<servo.d> ข. #include<servo.hpp> ค. #include<servo.h> ง. #include<servo.c> จ. #include<EEPROM.o> 3. Arduino บรรจฟุ ังกช์ นั่ Wire สาหรบั ตดิ ต่อกบั อุปกรณ์ผา่ นบสั ? ก. URAT ข. I2C ค. SPI ง. USB จ. GSM 4. Arduino UNO บรรจฟุ ังกช์ นั่ และคาสงั่ สาหรบั ตดิ ต่อกบั SPI โดยตอ้ งใชข้ าพอรต์ ? ก. 10 (MISO), 11 (MOSI) และ 12 (SS) ข. 11 (MISO), 10 (MOSI) และ 12 (SS) ค. 12 (MISO), 11 (MOSI) และ 10 (SS) ง. 9 (MISO), 8 (MOSI) และ 7 (SS) จ. 11 (MISO), 12 (MOSI) และ 13 (SS) หน่วยท่ี 5 : การอ่านค่าแอนนาลอ๊ ก
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 99 5. ไลบรารี Wire ตดิ ต่อกบั อปกุ รณ์ผ่านบสั I2C ขาพอรต์ ? ก. A4 (SDA) และ A5 (SCL) ข. A1 (SDA) และ A2 (SCL) ค. A2 (SDA) และ A3 (SCL) ง. A3 (SDA) และ A4 (SCL) จ. A4 (SDA) และ A3 (SCL) 6. คาสงั่ ใดเป็นไลบรารเี กย่ี วกบั เวลา? ก. delay ข. delays ค. us_delay ง. sleep_us จ. void delay_us 7. จานวนขาแอนนาล๊อกบอรด์ Arduino Uno R3? ก. 4 ข. 5 ค. 6 ง. 8 จ. 10 8. ยา่ นคา่ แรงดนั ทพ่ี อรต์ แอนนาล๊อก? ก. 0 ถงึ +1v ข. 0 ถงึ +3.3v ค. 0 ถงึ +5v ง. 0 ถงึ +12v จ. 0 ถงึ +14v 9. คา่ ความละเอยี ดในการแปลงสญั ญาณแอนนาล๊อกเป็นดจิ ติ อลภายไมโครคอนโทรลเลอร์? ก. 5 บติ ข. 8 บติ ค. 10 บติ ง. 16 บติ จ. 18 บติ หน่วยที่ 5 : การอ่านค่าแอนนาลอ๊ ก
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 100 10. คา่ ขอ้ มลู แอนนาล๊อกทถ่ี ูกแปลงเป็นดจิ ติ อลจะอยรู่ ะหวา่ ง? ก. 0 ถงึ 128 ข. 0 ถงึ 256 ค. 0 ถงึ 512 ง. 0 ถงึ 1,023 จ. 0 ถงึ 2,046 หน่วยท่ี 5 : การอ่านคา่ แอนนาลอ๊ ก
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 101 เน่ืองจากค่าท่ีอ่านจากการกดสวิตช์เข้ามาทางพอร์ตแอนาลอกมีโอกาสท่ี ตัวเลข จะแกว่งได้ ดงั นนั้ หากเขยี นโปรแกรมโดยวธิ กี ารตรวจสอบการเท่ากนั ของค่าทก่ี าหนดมโี อกาส จะคลาดเคล่อื นได้ ทางแก้ปัญหาการแกว่งของค่าท าได้โดยเพมิ่ ช่วงในการตรวจสอบแทนท่ี จะตรวจสอบเพยี งคา่ เดยี ว การทดลองน้เี ป็นการทดลองการกดสวติ ชท์ ร่ี บั เขา้ มาทางพอรต์ แอนา ลอกและมกี ารเพม่ิ ชว่ งในการตรวจสอบ เป็น ±30 ค่าและแสดงผลเป็นขอ้ ความว่าสวติ ชใ์ ดถกู กด 5.1 ไลบรารีของ Arduino ไฟล์ไลบรารที ่พี ัฒนาข้นึ มาเป็นเฉพาะสาหรบั บอรด์ Arduino ทงั้ น้ีเพ่ือช่วยลดความ ซบั ซ้อนในการเขยี นโปรแกรมควบคุมลง Arduino IDE ไดบ้ รรจุไฟล์ไลบรารที ช่ี ่วยใหก้ ารเขยี น โปรแกรมภาษา C/C++ เพ่อื ใชง้ านไมโครคอนโทรลเลอรไ์ ดง้ า่ ยขน้ึ โดยไฟลไ์ ลบรารที ส่ี าคญั และ ใชง้ านกบั บอรด์ Arduino ประกอบดว้ ย 5.1.1 EEPROM บรรจไุ ลบรารแี ละคาสงั่ สาหรบั ตดิ ต่อกบั หน่วยความจาข้อมลู ออี พี รอม ภายในตวั ไมโครคอนโทรลเลอร์ เมอ่ื ตอ้ งการใชง้ านตอ้ งผนวกไฟลไ์ ลบรารไี วใ้ นตอนตน้ ของโปรแกรม รปู แบบคาสงั่ #include <EEPROM.h> 5.1.2 LiquidCrystal บรรจุไลบรารีและคาสัง่ สาหรบั ติดต่อกับโมดูล LCD แบบอักขระเพ่ือแสดงผล ขอ้ ความและตวั เลข รองรบั ทงั้ การติดต่อแบบ 4 บติ และ 8 บติ ใชง้ านได้กบั โมดูล LCD 8, 16 และ 20 ตวั อกั ษร 1, 2 และ 4 บรรทดั เม่อื ต้องการใช้งานต้องผนวกไฟล์ไลบรารไี ว้ในตอนต้นของ โปรแกรม รปู แบบคาสงั่ #include <LiquidCrystal.h> 5.1.3 servo บรรจุไลบรารแี ละคาสงั่ สาหรบั เรยี กใช้งานการขบั เซอร์โวมอเตอร์ ต้องทางาน รว่ มกบั เซอรโ์ วมอเตอรแ์ ละต้องใชไ้ ฟเลย้ี งแยกสาหรบั เซอรโ์ วมอเตอร์ เม่อื ต้องการใช้งานต้อง ผนวกไฟลไ์ ลบรารไี วใ้ นตอนตน้ ของโปรแกรม รปู แบบคาสงั่ #include <servo.h> 5.1.4 SoftwareSerial บรรจไุ ลบรารแี ละคาสงั่ สาหรบั ใช้งานขาพอรต์ ของ Arduino ในการส่อื สารขอ้ มูล อนุ กรมไลบรารีจะถูกนามาใช้งานเม่ือขาเช่ือมต่อพอร์ตอนุ กรมหลัก (RxD และ TxD) หน่วยท่ี 5 : การอ่านค่าแอนนาลอ๊ ก
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 102 ของ Arduino ถูกใช้งานไปแล้ว และมคี วามต้องการติดต่ออุปกรณ์ท่ตี ้องใช้การส่อื สารข้อมูล อนุกรม การใชง้ านไลบรารจี ะช่วยให้ผู้ใชง้ านสามารถใช้ ขาพอรต์ ของ Arduino ขาอ่นื ท่วี ่างมา ทาหน้าท่เี ป็นขาพอรต์ สาหรบั ส่อื สารขอ้ มูลอนุกรม เม่อื ต้องการใช้งานต้องผนวกไฟล์ไลบรารี ไวใ้ นตอนตน้ ของโปรแกรม รปู แบบคาสงั่ #include <SoftwareSerial.h> 5.1.5 SPI บรรจุไลบรารแี ละคาสงั่ สาหรบั ตดิ ต่อกบั อุปกรณ์ผ่านบสั SPI (Serial Peripheral Interface) โดยต้องใช้ขาพอร์ต 12 (MISO), 11 (MOSI) และ 10 (SS) ในการติดต่ออุปกรณ์ท่ี ทางานผ่านบสั แบบ SPI ประกอบ ด้วยไอซีหน่วยความจาอีอีพรอมในอนุกรม 93Cxxx, ไอซี แปลงสญั ญาณแอนะล็อกเป็นดิจติ อล, ไอซีแปลง สัญญาณดิจติ อลเป็นแอนะล็อก, ไอซีวดั อุณหภูม,ิ ไอซขี บั LED ตวั เลข 7 ส่วน เป็นต้น เม่อื ต้องการใชง้ านต้องผนวกไฟลไ์ ลบรารไี วใ้ น ตอนตน้ ของโปรแกรม รปู แบบคาสงั่ #include <SPI.h> 5.1.6 Wire บรรจุไลบรารแี ละคาสงั่ สาหรบั ตดิ ต่อกบั อปุกรณ์ผ่านบสั I2C โดยตอ้ งใชข้ าพอรต์ A4 (SDA) และ A5 (SCL) ในการติดต่ออุปกรณ์ ท่ีทางานผ่านบัส I2C มีมากมายเช่นไอซี หน่วยความจาออี พี รอมในอนุกรม 24Cxxx, ไอซแี ปลงสญั ญาณแอนนาล๊อกเป็นดจิ ติ อล, ไอซี แปลงสญั ญาณดจิ ติ อลเป็นแอนนาล๊อก ,ไอซวี ดั อุณภมู ิ , ไอซขี ยายพอรต์ อนิ พุตเอาต์พตุ, โมดูล วทิ ยุ FM, ตวั ตรวจจบั ความชน้ื , ตวั ตรวจจบั ความดนั บรรยากาศ, ตวั ตวั ตรวจจบั ความเรง่ แบบ 3 แกน เป็นตน้ เมอ่ื ตอ้ งการใชง้ านตอ้ งผนวกไฟลไ์ ลบรารไี วใ้ นตอนตน้ ของโปรแกรม รปู แบบคาสงั่ #include <Wire.h> ทงั้ น้ีสาหรบั ฮารด์ แวร์ Arduino Leonardo ซ่งึ บอรด์ Arduino ก็เป็นฮารด์ แวรแ์ บบหน่ึง ท่ีเข้ากันได้มไี ลบรารพี ิเศษท่ีเพิ่มเติมข้นึ มานัน่ คือ ไลบรารี USB ในการใช้งานไลบรารขี อง ไลบรารี USB น้ีไม่ต้องทาการผนวกไลบรารเี พ่ิมเติมแต่อย่างใด ผู้พฒั นาโปรแกรมสามารถ เรยี กใชง้ านไลบรารไี ดเ้ ลย ไลบรารี USB มี 2 ไลบรารยี อ่ ยคอื Mouse บรรจุไลบรารีและคาสัง่ เพ่ือให้ฮาร์ดแวร์ Arduino Leonardo หรือบอร์ด Arduino ทางานเป็นเมาส์ USB Keyboard บรรจุไลบรารแี ละคาสัง่ เพ่ือให้ฮาร์ดแวร์ Arduino Leonardo หรือบอร์ด Arduino ทางานเป็ นคีย์บอร์ด USB นอกไปจากไลบรารีมาตรฐานและไลบรารี USB หน่วยท่ี 5 : การอ่านค่าแอนนาลอ๊ ก
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 103 ท่ที าง Arduino เตรยี มมาให้พร้อมใช้งานการเรยี กใช้งานชุดคาสงั่ ย่อยต่าง ๆ เพ่อื การพฒั นา โปรแกรมควบคุมสาหรบั บอรด์ Arduino ผู้พฒั นาต้องผนวกไฟล์ไลบรารหี ลกั Arduino.h โดย #include <Arduino.h> เพ่อื ประกาศใหต้ วั แปลภาษาหรอื คอมไพเลอรร์ จู้ กั ชุดคาสงั่ ยอ่ ยต่าง ๆ ท่ี กาลงั จะถูกเรยี กใช้งานจากไฟล์ไลบรารี Arduino.h ไลบรารยี ่อย ของไฟล์ไลบรารี Arduino.h ประกอบดว้ ย glcd บรรจุไลบรารแี ละคาสงั่ สาหรับแสดงผลข้อความ, ตัวเลข และสร้างภาพกราฟิกสี ท่ีจอแสดงผลแบบกราฟิ ก LCD สีของแผงวงจร GLCD-XT ไลบรารีน้ีมีการกาหนดขาใช้งานท่ี เฉพาะเจาะจง sleep บรรจไุ ลบรารแี ละคาสงั่ สาหรบั การหน่วงเวลา in out บรรจไุ ลบรารแี ละคาสงั่ สาหรบั อ่านค่าอนิ พุตดจิ ติ อลและส่งค่าออกทางขาพอร์ต เอาตพ์ ตุ ดจิ ติ อล analog บรรจไุ ลบรารแี ละคาสงั่ สาหรบั อ่านค่าจากอนิ พตุ แอนะลอ็ กทต่ี ่อกบั ตวั ตรวจจบั sound บรรจุไลบรารแี ละคาสงั่ สาหรบั สรา้ งเสียงเพ่ือขบั ออกลาโพง ฟังก์ชนั่ น้ีมกี าร กาหนดขาใชง้ านทเ่ี ฉพาะเจาะจง motor บรรจุไลบรารแี ละคาสงั่ สาหรบั ขบั มอเตอร์ไฟตรง 2 ช่อง ต้องทางานร่วมกับ วงจรขบั มอเตอรท์ ่ใี ช้ไอซี TB6612 และต้องใช้ไฟเล้ยี งแยกสาหรบั มอเตอรไ์ ฟตรง ไลบรารนี ้ีมี การกาหนดขาใชง้ านทเ่ี ฉพาะเจาะจง servoMotor บรรจไุ ลบรารแี ละคาสงั่ สาหรบั ขบั เซอรโ์ วมอเตอรต์ ้องทางานรว่ มกบั เซอร์ โวมอเตอรแ์ ละต้องใช้ไฟเล้ยี งแยกสาหรบั เซอรโ์ วมอเตอร์ ไลบรารน้ีมกี ารกาหนดขาใช้งานท่ี เฉพาะเจาะจง serial บรรจไุ ลบรารแี ละคาสงั่ สาหรบั สอ่ื สารขอ้ มลู อนุกรมผ่านทางพอรต์ USB และผา่ น ทางขาพอรต์ TxD และ RxD ของบอรด์ Arduino IRremote บรรจุไลบรารแี ละคาสงั่ สาหรบั อ่านรหสั ของปุ่มรโี มตคอนโทรลอนิ ฟราเรด ท่ี ใชใ้ นเครอ่ื งใชไ้ ฟฟ้า เมอ่ื ตอ้ งการใชง้ านไลบรารนี ้ี ต้องผนวกไฟลไ์ วใ้ นตอนต้นของโปรแกรมหลงั คาสงั่ #include <Arduino.h> ดว้ ยคาสงั่ #include <IRremote.h> ในการเรยี นรเู้ พ่อื ใชง้ านบอรด์ Arduino จะใชไ้ ฟลไ์ ลบรารที งั้ แบบมาตรฐาน และไฟล์ Arduino.h รว่ มกนั เพอ่ื ช่วยใหก้ ารพฒั นา โปรแกรมสาหรบั การใช้งานมปี ระสทิ ธภิ าพสูงสุด และสามารถทาความเขา้ ใจได้ง่าย ทงั้ น้ีเพ่อื ประโยชน์ในการต่อยอดการเรยี นรขู้ องผใู้ ชง้ านในวงกวา้ ง หน่วยที่ 5 : การอ่านค่าแอนนาลอ๊ ก
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 104 5.2 ไลบรารีเกี่ยวกบั เวลา 5.2.1 sleep และ delay เป็นไลบรารหี น่วงเวลาโดยประมาณภายในโปรแกรมในหน่วย มลิ ลวิ นิ าที รปู แบบ void delay(unsigned int ms) void sleep(unsigned int ms) พารามิเตอร์ ms - กาหนดค่าเวลาทต่ี อ้ งการหน่วงในหน่วยมลิ ลวิ นิ าทมี คี ่า 0 ถงึ 65,535 ตวั อย่างการใช้งาน delay(1000); // หน่วงเวลาประมาณ 1 วนิ าที sleep(50); // หน่วงเวลาประมาณ 60 มลิ ลวิ นิ าที 5.2.2 delay us เป็นไลบรารหี น่วงเวลาโดยประมาณภายในโปรแกรมในหน่วย ไมโครวนิ าที รปู แบบ void delay_us(unsigned int us) พารามิเตอร์ us - กาหนดค่าเวลาทต่ี อ้ งการหน่วงในหน่วยไมโครวนิ าทมี คี า่ 0 ถงึ 65,535 ตวั อย่างการใช้งาน delay_us(500); // หน่วงเวลาประมาณ 500 ไมโครวนิ าที 5.3 การอา่ นคา่ แอนนาล๊อก เป็ นไลบรารีอ่ านค่ าข้อมู ลแอนนาล๊ อก และแปลงเป็ นสัญ ญ าณ ดิจิตอลขอ ง ไมโครคอนโทรลเลอร์ ทพ่ี อรต์ A0 ถงึ A6 (สาหรบั Arduino Uno R3) ซง่ึ ใชใ้ นการเชอ่ื มต่อกบั ตวั ตรวจจบั ทใ่ี หผ้ ลการทางานในรปู แรงดนั ไฟฟ้าในยา่ น 0 ถงึ +5V รปู แบบ unsigned int analog(unsigned char channel) หน่วยที่ 5 : การอ่านคา่ แอนนาลอ๊ ก
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 105 พารามิเตอร์ channel - กาหนดช่องอนิ พุตแอนนาล๊อกท่ตี ้องการมคี ่า 0 ถงึ 6 ซง่ึ ตรงกบั ขาพอรต์ A0 ถงึ A6 การคืนค่า เป็นขอ้ มูลทไ่ี ดจ้ ากการแปลงสญั ญาณของโมดูลแปลงสญั ญาณแอนนาล๊อกเป็นดจิ ติ อล ภายในไมโครคอนโทรลเลอร์ จากช่องอนิ พุตทก่ี าหนด โดยขอ้ มลู มคี วามละเอยี ด 10 บติ ดงั นัน้ คา่ จะอยรู่ ะหวา่ ง 0 ถงึ 1,023 ตวั อยา่ งโปรแกรมเรยี กอ่านคา่ แอนนาล๊อกทข่ี า A0 จากนนั้ สง่ ค่าออกทาง Serial Plotter (Ctrl+Shift+L) เปิ ดโปรแกรมตัวอย่างโดยเลือกจากเมนู File > Examples > 03.Analog > AnalogInOutSerial รปู ท่ี 5.1 หน้าต่างโปรแกรมตวั อยา่ งการอ่านค่าแอนนาลอ๊ ก หน่วยที่ 5 : การอ่านคา่ แอนนาลอ๊ ก
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 106 แบบทดสอบหลังเรยี น หนว่ ยที่ 5 การอา่ นคา่ แอนนาล๊อก คาสงั่ จงเลือกคาตอบที่ถกู ที่สดุ เพียงข้อเดียว 1. หน่วยความจาขอ้ มลู ออี พี รอม ภายในตวั ไมโครคอนโทรลเลอรเ์ มอ่ื ตอ้ งการใชง้ านตอ้ งผนวก ไฟลไ์ ลบรารี ดว้ ยคาสงั่ ? ก. #include<EEPROM.d> ข. #include<EEPROM.hpp> ค. #include<EEPROM.h> ง. #include<EEPROM.c> จ. #include<EEPROM.o> 2. ตอ้ งใชค้ าสงั่ ใดในการผนวกไฟลไ์ ลบรารขี อง servo? ก. #include<servo.d> ข. #include<servo.hpp> ค. #include<servo.h> ง. #include<servo.c> จ. #include<EEPROM.o> 3. Arduino บรรจฟุ ังกช์ นั่ Wire สาหรบั ตดิ ต่อกบั อุปกรณ์ผา่ นบสั ? ก. URAT ข. I2C ค. SPI ง. USB จ. GSM 4. Arduino UNO บรรจฟุ ังกช์ นั่ และคาสงั่ สาหรบั ตดิ ต่อกบั SPI โดยตอ้ งใชข้ าพอรต์ ? ก. 10 (MISO), 11 (MOSI) และ 12 (SS) ข. 11 (MISO), 10 (MOSI) และ 12 (SS) ค. 12 (MISO), 11 (MOSI) และ 10 (SS) ง. 9 (MISO), 8 (MOSI) และ 7 (SS) จ. 11 (MISO), 12 (MOSI) และ 13 (SS) หน่วยท่ี 5 : การอ่านคา่ แอนนาลอ๊ ก
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 107 5. ไลบรารี Wire ตดิ ต่อกบั อปกุ รณ์ผา่ นบสั I2C ขาพอรต์ ? ก. A4 (SDA) และ A5 (SCL) ข. A1 (SDA) และ A2 (SCL) ค. A2 (SDA) และ A3 (SCL) ง. A3 (SDA) และ A4 (SCL) จ. A4 (SDA) และ A3 (SCL) 6. คาสงั่ ใดเป็นไลบรารเี กย่ี วกบั เวลา? ก. delay ข. delays ค. us_delay ง. sleep_us จ. void delay_us 7. จานวนขาแอนนาล๊อกบอรด์ Arduino Uno R3? ก. 4 ข. 5 ค. 6 ง. 8 จ. 10 8. ยา่ นคา่ แรงดนั ทพ่ี อรต์ แอนนาล๊อก? ก. 0 ถงึ +1v ข. 0 ถงึ +3.3v ค. 0 ถงึ +5v ง. 0 ถงึ +12v จ. 0 ถงึ +14v 9. คา่ ความละเอยี ดในการแปลงสญั ญาณแอนนาล๊อกเป็นดจิ ติ อลภายไมโครคอนโทรลเลอร์? ก. 5 บติ ข. 8 บติ ค. 10 บติ ง. 16 บติ จ. 18 บติ หน่วยที่ 5 : การอ่านคา่ แอนนาลอ๊ ก
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 108 10. คา่ ขอ้ มลู แอนนาล๊อกทถ่ี ูกแปลงเป็นดจิ ติ อลจะอยรู่ ะหวา่ ง? ก. 0 ถงึ 128 ข. 0 ถงึ 256 ค. 0 ถงึ 512 ง. 0 ถงึ 1,023 จ. 0 ถงึ 2,046 หน่วยท่ี 5 : การอ่านคา่ แอนนาลอ๊ ก
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 109 แบบฝกึ หัด หน่วยท่ี 5 การอา่ นคา่ แอนนาล๊อก ตอนท่ี 1 ให้ผเู้ รยี นเลือกคาตอบที่ถกู ท่ีสดุ แล้วกาเครือ่ งหมายกากบาท () ให้ครบทกุ ข้อ 1. คาสงั่ สาหรบั ตดิ ต่อกบั หน่วยความจาขอ้ มลู ออี พี รอม ก. #include <EEROM.d> ข. #include <EROM.h> ค. #include <EEPROM.h> ง. #include <EEPROM.hpp> 2. คาสงั่ สาหรบั ตดิ ต่อกบั โมดลู LCD ก. #include <LiquidCristal.h> ข. #include <LiquidCrystal.h> ค. #include <LiquidCrystal.c> ง. #include <LiquidCrystal.d> 3. คาสงั่ สาหรบั เรยี กใชง้ านการขบั เซอรโ์ วมอเตอร์ ก. #include <servo.h> ข. #include <servo.f> ค. #include <servo.d> ง. #include <servo.c> 4. การส่อื สารขอ้ มลู อนุกรมไลบรารถี ูกนามาใชง้ านเมอ่ื ขาเชอ่ื มต่อ ก. RxP และ TxP ข. RxC และ TxC ค. RvD และ TvD ง. RxD และ TxD 5. คาสงั่ สาหรบั อ่านรหสั ของป่มุ รโี มตคอนโทรลอนิ ฟราเรด ก. #include <IRremote.e ข. #include <IRremote.k> ค. #include <IRremote.c> ง. #include <IRremote.h> หน่วยท่ี 5 : การอ่านคา่ แอนนาลอ๊ ก
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 110 6. อธบิ ายคาสงั่ delay_us(500); ก. หน่วงเวลาประมาณ 500 ไมโครวนิ าที ข. หน่วงเวลาประมาณ 500 นาโนวนิ าที ค. หน่วงเวลาประมาณ 500 วนิ าที ง. หน่วงเวลาประมาณ 500 มลิ ลวิ นิ าที 7. คาสงั่ สาหรบั เรยี กอ่านค่าแอนนาลอ๊ กสาหรบั Arduino Uno R3 ก. anelogRead(A0); ข. anelogRead(A0); ค. analogRead(A9); ง. analogRead(A6); 8. การตดิ ต่ออุปกรณ์ทท่ี างานผ่านบสั แบบ SPI ยอ่ มาจาก ก. Serial Peripheral Interface ข. Serial Permission Interlock ค. Serial Monitor Interface ง. Serial Monitor Interlock หน่วยที่ 5 : การอ่านค่าแอนนาลอ๊ ก
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 111 ตอนที่ 2 ใหผ้ เู้ รยี นทาการทดลองจากโปรแกรมตวั อยา่ ง EEPROM, Analog และเขยี น โปรแกรม รบั คา่ จาก LDR ดว้ ยบอรด์ Arduino Uno R3 โดยใชเ้ วลา 180 นาที จดุ ประสงคเ์ ชิงพฤติกรรม 1. สามารถทดสอบบอรด์ โปรแกรมตวั อยา่ ง EEPROM และ Analog ได้ 2. สามารถอธบิ าย เขยี นโปรแกรม และแกป้ ัญหาในการรบั คา่ จาก LDR ดว้ ยบอรด์ Arduino Uno R3 ได้ อปุ กรณ์การทดลอง 1 โปรแกรม 1 เสน้ 1. โปรแกรม Arduino IDE 1 บอรด์ 2. สายโหลด USB Arduino Uno R3 1 ชดุ 3. บอรด์ Arduino Uno R3 1 เครอ่ื ง 4. สายต่อวงจร 1 ตวั 5. เครอ่ื งคอมพวิ เตอร์ 6. แผงต่อวงจร การทดลองท่ี 3.1 การเขียนและลบ EEPROM รปู ท่ี 5.2 ตวั อยา่ งการเช่อื มต่อบอรด์ Arduino กบั คอมพวิ เตอร์ ขนั้ ตอนการทดลอง 1. เปิดโปรแกรม Arduino IDE 2. ต่อบอรด์ Arduino เขา้ กบั คอมพวิ เตอร์ 3. เปิดโปรแกรมตวั อยา่ ง File > Examples > EEPROM ประเมินผลการทดลอง 1. สามารถตดิ ตงั้ โปรแกรม Arduino IDE ไดถ้ กู ตอ้ ง 10 คะแนน 10 คะแนน 2. สามารถทดสอบและอธบิ ายการทางานไดถ้ กู ตอ้ ง ………… คะแนน รวมคะแนนภาคปฏิบตั ิ หน่วยท่ี 5 : การอ่านคา่ แอนนาลอ๊ ก
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 112 การทดลองท่ี 5.2 การอ่านค่าแอนนาลอ๊ ก รปู ที่ 5.3 ตวั อยา่ งการเชอ่ื มต่อบอรด์ Arduino กบั คอมพวิ เตอร์ ขนั้ ตอนการทดลอง 1. เปิดโปรแกรม Arduino IDE 2. ต่อบอรด์ Arduino เขา้ กบั คอมพวิ เตอร์ 3. เปิดโปรแกรมตวั อยา่ ง File > Examples > 03.Analog ประเมินผลการทดลอง 10 คะแนน 10 คะแนน 1. สามารถเขยี นโปรแกรมไดถ้ ูกตอ้ งตามเงอ่ื นไข 2. สามารถทดสอบและอธบิ ายการทางานได้ …………………… คะแนน ถูกตอ้ ง รวมคะแนนภาคปฏิบตั ิ หน่วยท่ี 5 : การอ่านคา่ แอนนาลอ๊ ก
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 113 การทดลองท่ี 5.3 การอ่านค่าแอนนาลอ๊ ก จากตวั รบั แสง LDR รปู ท่ี 5.4 รปู แบบการต่อวงจรการทดลองท่ี 5.3 ขนั้ ตอนการทดลอง 1. ต่อวงจรตามรปู ท่ี 5.4 2. เขยี นโปรแกรมรบั ค่าจาก LDR 2.1 ใชค้ าสงั่ if… else if… else 2.2 เงอ่ื นไขแสดงขอ้ ความแบง่ เป็น 4 ระดบั ออกทาง Serial Monitor ประเมินผลการทดลอง 1. สามารถเขยี นโปรแกรมไดถ้ กู ตอ้ งตามเงอ่ื นไข 10 คะแนน 2. สามารถทดสอบและอธบิ ายการทางานได้ 10 คะแนน ถกู ตอ้ ง …………………..… คะแนน รวมคะแนนภาคปฏิบตั ิ หน่วยท่ี 5 : การอ่านค่าแอนนาลอ๊ ก
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 114 เฉลยแบบทดสอบก่อนเรียน 5. ก 10. ง หน่วยท่ี 5 การอ่านค่าแอนนาลอ๊ ก 1. ค 2. ค 3. ค 4. ค 6. ก 7. ค 8. ค 9. ค เฉลยแบบทดสอบหลงั เรียน 5. ข 10. ค หน่วยที่ 5 การอ่านค่าแอนนาลอ๊ ก 1. ก 2. ง 3. ข 4. ข 6. ง 7. ก 8. ง 9. ข เฉลยแบบฝึ กหดั 5. ง หน่วยที่ 5 การอ่านค่าแอนนาลอ๊ ก ตอนท่ี 1 จงเลือกคาตอบที่ถกู ท่ีสดุ เพียงข้อเดียว 1. ค 2. ข 3. ก 4. ง 6. ก 7. ง 8. ก หน่วยท่ี 5 : การอ่านค่าแอนนาลอ๊ ก
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 105 หน่วยที่ 6 การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณเ์ อาต์พุต สาระสาคญั หลอดแสดงผล LED (Light Emitting Diode) หรือไดโอดเปล่งแสดง เป็ นอุปกรณ์ อิเล็กนิกส์ท่ีใช้ในการแสดงผล นิยมใช้กนั อย่างแพร่หลายเน่ืองจากใช้งานง่าย และราคาถูก โดยส่วนใหญ่จะใช้แสดงสถานะการทางานของอุปกรณ์และสถานะของไมโครคอนโทรลเลอร์ ในหน่วยการเรยี นน้ีจะกล่าวถงึ การเขยี นโปรแกรมควบคุมการทางานของหลอดแสดงผล LED การประยุกต์การใช้งานไมโครคอนโทรลเลอร์ควบคุมการทางานหลอดแสดงผล LED ซ่งึ เป็น การเขยี นโปรแกรมควบคุมขนั้ พน้ื ฐาน หลอดแสดงผล 7-Segment หรอื LED 7 ส่วน เป็นอุปกรณ์อิเล็กทรอนิกส์ท่ใี ช้ในการ แสดงผลเช่นเดียวกับหลอดแสดงผล LED ทัว่ ไป แต่แตกต่างตรงท่ีแสดงผล 7-Segment เป็นการนาเอาหลอดแสดงผล LED จานวน 7 หลอดมาต่อกนั เป็นรปู ตวั เลข เพ่อื นามาแสดงผล เป็นตวั เลข 0 ถึง 9 ซ่งึ ในหน่วยการเรยี นน้ีจะกล่าวถึงการเขยี นโปรแกรมควบคุมการทางาน ของแสดงผล 7-Segment และการประยุกต์ใช้งานไมโครคอนโทรลเลอร์ควบคุมการทางาน ของแสดงผล 7-Segment หลอดแสดงผล LED 7-Segment แบบ 4 หลกั หรอื เรยี กว่า Digital Tube คอื การนาหลอดแสดงผล LED 7-Segment จานวน 4 หลกั ใช้เทคนิคท่เี รยี กว่า Timing- Multiplexing เพ่อื ช่วยประหยดั การใชข้ าสญั ญาณได้ หรอื ต่อใชง้ านผ่านไอซอี ่นื เพ่อื เป็นตวั ช่วย โดยหัวข้อน้ีเป็ นโมดูลใช้ชิป TM1637 เป็ นตัวควบคุมการทางาน ไอซีเบอร์ TM1637 ใช้ ข า สั ญ ญ า ณ เพี ย ง 2 เส้ น คื อ ข า CLK แ ล ะ ข า DIO ใ น ก า ร ส่ื อ ส า ร ข้ อ มู ล กบั ไมโครคอนโทรลเลอร์ ทาให้ประหยดั ขาสญั ญาณในการเช่อื มต่อ และสามารถเลอื กระดบั ความสว่างของ LED ได้ 8 ระดบั สาระการเรียนรู้ 6.1 การเรยี นรเู้ กย่ี วกบั หลอดแสดงผล LED 6.2 การเรยี นรเู้ กย่ี วกบั วงจรขบั หลอดแสดงผล LED 6.3 การเรยี นรเู้ กย่ี วกบั หลอดแสดงผล 7-Segment 6.4 การเรยี นรเู้ กย่ี วกบั วงจรขบั หลอดแสดงผล LED 7-Segment 6.5 การประยกุ ตใ์ ชง้ านไมโครคอนโทรลเลอรก์ บั หลอดแสดงผล LED และหลอดแสดงผล LED 7-Segment หน่วยที่ 6 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 106 จุดประสงค์เชิงพฤติกรรม 1. นกั เรยี นอธบิ ายการความรเู้ บอ้ื งตน้ เก่ยี วกบั หลอดแสดงผล LED และหลอดแสดงผล LED 7-Segment ไดถ้ ูกตอ้ ง 2. นักเรียนต่อวงจรขับหลอดแสดงผล LED และวงจรขบั หลอดแสดงผล LED 7- Segment ไดถ้ ูกตอ้ ง 3. นกั เรยี นเช่อื มต่อคอนโทรลเลอรก์ บั หลอดแสดงผล LED และหลอดแสดงผล LED 7- Segment ไดถ้ ูกตอ้ ง 4. นักเรยี นใชง้ านคอนโทรลเลอรก์ บั หลอดแสดงผล LED และหลอดแสดงผล LED 7- Segment ไดถ้ กู ตอ้ ง หน่วยท่ี 6 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 107 แบบทดสอบกอ่ นเรียน หนว่ ยที่ 6 การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อุปกรณ์เอาตพ์ ุต คาสงั่ จงเลือกคาตอบท่ีถกู ที่สดุ เพียงข้อเดียว 1. LED ยอ่ มาจาก? ก. Light Emotion Diode ข. Light Emitting Direct ค. Light Emitting Diode ง. Life Emitting Diode จ. Light Emotion Direct 2. หลอดแสดงผล 7-Segment สามารถแสดงตวั เลข? ก. 0 - 6 ข. 0 - 9 ค. 0 - 11 ง. 1 – 10 จ. 0 - 10 3. หลอดแสดงผล LED 7-Segment แบบ 4 หลกั หรอื เรยี กวา่ ? ก. Digital Tube ข. Digital Hub ค. Digital LED ง. Digital 7-Segment จ. Digital tube display 4. หลอดแสดงผล LED 7-Segment แบบ 4 หลกั ใชเ้ ทคนิค ... เพ่อื ช่วยประหยดั การใช้ ขาสญั ญาณ? ก. Time-Multiplexing ข. Timing-Multiplexing ค. Timing-Multi 7-Segment ง. Timing-Mult-Tube จ. Time- Mult-Tube หน่วยท่ี 6 : การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 108 5. การจดั ขาของหลอดแสดงผล LED 7-Segment แบบ 4 หลกั ใชไ้ อซเี บอร?์ ก. TM7905 ข. LS1637 ค. TM7805 ง. TM1637 จ. LS7805 6. ไอซเี บอร์ TM1637 ใชข้ าสญั ญาณเพยี ง? ก. 2 เสน้ คอื CLK, DIO ข. 2 เสน้ คอื CLK, SCL ค. 3 เสน้ คอื VCC, GND, CLK ง. 3 เสน้ คอื VCC, GND, DIO จ. 3 เสน้ คอื VCC, CLK, DIO 7. หลอดแสดงผล LED 7-Segmant แบบ 4 หลกั สามารถปรบั ความสวา่ งของ LED ได?้ ก. 6 ระดบั ข. 7 ระดบั ค. 8 ระดบั ง. 9 ระดบั จ. 11 ระดบั 8. แต่ละส่วนของหลอดแสดงผล 7-Segment คอื ? ก. a, b, c, d, e, f, และ g ข. a, b, c, d, e, f, g และ dp ค. a, b, c, d, e, f, g และ common a ง. a, b, c, d, e, f, g และ common k จ. a, b, c, d, e, f, g และ common L 9. หลอดแสดงผล 7-Segment สามารถบางตามลกั ษณะการต่อ ได้ 2 ชนิด คอื ? ก. Common Anode และ Common Emitting ข. Common Anode และ Common Segment ค. Common Anode และ Common Diode ง. Common Anode และ Common Cathode จ. Common Anode และ Common Emittion หน่วยท่ี 6 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 109 10. Common Anode คอื การใชข้ าใดรว่ มกนั เพอ่ื ต่อกบั ? ก. GND ข. VCC ค. A ง. K จ. G หน่วยที่ 6 : การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 110 การเลอื กเบอร์ไอซไี มโครคอนโทรลเลอรน์ ัน้ ขน้ึ อยู่กบั ปรมิ าณงานและความยากง่าย ของงานนัน้ ๆ ถ้าหากเป็นงานท่ใี ชไ้ มโครคอนโทรลเลอรใ์ นการการควบคุมทวั่ ๆ ไปสามารถ เลอื กใช้ได้ ทุกเบอรท์ ุกตระกูล แต่ถ้าหากงานควบคุมนัน้ มีความละเอียดสูง มฟี ังก์ชนั มาก ต้องใช้ไมโครคอนโทรลเลอร์เบอร์เฉพาะ สาหรบั ไมโครคอนโทรลเลอร์เบอร์ PIC18F4550 เพราะสามารถศกึ ษาหลกั การทางานของไมโครคอนโทรลเลอรไ์ ดม้ ากพอสมควร การควบคุมหลอดไฟ (LED) และหลอดแสดงผล 7-Segment . หลอดแสดงผล LED (Light Emitting Diode) หรือไดโอดเปล่งแสดง เป็ นอุปกรณ์ อเิ ลก็ นิกสท์ ใ่ี ชใ้ นการแสดงผล นิยมใชก้ นั อยา่ งแพรห่ ลายเน่ืองจากใชง้ านง่าย และราคาถูก โดย ส่วนใหญ่จะใช้แสดงสถานะการทางานของอุปกรณ์และสถานะของไมโครคอนโทรลเลอร์ ในหน่วยการเรยี นน้ีจะกล่าวถงึ การเขยี นโปรแกรมควบคุมการทางานของหลอดแสดงผล LED การประยุกต์การใช้งานไมโครคอนโทรลเลอรค์ วบคุมการทางานหลอดแสดงผล LED ซ่งึ เป็น การเขยี นโปรแกรมควบคุมขนั้ พน้ื ฐาน หลอดแสดงผล 7-Segment หรอื LED 7 ส่วน เป็นอุปกรณ์อเิ ล็กทรอนิกส์ท่ใี ช้ในการ แสดงผลเช่นเดยี วกบั หลอดแสดงผล LED ทวั่ ไป แต่แตกต่างตรงทห่ี ลอดแสดงผล 7-Segment เป็นการนาเอาหลอดแสดงผล LED จานวน 7 หลอดมาต่อกนั เป็นรปู ตวั เลข เพ่อื นามาแสดงผล เป็นตวั เลข 0 ถึง 9 ซ่งึ ในหน่วยการเรยี นน้ีจะกล่าวถึงการเขยี นโปรแกรมควบคุมการทางาน ของหลอดแสดงผล 7-Segment และการประยุกต์ใช้งานไมโครคอนโทรลเลอร์ควบคุม การทางานของหลอดแสดงผล 7-Segment รปู ท่ี 6.1 ตวั อยา่ ง LED และ 7 Segment แบบ 4 Digit หน่วยท่ี 6 : การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 111 6.1 การทางานของหลอดไฟ LED หลอดแสดงผล LED แตกต่างจากหลอดไสค้ อื หลอดไส้จะใช้การเผาไหม้ของขดลวด ทาให้เกิดความรอ้ นท่ีหลอดและทาให้เกิดแสงสว่างข้นึ แต่หลอดแสดงผล LED เป็นการทา ปฏกิ ิรยิ าของสารก่งึ ตวั นาชนิดเดยี วกบั กบั ทรานซสิ เตอร์ จงึ ไม่เกิดความรอ้ นและปลอดภยั ใน การใชง้ านดงั รปู ท่ี 6.2 รปู ที่ 6.2 การต่อใชง้ านหลอดแสดงผล LED จากรูปท่ี 6.2 การต่อใช้งานหลอดแสดงผล LED จะมกี ารต่อตวั ต้านทาน 220 โอห์ม เพ่อื ทาหน้าทจ่ี ากดั กระแสใหเ้ หมาะสมกบั หลอดแสดงผล Led ไมใ่ ห้หลอดแสดงผล LED สว่าง มากเกนิ ไปหรอื น้อยเกนิ ไป ซง่ึ หลอดแสดงผล LED จะใชก้ ระแสประมาณ 10 ถงึ 30 มลิ ลแิ อมป์ รูปท่ี 6.2 (ก) เม่อื มกี ารต่อไฟ 5 โวลต์หรอื สญั ญาณลอจกิ “1” ผ่านตัวต้านทานไปยงั หลอด แสดงผล LED จะทาใหห้ ลอดแสดงผล LED สว่าง และเมอ่ื มกี ารต่อไฟ 0 โวลต์หรอื ส่งสญั ญาณ ลอจกิ “0” ดงั รปู ท่ี 6.2(ข) ผ่านตวั ต้านทานไปยงั หลอดแสดงผล LED หลอดแสดงผล LED จะดบั เน่อื งจากไมม่ กี ระแสไฟฟ้าไหลผ่าน 6.2 การเชอ่ื มต่อไมโครคอนโทรเลอรก์ ับหลอดไฟ LED 6.2.1 ฟังกช์ นั่ พื้นฐานสาหรบั การใช้งานบอรด์ ไมโครคอนโทรลเลอรก์ บั หลอดไฟ LED - pinMode (pin,mode) ใชก้ าหนดขาพอรต์ ใด ๆ ใหเ้ ป็นพอรต์ ดจิ ติ อล เมอ่ื pin คอื หมายเลขขาทต่ี อ้ งการเรยี กใชง้ าน mode คอื โหมดการทางานเป็น INPUT หรอื OUTPUT - digitalWrite (pin, value) สงั่ งานใหข้ าพอรท์ ร่ี ะบุไวม้ คี ่าสถานะเป็นลอจกิ สงู (HIGH หรอื 1) หรอื ลอจกิ ต่า (LOW หรอื 0) เมอ่ื pin คอื หมายเลขขาทต่ี อ้ งการเรยี กใชง้ าน value คอื สถานะลอจกิ ทต่ี อ้ งการ HIGH หรอื LOW หน่วยท่ี 6 : การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 112 6.2.2 โปรแกรมสงั่ ให้หลอดไฟ LED กะพริบ ในการทดลองเก่ยี วกบั ไมโครคอนโทรลเลอร์ เร่อื งแรกกค็ อื การสงั่ ใหพ้ อรต์ ทางาน เป็นเอาต์พุต และสงั่ ให้มี ค่าเป็น HIGH หรอื LOW ได้ตามท่ตี ้องการ โดยจะต่อกับหลอดไฟ LED และสงั่ ใหห้ ลอดไฟ LED ติดดบั ต่อเน่ืองกนั ตลอดเวลาเรยี กว่า ไฟกะพรบิ (blink) ในการ ทดลองขบั LED อยา่ งง่าย ไดย้ กโปรแกรมตวั อยา่ งช่อื Blink ซง่ึ มตี วั อยา่ งในโปรแกรม Arduino IDE อยแู่ ลว้ ในตวั อย่างน้ีจะนาโปรแกรม Blink.ino มาประยุกต์สงั่ เอาต์พุตควบคุมหลอดไฟ LED สองดวงให้ตดิ ดบั สลบั กนั โดยเรม่ิ ต้นด้วยการต่อวงจรส่วนของหลอดไฟ LED จะต่อวงจร ให้ LED ทางานทล่ี อจกิ 1 คอื เมอ่ื สงั่ ใหข้ าเป็น HIGH จะทาให้ LED ตดิ เม่อื สงั่ ใหข้ าเป็น LOW หลอดจะดบั ในการต่อหลอดไฟ LED สาหรบั บอรด์ สามารถใช้แผงวงจรต่อตรงกบั จุดต่อของ พอรต์ ได้ทันที เม่อื ต่ออุปกรณ์แล้วให้เขยี นโปรแกรมตามโปรแกรมท่ี 6.1 ทดลองคอมไพล์ และอปั โหลดลงบอรด์ คอนโทรลเลอร์ Arduino Uno R3 ศกึ ษาผลการทางานวงจรทดลองดจิ ติ อิ ล เอาตพ์ ตุ สงั่ ใหห้ ลอดไฟ LED 2 ดวงกะพรบิ สลบั กนั ตวั อย่างโปรแกรมท่ี 6.1 รปู ที่ 6.3 โปรแกรมตวั อยา่ ง Blink 2 ดวงกะพรบิ สลบั กนั หน่วยที่ 6 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 113 วงจรท่ี 6.1 รปู ท่ี 6.4 การต่องวงจรสาหรบั โปรแกรม Blink 2 ดวงกะพรบิ สลบั กนั 6.2.3 โปรแกรมไฟว่ิง LED 3 ดวง การทางานของโปรแกรมน้ีเรม่ิ ด้วยการสงั่ ให้ LED1 สว่าง 0.2 วินาที ดบั 0.2 วนิ าทแี ล้วสงั่ ให้ LED2 สว่าง 0.2 วนิ าที ดบั 0.2 วนิ าที ตามดว้ ย LED3 สว่างและดบั เป็นลาดบั วนต่อเน่ืองตลอดเวลา จากโปรแกรมสงั่ ให้ LED สว่างและดบั ตามลาดบั ดงั โปรแกรมท่ี 6.2 เขยี นโดยใชต้ วั แปรอะเรยเ์ พอ่ื ควบคุมหลอดไฟวง่ิ แบบใชต้ วั แปรอะเรย์ ตวั อย่างโปรแกรมท่ี 6.2 รปู ท่ี 6.5 โปรแกรมไฟวง่ิ LED 3 ดวง หน่วยที่ 6 : การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 114 6.3 การทางานของหลอดไฟ 7-Segment หลอดแสดงผล LED 7-Segment เป็นการนาเอาหลอด LED จานวน 7 ตัว มาต่อกัน เป็นรปู ตวั เลขโดยมชี ่อื เรยี กแต่ละส่วนคอื a, b, c, d, e, f ,g และ dp แสดงดงั รปู ท่ี 6.6 หลอดแสดงผล 7-Segment สามารถบางตามลกั ษณะการต่อ ได้ 2 ชนดิ คอื 1. ชนดิ ต่อแบบแอโนดรว่ ม หรอื คอมมอนแอโนด (Common Anode) 2. ชนิดต่อแบบแคโทดรว่ ม หรอื คอมมอนแคโทด (Common Cathode) ซง่ึ โครงสรา้ งการต่อหลอดแสดงผล LED 7-Segment ทงั้ 2 ชนิด แสดงดงั รปู ท่ี 6.7 รปู ที่ 6.6 โครงสรา้ งและขาของหลอดแสดงผล LED 7-Segment ที่มา : www.circuitstoday.com รปู ท่ี 6.7 โครงสรา้ งการต่อหลอดแสดงผล LED 7-Segment ที่มา : sites.google.com/site/stemsos2016arduino01 หน่วยท่ี 6 : การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 115 รูปท่ี 6.7 (ก) เป็นการต่อหลอดแสดงผล LED 7-Segment แบบแอโนดร่วม โดยการ ป้อนไฟบวกเขา้ ทข่ี ารว่ มหรอื ขาคอมมอน (Common) และถา้ ตอ้ งการใหห้ ลอดแสดงผล LED 7- Segment แสดงผลหรอื สว่าง ตอ้ งป้อนไฟลบหรอื ส่งลอจกิ “0” มาทข่ี าแคโทด ส่วนรปู ท่ี 6.7 (ข) เป็นการต่อหลอดแสดงผล LED 7-Segmentแบบแคโทด โดยต้องป้อนไฟลบหรอื กราวด์ท่ขี าร่วม หรอื ขาคอมมอน และถ้าตอ้ งการใหห้ ลอดแสดงผล LED 7-Segment แสดงผลหรอื สว่างตอ้ งป้อน ไฟบวกหรอื สง่ ลอจกิ “1” มาทข่ี าแอโนด 6.4 การเชอื่ มต่อไมโครคอนโทรเลอรก์ บั หลอดไฟ 7-Segment สาหรบั การเช่อื มต่อไมโครคอนโทรลเลอรร์ ่วมกบั หลอดแสดงผล LED 7-Segment ควร ต่อรว่ มกบั ตวั ตา้ นทานดว้ ยเพ่อื ไมใ่ หก้ ระแสไหลเกนิ อาจเกดิ ความเสยี หายได้ หรอื อาจต่อรว่ มกบั ไอซบี ฟั เฟอร์ (เบอร์ 74LS245) ร่วมด้วย เพ่อื ขยายกระแสใหห้ ลอดแสดงผล LED 7-Segment สวา่ งเท่ากนั ทุกหลอด และป้องกนั การลดั วงจรของหลอดแสดงผล LED 7-Segment ได้ รปู ที่ 6.8 การต่อใชห้ ลอดแสดงผล LED 7-Segment กบั ไมโครคอนโทรลเลอร์ Arduino Uno R3 หน่วยท่ี 6 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 116 รปู ที่ 6.9 การต่อใชห้ ลอดแสดงผล LED 7-Segment ร่วมกบั ไอซบี ฟั เฟอรเ์ บอร์ 74LS245 6.5 การเขยี นโปรแกรมสง่ ขอ้ มูลออกหลอดแสดงผล LED 7-Segment ไมโครคอนโทรเลอรก์ บั หลอดไฟ 7-Segment การต่อไมโครคอนโทรลเลอร์ร่วมกบั หลอดแสดงผล LED 7-Segment เพ่ือแสดงผล ออกมาเป็นตวั เลขต่าง ๆ จะตอ้ งมกี ารสง่ ขอ้ มลู ออกพอรต์ ของไมโครคอนโทรลเลอรท์ ต่ี ่อรว่ มอยู่ กับหลอดแสดงผล LED 7-Segment และข้อมูลท่ีจะส่งออกพอร์ตนั้นก็ข้ึนอยู่กับชนิดของ หลอดแสดงผล LED 7-Segment ด้วย ซ่ึงข้อมูลท่ีจะส่งออกพอร์ตของหลอดแสดงผล LED 7-Segment แบบต่อแอโนดรว่ มและต่อแคโทดรว่ มแสดงดงั ตารางท่ี 6.1 และ 6.2 6.5.1 ฟังก์ชนั่ สาหรบั การใช้งานบอรด์ ไมโครคอนโทรลเลอรก์ บั หลอดแสดงผล LED 7-Segment DDRD = 0xFF; ใชก้ าหนดพอรต์ D (ขา 0-7) ใหเ้ ป็นพอรต์ OUTPUT PORTD = 0xF9; ใชก้ าหนดขอ้ มลู ทส่ี ง่ ออกพอรต์ แบบต่อแอโนดรว่ ม PORTD = 0x06; ใชก้ าหนดขอ้ มลู ทส่ี ่งออกพอรต์ แบบต่อแคโนดรว่ ม variable << number_of_bits; เล่อื นบติ ตวั อยา่ ง byte bits = bits | B00000001; bits = bits << 1; //เล่อื นไปทางซา้ ย 1 บติ ผลลพั ท์ bits = B00000010; หน่วยที่ 6 : การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 117 ตวั อย่างโปรแกรมท่ี 6.3 รปู ที่ 6.10 โปรแกรมแสดงแต่ละส่วนของหลอดแสดงผล LED 7-Segment ตวั อย่างโปรแกรมที่ 6.4 รปู ท่ี 6.11 โปรแกรมแสดงเลข 0 – 3 ของหลอดแสดงผล LED 7-Segment หน่วยที่ 6 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 118 ต า ร า ง ท่ี 6 .1 แ ส ด ง ข้อ มู ล ท่ี ส่ งอ อ ก พ อ ร์ต ข อ งห ล อ ด แ ส ด งผ ล LED 7-Segment แบบต่อแอโนดรว่ ม คา่ ข้อมลู ส่งออกพอรต์ แสดงผล (เลขฐานสิบหก) ตวั เลข คา่ ขอ้ มลู (เลขฐานสอง) g f E d c ba 0x40 0 1 0 0 0 0 00 0x79 1 1 1 1 1 0 01 0x24 2 0 1 0 0 0 10 0x30 3 0 1 1 0 0 00 0x19 4 0 0 1 1 0 01 0x12 5 0 0 1 0 0 10 0x02 6 1 1 1 1 0 00 0x78 7 0 0 0 0 0 00 0x00 8 0 0 1 0 0 00 0x10 9 ต า ร า ง ที่ 6 .2 แ ส ด ง ข้อ มู ล ท่ี ส่ งอ อ ก พ อ ร์ต ข อ งห ล อ ด แ ส ด งผ ล LED 7-Segment แบบต่อแคโนดรว่ ม ค่าข้อมลู ส่งออก แสดงผล ค่าข้อมลู (เลขฐานสอง) พอรต์ ตวั เลข (เลขฐานสิบหก) g f Edcb a 0x3F 0 1 0 0000 0 0x06 1 1 1 1100 1 0x5B 2 0 1 0001 0 0x4F 3 0 1 1000 0 0x66 4 0 0 1100 1 0x6D 5 0 0 1001 0 0x7D 6 1 1 1100 0 0x07 7 0 0 0000 0 0x7F 8 0 0 1000 0 0x6F 9 หน่วยท่ี 6 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 119 6.5.2 โมดลู หลอดแสดงผล LED 7-Segment แบบ 4 หลกั หลอดแสดงผล LED 7-Segment แบบ 4 หลกั หรอื เรยี กว่า Digital Tube คือ การนาหลอดแสดงผล LED 7-Segment จานวน 4 หลัก ใช้เทคนิคท่ีเรียกว่า Timing- Multiplexing เพ่อื ช่วยประหยดั การใช้ขาสญั ญาณได้ หรอื ต่อใชง้ านผ่านไอซอี ่นื เพ่อื เป็นตวั ช่วย โดยหัวข้อน้ีเป็ นโมดูลใช้ชิป TM1637 เป็ นตัวควบคุมการทางาน ไอซีเบอร์ TM1637 ใช้ ข า สั ญ ญ า ณ เพี ย ง 2 เส้ น คื อ ข า CLK แ ล ะ ข า DIO ใ น ก า ร ส่ื อ ส า ร ข้ อ มู ล กบั ไมโครคอนโทรลเลอร์ ทาให้ประหยดั ขาสญั ญาณในการเช่อื มต่อ และสามารถเลอื กระดบั ความสวา่ งของ LED ได้ 8 ระดบั ข้อมลู เชิงเทคนิคเกี่ยวกบั ไอซี TM1637 - ใชแ้ รงดนั ไฟเลย้ี ง (Voltage Supply): VDD = 4.5V ถงึ 5.5V - โปรแกรมไดผ้ ่านสญั ญาณ CLK (Clock) และ DIO (Data I/O) - ขา DIO ใชง้ านแบบสองทศิ ทาง หรอื bidirectional และตอ้ งต่อตวั ตา้ นทาน Pull-up ดว้ ย (เช่น 10kΩ) - ใชค้ วามถข่ี องสญั ญาณ CLK ไดถ้ งึ 450kHz การส่ือสารข้อมูลกับไอซี TM1637 จะใช้สัญญาณ 2 เส้นคือ CLK และ DIO โดยท่ี ไมโครคอน โทรลเลอร์ซ่ึงเป็นฝ่ ายส่ง จะต้องสร้างสัญญาณ CLK และส่งข้อมูลทีละบิตผ่าน ขาสญั ญาณ DIO ในสถานะปรกตหิ รอื Idle ท่ยี งั ไม่มกี ารส่อื สารขอ้ มลู ใด ๆ สญั ญาณ CLK และ DIO จะต้องเป็น HIGH จากนนั้ เม่อื เรม่ิ ตน้ ส่อื สารขอ้ มลู ฝ่ายส่งจะตอ้ งส่งบติ Start แลว้ ตามดว้ ย ขอ้ มูลไบต์แรก (ส่งทลี ะบติ แบบ LSB First) และไอซี TM1637 ซง่ึ เป็นฝ่ ายรบั จะต้องตอบกลบั ดว้ ยบติ Ack (Acknowledge) การส่อื สารขอ้ มลู จะต้องจบด้วย บติ Stop (หรอื End) โดยรวมจะ เห็นได้ว่า มรี ูปแบบการทางานเหมอื นกับกรณีของ I2C แต่อันท่จี รงิ แล้วมคี วามแตกต่างกนั เช่น ขอ้ มลู ไบตแ์ รกจะไมใ่ ช่ Control Byte เพอ่ื ระบหุ มายเลขทอ่ี ยแู่ ละบติ เขยี น-อ่าน การส่งข้อมูลไปแสดงผล จะต้องส่ง \"คาสัง่ \" 3 ชุด ได้แก่ Command1 (0x40) ซง่ึ หมายถงึ คาสงั่ เขยี นขอ้ มลู ลงหน่วยความจาภายใน, Command2 (0xC0) เป็นคาสงั่ เขยี นค่า ใหมใ่ ห้ 7-Segment Digit ทต่ี ้องการซง่ึ ต้องระบุหมายเลขทอ่ี ย่ดู ว้ ย และตามดว้ ยขอ้ มลู หน่ึงไบต์ ท่ีต้องการเขยี นค่าใหม่ลงไป และ Command3 (0x80) เป็นคาสงั่ เพ่ือระบุค่าท่ีกาหนดระดบั ความสว่าง หน่วยที่ 6 : การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 120 รปู ที่ 6.12 โมดลู หลอดแสดงผล LED 7-Segment แบบ 4 หลกั ท่ีมา : www.aliexpress.com 6.5.3 การเขียนโปรแกรมประยุกต์ใช้งานโมดูลหลอดแสดงผล LED 7-Segment แบบ 4 หลกั สาหรับการเขียนโปรแกรมเรียกใช้งานโมดูลหลอดแสดงผล LED 7-Segment แบบ 4 หลัก เบ้ืองต้นต้องไปดาวน์โหลดไลบรารที ่ี http://wiki.seeedstudio.com/Grove-4- Digit_Display/ ฟังกช์ นั่ tm1637.set(); กาหนดความสวา่ งของโมดูลแสดงผล โดยใสค่ ่าไดต้ งั้ แต่ 0-7 หรอื BRIGHT_TYPICAL = 2; BRIGHT_DARKEST = 0; BRIGHTEST = 7; tm1637.init(); เรม่ิ ตน้ ใชง้ านโมดลู tm1637.display(); กาหนดตวั เลขทใ่ี ชใ้ นการแสดงผล tm1637.point(POINT_ON); เปิดใชง้ านเครอ่ื งหมาย colon tm1637.point(POINT_OFF); ปิดใชง้ านเครอ่ื งหมาย colon หน่วยท่ี 6 : การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 121 ตวั อย่างโปรแกรมที่ 6.5 รปู ที่ 6.13 โปรแกรมแสดงเลข 0–9 ของหลอดแสดงผล LED 7-Segment แบบ 4 หลกั ตวั อย่างโปรแกรมที่ 6.6 รปู ที่ 6.14 โปรแกรมแสดงค่า Analog จากขา A0 ดว้ ยหลอดแสดงผล LED 7-Segment แบบ 4 หลกั หน่วยที่ 6 : การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 122 แบบทดสอบหลังเรียน หนว่ ยที่ 6 การเชอื่ มต่อไมโครคอนโทรลเลอร์กับอปุ กรณ์เอาต์พุต คาสงั่ จงเลือกคาตอบท่ีถกู ท่ีสดุ เพียงข้อเดียว 1. LED ยอ่ มาจาก? ก. Light Emotion Diode ข. Light Emitting Direct ค. Light Emitting Diode ง. Life Emitting Diode จ. Light Emotion Direct 2. หลอดแสดงผล 7-Segment สามารถแสดงตวั เลข? ก. 0 - 6 ข. 0 - 9 ค. 0 - 11 ง. 1 – 10 จ. 0 - 10 3. หลอดแสดงผล LED 7-Segment แบบ 4 หลกั หรอื เรยี กว่า? ก. Digital Tube ข. Digital Hub ค. Digital LED ง. Digital 7-Segment จ. Digital tube display 4. หลอดแสดงผล LED 7-Segment แบบ 4 หลกั ใชเ้ ทคนิค ... เพ่อื ชว่ ยประหยดั การใช้ ขาสญั ญาณ? ก. Time-Multiplexing ข. Timing-Multiplexing ค. Timing-Multi 7-Segment ง. Timing-Mult-Tube จ. Time- Mult-Tube หน่วยท่ี 6 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 123 5. การจดั ขาของหลอดแสดงผล LED 7-Segment แบบ 4 หลกั ใชไ้ อซเี บอร?์ ก. TM7905 ข. LS1637 ค. TM7805 ง. TM1637 จ. LS7805 6. ไอซเี บอร์ TM1637 ใชข้ าสญั ญาณเพยี ง? ก. 2 เสน้ คอื CLK, DIO ข. 2 เสน้ คอื CLK, SCL ค. 3 เสน้ คอื VCC, GND, CLK ง. 3 เสน้ คอื VCC, GND, DIO จ. 3 เสน้ คอื VCC, CLK, DIO 7. หลอดแสดงผล LED 7-Segmant แบบ 4 หลกั สามารถปรบั ความสวา่ งของ LED ได?้ ก. 6 ระดบั ข. 7 ระดบั ค. 8 ระดบั ง. 9 ระดบั จ. 11 ระดบั 8. แต่ละส่วนของหลอดแสดงผล 7-Segment คอื ? ก. a, b, c, d, e, f, และ g ข. a, b, c, d, e, f, g และ dp ค. a, b, c, d, e, f, g และ common a ง. a, b, c, d, e, f, g และ common k จ. a, b, c, d, e, f, g และ common L 9. หลอดแสดงผล 7-Segment สามารถบางตามลกั ษณะการต่อ ได้ 2 ชนิด คอื ? ก. Common Anode และ Common Emitting ข. Common Anode และ Common Segment ค. Common Anode และ Common Diode ง. Common Anode และ Common Cathode จ. Common Anode และ Common Emittion หน่วยท่ี 6 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 124 10. Common Anode คอื การใชข้ าใดรว่ มกนั เพอ่ื ต่อกบั ? ก. GND ข. VCC ค. A ง. K จ. G หน่วยที่ 6 : การเชื่อมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วชิ า ไมโครคอนโทรลเลอร์ 125 แบบฝึกหัด หน่วยที่ 6 การเชื่อมตอ่ ไมโครคอนโทรลเลอร์กับอปุ กรณเ์ อาต์พุต ตอนที่ 1 ใหผ้ เู้ รยี นกาเคร่อื งหมายถกู () หน้าขอ้ ทค่ี ดิ วา่ ถกู และกาเครอ่ื งหมายผดิ () ในขอ้ ทค่ี ดิ วา่ ผดิ หลอดแสดงผล LED เป็นการทาปฏกิ รยิ าของสารกง่ึ ตวั นาชนิดเดยี วกนั กบั ทรานซสิ เตอร์ หลอดแสดงผล LED จะใชก้ ระแสประมาณ 100 ถงึ 300 มลิ ลแิ อมป์ โปรแกรมสงั่ ใหห้ ลอดไฟ LED ตดิ ดบั ต่อเน่อื งกนั ตลอดเวลาเรยี กวา่ ไฟกะพรบิ (blink) pinMode (pin,mode) ใชก้ าหนดขาพอรต์ ใด ๆ ใหเ้ ป็นพอรต์ อนาลอ๊ ก ถา้ ตอ้ งการใหห้ ลอดแสดงผล LED 7-Segment แสดงผลหรอื สวา่ ง ตอ้ งส่งลอจกิ “0” มาทข่ี าแคโทด ชนิดต่อแบบแอโนดรว่ ม ถา้ ตอ้ งการใหห้ ลอดแสดงผล LED 7-Segment แสดงผลหรอื สวา่ ง ตอ้ งส่งลอจกิ “0” มาทข่ี าแอโนด ชนิดต่อแบบแคโทดรว่ ม เพอ่ื ไมใ่ หก้ ระแสไหลเกนิ อาจเกดิ ความเสยี หายไดก้ บั หลอดแสดงผล LED 7- Segment ควรต่อรว่ มกบั ตวั ตา้ นทาน เพ่อื ขยายกระแสใหห้ ลอดแสดงผล LED 7-Segment สว่างเทา่ กนั ทกุ หลอด และ ป้องกนั การลดั วงจรของหลอดแสดงผล LED 7-Segment ควรต่อรว่ มไอซี บฟั เฟอรเ์ บอร์ 74LS245 DDRD = 0xFF; ใชก้ าหนดพอรต์ D (ขา 0-7) ใหเ้ ป็นพอรต์ OUTPUT PORTD = 0x06; ใชก้ าหนดขอ้ มลู ทส่ี ง่ ออกพอรต์ แบบต่อแอโนดรว่ ม หน่วยท่ี 6 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
เอกสารประกอบการสอน วิชา ไมโครคอนโทรลเลอร์ 126 ตอนท่ี 2 คาสัง่ ให้ผู้เรียนทดลองการเช่ือมไมโครคอนโทรลเลอร์กับอุปกรณ์ภายนอกด้วยบอร์ด Arduino Uno R3 โดยใชเ้ วลา 180 นาที จดุ ประสงคเ์ ชิงพฤติกรรม 1. สามารถควบคุมหลอดไฟ LED ไดถ้ ูกตอ้ ง 2. สามารถควบคมุ หลอดแสดงผล LED 7-Segment ไดถ้ กู ตอ้ ง 3. สามารถแกป้ ัญหาในการทางานของบอรด์ Arduino Uno R3 ได้ 4. สามารถต่อใชง้ านและอพั โหลดโปรแกรมใหก้ บั บอรด์ Arduino Uno R3 ได้ อปุ กรณ์การทดลอง 1 โปรแกรม 1 เสน้ 1. โปรแกรม Arduino IDE 1 บอรด์ 2. สายโหลด USB Arduino Uno R3 1 ชดุ 3. บอรด์ Arduino Uno R3 1 เครอ่ื ง 4. สายต่อวงจร 5 หลอด 5. เครอ่ื งคอมพวิ เตอร์ 6. LED 5 ตวั 7. Resistor 220Ω การทดลองที่ 6.1 โปรแกรมไฟว่ิง LED 5 ดวง ขนั้ ตอนการทดลอง 1. เปิดโปรแกรม Arduino IDE 2. ต่อวงจรดงั รปู ท่ี 6.15 3. เขยี นโปรแกรมและอพั โหลดโปรแกรม รปู ท่ี 6.15 การเชอ่ื มต่อบอรด์ Arduino รว่ มกบั หลอดไฟ LED สาหรบั การทดลองท่ี 6.1 หน่วยท่ี 6 : การเช่ือมต่อไมโครคอนโทรลเลอรก์ บั อปุ กรณ์เอาตพ์ ตุ
Search
Read the Text Version
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237