430 4. ปรับแกวงจรโดยสลับชนดิ ของแอลอีดี 7 สว นจากคอมมอนแคโทดเปน แบบคอมมอนแอโนด และ ทดสอบเขียนโปรแกรมใหผลทำงานเปน ไปในลักษณะเดมิ 5. สรุป ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………
ใบงานท่ี 4 เร่ือง การควบคุมหลอดแอลอดี แี บบ วชิ า ไมโครคอนโทรลเลอรและการประยกุ ตใชงาน เมตรกิ ซ ชื่อ – สกลุ …………………………………………… รหสั นักศึกษา……………………………………………….. ชอื่ – สกลุ ………………………………………….. รหัสนกั ศกึ ษา……………………………………………….. ชอื่ – สกุล ………………………………………….. รหัสนักศึกษา……………………………………………….. วตั ถปุ ระสงค เพ่อื ใหผเู รียนมีความรแู ละทักษะดังนี้ 1. เพอื่ เรียนรูตำแหนง ขาบนบอรด Arduino Uno R3 ทสี่ ามารถเชอื่ มตอกบั แอลอีดแี บบ เมตรกิ ซได 2. เพ่อื เรยี นรูการเขยี นโปรแกรมโดยใช Arduino IDE เพ่ือควบคุมแอลอีดแี บบเมตริกซ 3. เพอื่ ใชโปรแกรม Proteus ในการจำลองพฤติกรรมการทำงานของวงจรทดลอง ทฤษฎี แอลอีดีแบบเมตริกซคือ การนำหลอดแอลอีดีมาวางเรียงตอกันแบบเมตริกซทำใหสามารถ แสดงผลออกมาเปนตัวเลข ตัวอักษร หรือแมแตรูปภาพได ซึ่งจะแสดงผลไดละเอียดและหลากหลาย กวาแอลอีดี 7 สวนเนื่องจากมีจำนวนหลอดแอลอีดีที่มากกวา โดยใชไมโครคอนโทรลเลอรรวมกับ อปุ กรณด โี คด เดอรแ ละไดฟเวอรมาควบคุมการทำงาน ตวั อยา งของการนำไปใชงานเชน บอรดโฆษณา หรือ บอรด ประชาสมั พนั ธต างๆ เปนตน รูปที่ 1 ตวั อยางและโครงสรางของแอลอดี ีแบบเมตริกซขนาด 8x8 ทีม่ า: ทมี งานสมารทเลิรนน่ิง, 2553
432 แอลอีดีแบบเมตริกซขนาด 8 x 8 มีหลอดแอลอีดีตอรวมกัน 64 ตัว ดังนั้นหากตองการให หลอดแอลอีดี มีการทำงานอิสระตอกันตองใชสัญญาณควบคุมทั้งหมด 64 เสน ซึ่งเปนการใชจำนวน พอรตมากเกินความจำเปน เพราะฉะนั้นจึงตอใชงานในลักษณะแบบวงจรแบบรวมแถว (Common row และแบบรวม คอลัมน (Common column ทำใหใชสายสัญญาณเพียง ใชสายสัญญาณ 16 เสน (แถว 8 เสน และ หลัก 8 เสน รูปที่ 2 วงจรสำหรับการทดลอง ทม่ี า: ผเู ขยี น ขั้นตอนการทดลอง 1. ออกแบบวงจรเพื่อใชในการแสดงการติด – ดับ ของแอลอีดีแบบเมตริกซเพื่อใหแสดงรูปดังน้ี “” 2. เขยี นโปรแกรมเพ่อื ใหเ กดิ ผลลัพธ ดังท่กี ลา วไวในขนั้ ตอนที่ 1 3. สังเกตและอธิบายสว นของโปรแกรมทีเ่ ขยี นข้นึ อยา งละเอียด คำอธิบาย ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… 4. ปรับแกโ ปรแกรมเพ่อื ปรบั รูปแบบการแสดงผลเปน ดงั น้ี “”
433 5. สรปุ ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………
ใบงานที่ 5 เรื่อง การรับขอมูลจากอุปกรณรบั ขอมูล วชิ า ไมโครคอนโทรลเลอรและการประยกุ ตใชงาน แบบเมตริกซ ชือ่ – สกุล …………………………………………… รหสั นักศกึ ษา……………………………………………….. ชื่อ – สกลุ ………………………………………….. รหัสนกั ศกึ ษา……………………………………………….. ช่ือ – สกุล ………………………………………….. รหสั นกั ศึกษา……………………………………………….. วตั ถปุ ระสงค เพอ่ื ใหผ ูเรียนมีความรูแ ละทักษะดงั นี้ 1. เพื่อเรยี นรตู ำแหนง ขาบนบอรด Arduino Uno R3 ทสี่ ามารถเช่ือมตอกับอุปกรณร ับ ขอมูลแบบเมตริกซไ ด 2. เพอ่ื เรียนรูการเขยี นโปรแกรมรับขอ มลู จากอปุ กรณร บั ขอมูลแบบเมตริกซสูบ อรด Arduino 3. เพ่ือใชโ ปรแกรม Proteus ในการจำลองพฤติกรรมการทำงานของวงจรทดลอง ทฤษฎี การใชสวิตซเปนอุปกรณอินพุต โดยทั่วไปนิยมตอสวิตซเขาไปยังตำแหนงขาของบอรด Arduino โดยตรง โดยที่ สวิตซ 1 ตัวใชขาของบอรดจำนวน 1 ขาเพราะฉะนั้นหากตองการใชสวิตซ จำนวนมากกจ็ ำเปน ตองใชขาของบอรด มากขึ้นตามไปดวย และอาจจะทำใหไมเพียงพอตอการใชงาน การนำสวิตซมาตอใชงานในลักษณะเมตริกซ ซึ่งมีการตอวงจรในลักษณะแถว และคอลัมน โดยมีจำนวนสวิตซทั้งหมดเทากบั จำนวนแถวคูณดว ยจำนวนคอลัมน ทำใหประหยัดการใชง านขาของ บอรด Arduino ไดเปนอยางมาก เชน เมตริกซขนาด 4 แถว 4 คอลัมน สามารถรับสวิตซไดทั้งหมด 4x4 เทากบั 16 ตัว โดยใชขาของพอรต เพียง 8 ขาเทา นนั้
436 รปู ท่ี 1 อุปกรณรบั ขอ มูลแบบเมตรกิ ซ ทม่ี า: ผเู ขียน การตรวจสอบการกดเมตริกซสวติ ซ - สง สัญญาณออกไปที่สายสัญญาณแถวท่ี n - ตรวจสอบสายสญั ญาณของคอลมั นท ัง้ หมดในแถวที่ n วา สญั ญาณไหนเปน ลอจิก 0 ซ่ึงเปน ตำแหนงของปมุ กด ไลบรารีสำหรบั อุปกรณรับขอ มูลแบบเมตรกิ ซ เนื่องจากโปรแกรม Arduino IDE มีไลบรารีสำหรับควบคุมการทำงานของแอลอีดีแบบ เมตริกซแลว ดังนั้นผูใชงานสามารถเรียกใชงานฟงกชันทั้งหมดที่อยูภายในไลบรารีดังกลาวนี้ได โดย จำเปนตองดาวโหลดไลบรารีจาก “http://playground.arduino.cc/Code/Keypad” โดยการใช งานไลบรารดี ังกลา วน้ีจำเปน ตองสรา งออปเจคสำหรับคลาส Keypad ขน้ึ มากอ นซึ่งมีรูปแบบดังนี้ รูปแบบ Keypad ชอื่ ตวั แปร (อ็อบเจค) = Keypad(makeKeymap(keys), int[] rowPins, int[] colPins, int ROWS, int COLS ) ความหมาย เปนคำสง่ั ทีใ่ ชใ นการกำหนดใหตำแหนง ของตัวอกั ษรของตัวแปร keys ที่เปนตัวแปรแบบ อารเรยมีคาตรงกับตำแหนงของ keypad ที่ถูกเชื่อมตอกับวงจรทดลองโดยตองสรางอ็อบเจคสำหรบั คลาส Keypad เพ่อื เกบ็ คาดังกลา ว พารามเิ ตอร 1.1 makeKeymap(keys) คือสั่งใหตัวแปร keys ซึ่งเก็บชื่อตัวอักษรของแตละตำแหนง มีคา ตรงตามแถวและคอลัมนของ keypad 1.2 rowPins คอื ตำแหนงขาของวงจรทดลองทเ่ี ช่ือมตอกับแถวของ keypad ท้ังหมด
437 1.3 colPins คือ ตำแหนงขาของวงจรทดลองทเ่ี ชอ่ื มตอ กับคอลมั นของ keypad ท้งั หมด 1.4 ROWs คอื จำนวนแถวของ keypad 1.5 Cols คือ จำนวนคอลัมนของ keypad หลังจากสรางตัวแปรสำหรับคลาสแลวจะสามารถเรียกใชงานคำสั่งของคลาสดังกลาวนี้ได โดยมีเมธอดที่สำคญั คือ getkey() ซงึ่ จะคืนคาเปน ตวั อักขระที่ตรงตามตำแหนงบน keypad รูปท่ี 2 วงจรสำหรบั การทดลอง ที่มา: ผเู ขียน ข้ันตอนการทดลอง 1. ออกแบบวงจรเพือ่ ใช keypad สำหรับควบคุมแอลอดี ี 7 สวน เพ่อื ใหท ำงานเปนดงั น้ี กด “1” สวน a มสี ถานะ “ติด” เพียงสวนเดยี ว กด “2” สว น b มีสถานะ “ตดิ ” เพียงสวนเดยี ว กด “3” สวน c มีสถานะ “ตดิ ” เพยี งสวนเดียว กด “4” สว น d มีสถานะ “ตดิ ” เพียงสวนเดยี ว กด “5” สว น e มีสถานะ “ติด” เพียงสวนเดยี ว กด “6” สว น f มสี ถานะ “ตดิ ” เพยี งสวนเดยี ว 2. เขยี นโปรแกรมเพือ่ ใหเ กดิ ผลลพั ธ ดังทกี่ ลา วไวในขนั้ ตอนที่ 1 3. สงั เกตและอธบิ ายสว นของโปรแกรมท่ีเขยี นขึ้นอยางละเอียด
438 คำอธิบาย ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… 4. ปรับแกโ ปรแกรมใหมใ หผลทำงานเปนดงั นี้ กด “7” สวน f มสี ถานะ “ติด” เพียงสว นเดียว กด “8” สวน e มสี ถานะ “ติด” เพียงสว นเดยี ว กด “9” สว น d มีสถานะ “ตดิ ” เพยี งสว นเดยี ว กด “*” สว น c มสี ถานะ “ตดิ ” เพยี งสวนเดยี ว กด “0” สวน b มสี ถานะ “ตดิ ” เพยี งสว นเดียว กด “#” สวน a มีสถานะ “ติด” เพยี งสวนเดยี ว 5. สรุป ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………
ใบงานท่ี 6 เร่ือง การควบคมุ แอลซดี ี วิชา ไมโครคอนโทรลเลอรแ ละการประยุกตใชง าน ชื่อ – สกลุ …………………………………………… รหัสนักศกึ ษา……………………………………………….. ชื่อ – สกลุ ………………………………………….. ชื่อ – สกลุ ………………………………………….. รหสั นกั ศึกษา……………………………………………….. รหัสนักศึกษา……………………………………………….. วัตถปุ ระสงค เพอ่ื ใหผเู รียนมคี วามรูและทักษะดงั น้ี 1. เพ่อื เรียนรตู ำแหนงขาบนบอรด Arduino Uno R3 ท่สี ามารถเชอ่ื มตอแอลซีดี 2. เพ่ือเรยี นรูการเขียนโปรแกรมเพอ่ื ควบคุมการทำงานแอลซีดี 3. เพื่อใชโปรแกรม Proteus ในการจำลองพฤติกรรมการทำงานของวงจรทดลอง ทฤษฎี แอลซีดี คือคำยอมาจาก Liquid Crystal Display (LCD เปนจอแสดงผลแบบดิจิทัลที่ สามารถแสดงผลไดทั้งตัวเลข ตัวอักษร และภาพกราฟฟก โดยภาพที่แสดงออกมาจะเกิดจากแสงที่ ปลอยออกมาจากหลอดไฟดานหลังของจอผานชั้นกรองแสง แลววิ่งไปยังคริสตัลเหลวที่เรียงตัวดวย เซลล 3 เซลล ในการเลือกใชงานจะเลอื กตามขนาดตัวอักษรและบรรทัด เชน LCD 16 x 1 Line: จอ LCD ขนาด 16 ตัวอักษร 1 บรรทัด, LCD 20 x 2 Line: จอ LCD ขนาด 20 ตัวอักษร 2 บรรทัด, LCD 16 x 2 : จอ LCD ขนาด 16 ตัวอักษร 2 บรรทัด เปนตน โดยที่สำหรับ LCD ที่มีขายตามทองตลาด ประกอบไปดวย LCD 16 x 1 Line, LCD 16 x 2 Line, LCD 20 x 2 Line และ LCD 20 x 4 Line เปนตน รูปที่ 1 แอลซดี ี ที่มา: ผเู ขียน
440 การควบคุมการทำงานของแอลซีดีสามารถทำได 2 วิธีคือ การสงขอมูลจากบอรทดลองไปยัง แอลซีดี 4 บิต (โหมด 4 บิต) ซึ่งจะใชสายสัญญาณเพียง 4 เสนระหวางวงจรทดลองและขาสญั ญาณที่ ตำแหนง D4 – D7 และการสง ขอมูลจากบอรทดลองไปยังแอลซีดี 8 บิต (โหมด 8 บิต) ซึ่งจำเปนตอง ใชสายสัญญาณทั้งหมด 8 เสน สำหรับวิธีการควบคุมการทำงานจะคลายคลึงกันเพียงแตจะมีความ แตกตางกันตรงที่โหมด 8 บิตจะรับ-สงขอมูลไดเร็วกวา 4 บิต อยางไรก็ตามถึงแมจะรับ-สงขอมูลได เรว็ กวาโหมด 4 บติ แตจ ากความเร็วในการรับสงท่ีแตกตา งกนั ไมมาก และโหมด 4 บิตยังคงสามารถ แสดงผลไดทนั จากการสังเกตดวยสายตามนุษย ดังน้นั โหมด 4 บิตท่ีซง่ึ ใชสายสัญาณนอยกวาจึงเปนที่ นิยมมากกวา โปรแกรม Arduino IDE มีไลบรารีชื่อ “LiquidCrystal” ซึ่งเปนไลบรารีสำหรับควบคุมการ ทำงานแอลซีดีผานการเรียกใชฟงกชันภายในไลบรารีดังกลาว จึงชวยใหการเขียนโปรแกรมควบคุม การทำงานแอลซีดีทำไดงายขึ้นโดยฟงกชันที่สำคัญเชน LiquidCrystal() เปนฟงกชันที่ใชสำหรับ กำหนดขาของการเชื่อมตอระหวางแอลซีดี และวงจรทดลอง ซึ่งเปนฟงกชันแรกที่จำเปนตองถูก ประกาศใชงานเพือ่ ใหสามารถเรยี กใชง านฟงกชันอื่นในไลบรารี LiquidCrystal, ฟง กชนั begin() เปน ฟงกชันที่ใชสำหรับกำหนดอินเตอรเฟสสำหรับการใชงานแอลซีดี ซึ่งควรจะตองตรงกับคุณลักษณะ ของแอลซีดีท่ถี กู นำมาใชง าน, ฟงกชนั print() เปน ฟง กชันท่ใี ชส ำหรบั แสดงขอความทแ่ี อลซีดี, ฟงกชัน setCursor() เปน ฟงกชนั ที่ใชส ำหรบั กำหนดตำแหนงของเคอรเซอรเพ่ือเปน ตำแหนง ทจ่ี ะแสดงตัวขระ , ฟงกชัน cursor() เปนฟงกชันที่ใชสำหรับกำหนดใหเปดการแสดงเคอรเซอรแบบติดนิ่ง, ฟงกชัน noCursor() เปนฟงกชันที่ใชสำหรับกำหนดใหปดการแสดงเคอรเซอรแบบติดนิ่ง, ฟงกชัน blink() เปนฟงกชันที่ใชสำหรับกำหนดใหเปดการแสดงเคอรเซอรแบบบล็อคติดกระพรบิ , ฟงกชัน noBlink() เปนฟงกชันที่ใชสำหรับกำหนดใหปดการแสดงเคอรเซอรแบบบล็อคติดกระพริบ, ฟงกชัน home() เปนฟงกชันที่ใชสำหรับกำหนดเคอรเซอรกลับไปอยูตำแหนงเริ่มตน (ตำแหนงบนทางดานซาย , ฟงกชัน leftToRight() เปนฟงกชันที่ใชสำหรับการเลื่อนเคอรเซอรไปทางขวา โดยหากมีการใชคำสั่ง การแสดงผลจะแสดงผลตำแหนงแรกตรงกับตำแหนงปจจุบันของเคอรเซอร และ ฟงกชัน rightToLeft() เปนฟงกชันที่ใชสำหรับการเลื่อนเคอรเซอรไปทางซาย โดยหากมีการใชคำสั่งการ แสดงผลจะแสดงผลตำแหนง แรกตรงกับตำแหนงปจจบุ ันของเคอรเ ซอร
441 รูปท่ี 2 วงจรสำหรับการทดลอง ท่มี า: ผเู ขยี น ขนั้ ตอนการทดลอง 1. ออกแบบวงจรเพอื่ ควบคุมจอแอลซีดีเพื่อใหทำงานเปนดงั น้ี บรรทดั บน: “Hello” บรรทัดลา ง: “Arduino” 2. เขยี นโปรแกรมเพื่อใหเ กดิ ผลลพั ธ ดังท่กี ลา วไวใ นขน้ั ตอนที่ 1 3. สงั เกตและอธบิ ายสว นของโปรแกรมท่เี ขยี นขนึ้ อยา งละเอยี ด คำอธิบาย ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… 4. ปรบั แกโปรแกรมใหมโ ดยใหแสดงเคอรเซอรต ดิ แบบกระพริบท่บี รรทัดที่สองหลังขอ ความ “Arduino” 5. สรุป ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………
ใบงานที่ 7 เร่อื ง การควบคุมดีซีมอเตอร วชิ า ไมโครคอนโทรลเลอรและการประยกุ ตใ ชงาน ชือ่ – สกลุ …………………………………………… รหัสนักศึกษา……………………………………………….. ชอื่ – สกลุ ………………………………………….. ช่อื – สกุล ………………………………………….. รหสั นกั ศกึ ษา……………………………………………….. รหัสนกั ศึกษา……………………………………………….. วัตถุประสงค เพื่อใหผเู รียนมีความรแู ละทักษะดังนี้ 1. เพื่อเรียนรูตำแหนง ขาบนบอรด Arduino Uno R3 ท่ีสามารถเช่อื มตอดซี ีมอเตอร 2. เพอ่ื เรยี นรูการเขียนโปรแกรมเพือ่ ควบคมุ การทำงานดซี ีมอเตอร 3. เพอ่ื ใชโ ปรแกรม Proteus ในการจำลองพฤติกรรมการทำงานของวงจรทดลอง ทฤษฎี มอเตอรดีซี (DC Motor คือมอเตอรกระแสตรงที่กินกระแสไฟเลี้ยงสูง โดยตองใชแรงดัน อยา งนอย 12 โวลตซึ่งขน้ึ อยกู ับขนาดของมอเตอร มอเตอรดีซีมีขาสำหรับตอใชงานทั้งหมด 2 ขา โดยวิธีการควบคุมใหมอเตอรหมุนคือจาย ไฟฟากระแสตรงเขาขาขางหนึ่ง สวนขาอีกขางจะถูกตอกราวดเพื่อใหเกิดความตางศักยระหวางข้ัว มอเตอรจึงสงผลใหเ กดิ การหมุนของมอเตอรขึ้น ในทางกลับกันหากสลบั ตำแหนง การเชอ่ื มตอท่ีขาของ มอเตอรค ือจายไฟฟากระแสตรงท่ีขาอีกขาง (ขาทีต่ อกราวด และสลบั ขาที่ถูกตอกับไฟฟากระแสตรง มาตอกราวดสงผลใหมอเตอรหมุนในทิศทางตรงกันขาม อยางไรก็ตามหากเชื่อมตอสัญญาณลักษณะ เดียวกนั กับท้ัง 2 ขาของมอเตอร เชน ตอขาทัง้ สองขางลงกราวด หรือตอไฟฟากระแสตรงที่ขาท้ังสอง ของมอเตอรดีซี จะไมม ีการหมุนเกดิ ขึ้น รูปที่ 1 มอเตอรด ซี ีในโปรแกรม Proteus ทีม่ า: ผเู ขยี น
444 เนื่องจากมอเตอรทุกประเภทเปนอุปกรณที่กินกระแสที่สูง ดังนั้นจำเปนตองใชอุปกรณขับ (Driver เพื่อใชสำหรับจายแรงดัน และกระแสที่สูงได โดยการสรางอุปกรณขับมีหลากหลายวิธี เชน ใชวงจรทรานซิสเตอร หรือ ใชไอซีสำเร็จรูป เปนตน สำหรับการทดลองนี้เลือกไอซีเบอร ULN2003A ซึ่งเปนไอซสี ำเรจ็ รปู สำหรับเพิม่ แรงดนั และกระแสแกม อเตอร รปู ท่ี 2 ไอซีเบอร ULN2003A ทม่ี า: Omar, Shahnawaz & Zainulabideen, 2012 รูปที่ 3 ไอซีเบอร ULN2003A ในโปรแกรม Proteus ทมี่ า: ผเู ขยี น รูปที่ 3 แสดงตัวอยางไอซีเบอร ULN2003A ในโปรแกรม Proteus ซึ่งสามารถคนหาไดโดย ใชค ำคน “ULN2003A” นอกเหนือจากไอซี ULN2003A ซึ่งใชสำหรับขับกระแสและแรงดันแลว อุปกรณ อิเล็กทรอนิกสอีกชนิดหนึ่งที่จำเปนตองถูกนำมาใชสำหรับควบคุมการทำงานของมอเตอรคือ รีเลย (Relay ซ่ึงเปน อปุ กรณไ ฟฟา ที่ทำหนาที่สำหรบั เปลย่ี นพลังงานไฟฟา เปนพลังงานแมเ หลก็ ซง่ึ สามารถ นำมาใชสำหรบั การเปด – ปดหนาสมั ผสั สำหรับวงจรของมอเตอร
445 รูปที่ 4 รีเลย ท่ีมา: ผูเขยี น รปู ที่ 5 รเี ลยใ นโปรแกรม Proteus ท่มี า: ผูเขยี น รูปท่ี 6 วงจรสำหรับการทดลอง ทีม่ า: ผูเ ขยี น
446 ข้ันตอนการทดลอง 1. ออกแบบวงจรเพ่ือควบคุมการหมุนของดีซีมอเตอร 2. เขยี นโปรแกรมเพอ่ื ใหเกดิ ผลลพั ธ ดงั ทกี่ ลา วไวใ นขน้ั ตอนท่ี 1 3. สังเกตและอธบิ ายสว นของโปรแกรมทเ่ี ขยี นข้นึ อยางละเอียด คำอธิบาย ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… 4. ปรบั แกโ ปรแกรมใหมโดยสลบั โหมดการทำงานของตำแหนง ขาทั้งสองทเ่ี ชื่อมตอกบั ดีซีมอเตอร 5. สรุป ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………
ใบงานที่ 8 เรือ่ ง การควบคมุ สเต็ปมอเตอร วิชา ไมโครคอนโทรลเลอรและการประยุกตใ ชงาน ชือ่ – สกุล …………………………………………… รหัสนกั ศกึ ษา……………………………………………….. ชื่อ – สกุล ………………………………………….. ชื่อ – สกุล ………………………………………….. รหัสนักศกึ ษา……………………………………………….. รหัสนกั ศกึ ษา……………………………………………….. วัตถุประสงค เพ่ือใหผ ูเรียนมีความรูและทักษะดงั นี้ 1. เพอ่ื เรียนรูตำแหนงขาบนบอรด Arduino Uno R3 ท่สี ามารถเชอื่ มตอสเตป็ มอเตอร 2. เพือ่ เรยี นรูการเขยี นโปรแกรมเพ่อื ควบคุมการทำงานสเตป็ มอเตอร 3. เพือ่ ใชโปรแกรม Proteus ในการจำลองพฤติกรรมการทำงานของวงจรทดลอง ทฤษฎี สเต็ปมอเตอร (Stepping Motor คือมอเตอรทสี่ ามารถควบคุมจงั หวะ และทิศทางการหมุน ได โดยสเต็ปมอเตอรจะหมุนตามจังหวะ ดังนั้นผูใชงานสามารถควบคุมมุมองศาของการหมุนของ สเตป็ มอเตอรไ ด โดยทั่วไปสเต็ปมอเตอรจะเปนแบบชนิด 4 เฟส และมีขดลวดอยู 2 ชุด ซึ่งแตละชุดจะถูก แบงเปน ชดุ ละ 2 เฟส นอกเหนือจากนัน้ ขดลวดแตล ะชดุ จะมีจดุ รวมอยู 1 จดุ ดงั นั้นสเต็ปมอเตอรจึงมี สายสัญญาณทั้งหมด 6 เสน อยางไรก็ตามสเต็ปมอเตอรบางประเภทอาจมีสายสัญญาณเพียง 5 เสน เนอ่ื งจากมกี ารนำจดุ รว มมาเชื่อมตอ กนั รูปที่ 1 สเตป็ มอเตอรใ นโปรแกรม Proteus ทมี่ า: ผูเขียน
448 การควบคมุ สเต็ปมอเตอรแบบ 1 เฟส การควบคุมสเต็ปมอเตอรแบบ 1 เฟสคือการควบคุมขดลวดทีละ 1 ขดตอ การหมนุ 1 จังหวะ โดยเรม่ิ จากควบคมุ ขดลวดขดท่ี 1 โดยการสง สัญญาณสถานะ “HIGH” ไปท่ีตำแหนง ขดลวดท่ี 1 และ สงสัญญาณสถานะ “LOW” ไปยังขดลวดอื่นๆ ทั้งหมด ในจังหวะถัดไปจะเปลี่ยนมาควบขดลวดที่ 2 โดยสงสถานะ “HIGH” ไปตำแหนงขดลวดที่ 2 และสงสัญญาณสถานะ “LOW” ไปยังขดลวดอื่นๆ และจังหวะถัดไปเปนการควบคุมขดลวดที่ 3 และ 4 ตามลำดับ ซึ่งตารางที่ 1 แสดงการควบคุม สเตป็ มอเตอรแบบ 1 เฟส ตารางที่ 1 การควบคุมจังหวะการหมุนของสเต็ปมอเตอรแบบ 1 เฟส จงั หวะที่ ขดลวดที่ 4 ขดลวดท่ี 3 ขดลวดที่ 2 ขดลวดท่ี 1 1 0 0 0 1 2 0 0 1 0 3 0 1 0 0 4 1 0 0 0 การควบคุมสเต็ปมอเตอรแ บบ 2 เฟส การควบคุมสเต็ปมอเตอรแบบ 2 เฟส จะมีรูปแบบการควบคุมจังหวะการหมุนคือแตละ จังหวะของการหมนุ จะตองควบคุมขดลวดทีละ 2 ขดท่อี ยตู ิดกัน และการควบคุมจังหวะถัดไปคือขวบ คุมขดลวดตำแหนง ท่ี 2 ทถ่ี ูกควบคมุ ในจังหวะกอนหนา และขดลวดตำแหนงท่ตี ดิ กนั กับตำแหนง ตารางท่ี 2 การควบคุมจังหวะการหมนุ ของสเตป็ มอเตอรแบบ 2 เฟส จังหวะท่ี ขดลวดที่ 4 ขดลวดที่ 3 ขดลวดที่ 2 ขดลวดท่ี 1 1 0 0 1 1 2 0 1 1 0 3 1 1 0 0 4 1 0 0 1
449 การควบคุมสเต็ปมอเตอรแบบคร่ึงสเต็ป การควบคุมสเต็ปมอเตอรแบบครึ่งสเต็ป เกิดจากการขับสเต็ปมอเตอรแบบผสมระหวางการ ควบคุมสเต็ปมอเตอรแบบ 1 เฟส และการควบคมุ สเต็ปมอเตอรแบบ 2 เฟส โดยจังหวะที่ 1 ของการ ควบคุมจังหวะการหมุนของสเต็ปมอเตอรคือการควบคุมขดลวดขดที่ 1 เพียงตัวเดียว (แบบ 1 เฟส ในจังหวะถัดไปคือการควบคุมขดลวด 2 ตัวคือขดลวดที่ 1 และ 2 (แบบ 2 เฟส และจังหวะที่ 3 จะ กลบั มาควบคุมแบบ 1 เฟส ตารางท่ี 3 การควบคมุ จงั หวะการหมุนของสเต็ปมอเตอรแบบครึ่งสเตป็ จงั หวะท่ี ขดลวดที่ 4 ขดลวดที่ 3 ขดลวดท่ี 2 ขดลวดที่ 1 1 0 0 0 1 2 0 0 1 1 3 0 0 1 0 4 0 1 1 0 5 0 1 0 0 6 1 1 0 0 7 1 0 0 0 8 1 0 0 1 รปู ที่ 2 วงจรสำหรับการทดลอง ที่มา: ผูเขียน
450 ขัน้ ตอนการทดลอง 1. ออกแบบวงจรเพื่อควบคุมการหมุนของสเต็ปมอเตอรจังหวะละ 18 องศาจำนวน 2 รอบโดยใช วธิ กี ารควบคุมแบบ 1 เฟส การปรับจังหวะการหมุนของสเต็ปมอเตอรสามารถทำไดโดยเลือก Edit Component -> Step Angle ในโปรแกรม Proteus 2. เขยี นโปรแกรมเพอ่ื ใหเ กิดผลลพั ธ ดังท่ีกลาวไวในขน้ั ตอนท่ี 1 3. สงั เกตและอธบิ ายสวนของโปรแกรมทเ่ี ขียนขน้ึ อยา งละเอียด คำอธิบาย ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… 4. ปรบั แกโ ปรแกรมใหมโ ดยใหม ีผลการทำงานเปนเชนเดิม แตเปลยี่ นเปนการควบคุมแบบ 2 เฟส 5. สรุป ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………
ใบงานท่ี 9 เรื่อง การควบคมุ เซอรโ วมอเตอร วชิ า ไมโครคอนโทรลเลอรและการประยุกตใ ชงาน ช่ือ – สกลุ …………………………………………… รหสั นักศกึ ษา……………………………………………….. ช่ือ – สกุล ………………………………………….. ช่อื – สกลุ ………………………………………….. รหัสนกั ศึกษา……………………………………………….. รหสั นักศึกษา……………………………………………….. วตั ถุประสงค เพ่อื ใหผ ูเรียนมคี วามรูและทักษะดงั น้ี 1. เพ่อื เรยี นรูตำแหนง ขาบนบอรด Arduino Uno R3 ทีส่ ามารถเชอื่ มตอเซอรโวมอเตอร 2. เพอื่ เรียนรูการเขียนโปรแกรมเพ่อื ควบคมุ การทำงานเซอรโ วมอเตอร 3. เพ่ือใชโปรแกรม Proteus ในการจำลองพฤติกรรมการทำงานของวงจรทดลอง ทฤษฎี เซอรโวมอเตอร คือมอเตอรที่มีแรงบิตที่สูงมากที่สามารถนำไปใชสำหรับควบคุมไดท้ัง ความเรว็ แรงบติ และตำแหนง ทิศทางการหมนุ โดยผลลพั ธท ีไ่ ดมคี วามแมนยำสงู มาก รปู ที่ 1 เซอรโวมอเตอรใ นโปรแกรม Proteus ทีม่ า: ผเู ขียน อยา งไรก็ตามท่ีตวั โปรแกรม Arduino IDE ไดมกี ารพฒั นาชดุ คำส่ังสำหรับควบคุมการทำงาน ของเซอรโวมอเตอรไวแลว ซึ่งผูใชงานสามารถการสรางและเรียกใชงานฟงกชันผานอ็อบเจ็ค Servo สำหรับฟง กชนั ทสี่ ำคญั ในไลบรารี Servo มดี ังน้ี
452 1. ฟงกชัน attach() เปนฟงกชันที่ใชสำหรับกำหนดตำแหนงขาของวงจรทดลอง.ที่จะถูกใชเชื่อมตอกับเซอรโว มอเตอร รปู แบบ ชื่อออบเจ็ค.attach(pin) หรอื ชือ่ ออบเจ็ค.attach(pin, min, max) พารามิเตอร 1. pin คือ ตำแหนง ขาของวงจรทดลอง. 2. min คอื ความกวางท่ี 0 องศาของเซอรโวมีหนวยเปน ไมโครวินาที โดยหากไมก ำหนดคาจะ มคี าเร่มิ เตนอยทู ี่ 544 ไมโครวนิ าที 3. max คือความกวา งที่ 180 องศาของเซอรโ วมีหนว ยเปนไมโครวินาทีโดยหากไมกำหนดคา จะมคี า เรมิ่ เตน อยทู ี่ 2400 ไมโครวนิ าที 2. ฟงกช ัน write() เปน ฟงกชนั ทใี่ ชส ำหรับกำหนดตำแหนง และทศิ ทางการหมุนของเซอรโวมอเตอร รูปแบบ ชอ่ื ออบเจค็ .write(angle) พารามิเตอร 1. angle คือ ขนานมุมของเซอรโวมอเตอรที่กำหนดใหหมุน โดยสามารถกำหนดคาได ระหวาง 0 – 180 องศา อยางไรก็ตามกรณีที่เซอรโมมอเตอรเปนแบบหมุนเต็ม (Full Rotation) คา angle คอื คา ความเร็วและทศิ ทางการหมุน ดงั น้ี angle = 90 คือการสั่งใหเซอรโวมอเตอรห ยดุ หมนุ
453 angle = 0 คือการส่ังใหเซอรมอเตอรหมนุ ดว ยความเร็วสงู สดุ ในทศิ ทางหนึ่ง angle = 180 คือการสั่งใหเซอรมอเตอรหมุนดวยความเร็วสูงสุดในทิศทางตรงกัน ขามกบั กรณีท่ี angle = 0 3. ฟงกชนั writeMicroseconds() เปนฟงกช ันที่ใชส ำหรับควบคมุ ทิศทางการหมนุ ของเซอรโ วมอเตอรโ ดยใชสัญญาณนาิกาท่ีมี ความถ่ีแตกตา งกนั ออกไปในหนวยไมโครวินาที โดยการใชงานฟงกชนั นสี้ ามารถกำหนดไดอยางอิสระ อยางไรก็ตามมขี อท่ีพึงระวงั คือไมควรใหหมุนเกินตำแหนง 0 องศาหรอื 180 องศาเพราะอาจสงผลให เซอรโ วมอเตอรหมด อายุการใชงานเรว็ กวา กำหนด รูปแบบ ช่อื ออบเจค็ .writeMicroseconds(time) พารามิเตอร 1. time คอื เวลาในหนว ยไมโครวินาที 4. ฟง กชนั read() เปนฟงกชันที่ใชสำหรับอานคาองศาที่ถูกอานดวยฟงกชัน write โดยผลลัพธจะอยูในชวง ระหวาง 0 – 180 องศา รปู แบบ ชอ่ื ออบเจ็ค.read() 5. ฟงกช ัน attached() เปน ฟง กช นั ทใ่ี ชสำหรบั ตรวจสอบวา เซอรโวถูกเชอ่ื มตออยูกับวงจรทดลองหรือไม
454 รูปแบบ ช่ือออบเจค็ .attached() 6. ฟง กช นั detach() เปนฟงกชันที่ใชสำหรับคืนสถานะของตำแหนงขาที่ถูกเชื่อมตอกับเซอรโวมอเตอรเพื่อให กลับมาใชงานตามปกติ รูปแบบ ชื่อออบเจค็ .detach() รปู ที่ 2 วงจรสำหรบั การทดลอง ทมี่ า: ผเู ขียน ข้นั ตอนการทดลอง 1. ออกแบบวงจรเพอ่ื ควบคุมการหมนุ ของเซอรโวมอเตอร ดังน้ี กดปุม sw1: เซอรโ วหมนุ เพิ่ม 10 องศา กดปุม sw2: เซอรโ วหมุนเพิม่ 20 องศา
455 โดยหากหมุนครบ 180 องศาจะหยุดการทำงานท้ังหมด 2. เขยี นโปรแกรมเพ่อื ใหเ กิดผลลัพธ ดงั ที่กลา วไวใ นข้ันตอนที่ 1 3. สงั เกตและอธิบายสวนของโปรแกรมท่เี ขยี นขนึ้ อยา งละเอียด คำอธิบาย ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… 4. ปรับแกโ ปรแกรมใหมโ ดยใหม ผี ลการทำงานเปล่ยี นไปเล็กนอยดงั น้ี กดปุม sw1: เซอรโวหมุนลดลง10 องศา กดปมุ sw2: เซอรโวหมนุ ลดลง 20 องศา โดยหากหมุนครบ 0 องศาจะหยดุ การทำงานทั้งหมด 5. สรปุ ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………
ใบงานที่ 10 เร่อื ง การรับขอมูลจากเซน็ เซอร วิชา ไมโครคอนโทรลเลอรแ ละการประยกุ ตใชง าน ชื่อ – สกลุ …………………………………………… รหัสนักศึกษา……………………………………………….. ช่อื – สกุล ………………………………………….. ช่อื – สกลุ ………………………………………….. รหัสนกั ศึกษา……………………………………………….. รหสั นกั ศึกษา……………………………………………….. วัตถปุ ระสงค เพ่อื ใหผ เู รยี นมีความรแู ละทักษะดงั นี้ 1. เพ่ือเรยี นรูตำแหนง ขาบนบอรด Arduino Uno R3 ทส่ี ามารถเชอื่ มตอเซ็นเซอรแ ตล ะ ประเภท 2. เพ่ือเรยี นรูการเขียนโปรแกรมรับคา จากเซ็นเซอรเพื่อควบคุมอุปกรณช นิดอ่นื ๆ ได 3. เพอ่ื ใชโ ปรแกรม Proteus ในการจำลองพฤติกรรมการทำงานของวงจรทดลอง ทฤษฎี เซ็นเซอรคือ อุปกรณอิเล็กทรอนิกสที่ซึ่งโดยสวนใหญจะสงสัญญาณเปนแบบอนาล็อก ถูก แบงออกเปน หลายประเภทจึงสามารถนำมาใชสำหรับตรวจจบั สญั ญาณในรปู แบบตา งๆ เชน สัญญาณ แสง สญั ญาณเสยี ง หรือคา สี เปนตน เพ่อื นำไปใชประโยชนไดในหลากหลายดาน เชน งานดานเกษตร อุตสาหกรรม ทางการแพทย โดยเฉพาะอยางยิ่งระบบงานที่มีลักษณะการทำงานแบบอัตโนมัติ เปน ตน สำหรับบอรด Arduino Uno R3 มขี าท่ีสามารถรองรบั สญั ญาณอนาลอ็ กไดท ้ังหมด 6 ขาคอื A0 – A5 โดยรูปท่ี 1 แสดงตำแหนง ขาท่รี องรับสัญญาณอนาล็อกซึ่งตำแหนงมุมลางซา ย รปู ท่ี 1 ตำแหนงขาวงจรทดลอง Arduino Uno R3 ทมี่ า: ผเู ขยี น
458 เนื่องจากในสวนของชุดคำสั่งรับคาจากเซ็นเซอรแตละประเภทมีลักษณะคลายคลึงกันเกือบ ทั้งหมด ดังนั้นใบงานน้ีจึงเลือกตัวตานทานแบบปรับคาไดเ พื่อเปนตวั อยางสำหรับประกอบคำอธบิ าย เนอ่ื งจากอปุ กรณช นิดนี้สามารถเลือกใชง านไดในโปรแกรม Proteus รปู ท่ี 2 ตัวตา นทานแบบปรับคาได ทม่ี า: ผูเขียน รปู ที่ 3 ตวั ตานทานแบบปรับคาไดในโปรแกรม Proteus ที่มา: ผเู ขยี น รูปที่ 3 แสดงตัวอยางตัวตานทานแบบปรับคาไดในโปรแกรม Proteus ซึ่งเปนอุปกรณที่ถูก นำมาใชแทนเซ็นเซอรเพื่อสงสัญญาณอนาล็อกสูวงจรทดลองโดยใชโปรแกรมจำลองการทำงาน อยา งไรก็ตามเซ็นเซอรชนดิ อื่นๆ ผูเขียนจะแสดงตัวอยางผานการทดลองจริง โดยโปรแกรม Arduino IDE มฟี ง กชนั ทีส่ ำคัญท่ีเกย่ี วกบั การจดั การสัญญาณอนาล็อกท่ีถูกสง มาจากเซ็นเซอรชนิดตางๆ ดังนี้
459 1. ฟงกช ัน analogRead() เปนฟงกชันที่ใชสำหรับรับคาสัญญาณอนาล็อกจากเซ็นเซอรสูวงจรทดลอง โดยตำแหนงขา ของวงจรทดลองจะตองสามารถรับสัญญาณอนาล็อกได โดยในบอรด Arduino Uno R3 สามารถรับ สัญญาณอนาล็อกไดท ข่ี า A0 – A5 รูปแบบ analogRead(pin) การคืนคา จำนวนเต็ม พารามเิ ตอร 1. pin คือ ตำแหนง ขาของวงจรทดลองทีร่ องรับสญั ญาณอนาล็อกทเี่ ชื่อมกบั ของเซน็ เซอร 2. ฟง กชัน map() เปนฟงกชันที่ใชสำหรับปรับชวงคาของสัญญาณอนาล็อกใหมใหอยูในชวงตามที่ผูใชงาน ตองการ รปู แบบ map(value, fromLow, fromHigh, toLow, toHigh) การคนื คา จำนวนเตม็ พารามิเตอร 1. value คอื คาสัญญาณอนาลอ็ กทถี่ กู สง โดยเซน็ เซอร 2. fromLow คอื คา ต่ำสดุ ทเ่ี ปนไปไดของสัญญาณตน ฉบบั 3. fromHigh คอื คา สงู สดุ ท่เี ปน ไปไดข องสัญญาณตนฉบับ
460 4. toLow คอื คาตำ่ สุดทเ่ี ปน ไปไดของสญั ญาณทถ่ี กู ปรบั ชว งใหม 5. toHigh คือ คาสูงสุดทเี่ ปน ไปไดของสัญญาณที่ถูกปรบั ชว งใหม โดยท่ีมาของผลลพั ธท ่คี ืนคาจากฟงกช ัน map() ซึง่ เปน จำนวนเตม็ เปนดังน้ี result = (value – fromLow)*(toHigh – toLow)/(fromHigh – fromLow) + toLow เมอื่ result คอื ผลลพั ธท ี่เกิดจากการปรับชวงของสัญญาณ ขัน้ ตอนการทดลอง 1. ออกแบบวงจรโดยตอตัวตานทานปรับคาไดเขาที่ขา A0 ของบอรด Arduino Uno R3 และ แสดงผลของคาที่รบั จากตวั ตา นทานปรับคาไดผาน Serial Monitor 2. เขยี นโปรแกรมเพื่อใหเกิดผลลัพธ ดังทีก่ ลา วไวใ นขน้ั ตอนท่ี 1 3. สังเกตและอธิบายสว นของโปรแกรมทเ่ี ขยี นขึน้ อยา งละเอยี ด คำอธิบาย ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… 4. ปรับแกโปรแกรมและวงจรใหมโดยเพ่มิ หลอดแอลอดี ี 1 หลอดและแบงชว งการควบคุมแอลอีดี โดย ใหผทู ดลองกำหนดชว งทใ่ี ชส ำหรบั การควบคมุ เอง 5. สรุป ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………
ใบงานท่ี 11 เรอ่ื ง การประยุกตใชไอซีสำหรับขยาย วชิ า ไมโครคอนโทรลเลอรและการประยกุ ตใ ชง าน พอรตการทำงาน ชอ่ื – สกุล …………………………………………… รหัสนกั ศกึ ษา……………………………………………….. ชอ่ื – สกุล ………………………………………….. รหสั นกั ศึกษา……………………………………………….. ชือ่ – สกลุ ………………………………………….. รหัสนกั ศึกษา……………………………………………….. วัตถุประสงค เพอ่ื ใหผเู รียนมีความรูและทักษะดังน้ี 1. เพ่อื เรยี นรตู ำแหนง ขาบนบอรด Arduino Uno R3 ท่ีสามารถเชือ่ มตอไอซีขยายพอรตได 2. เพอ่ื เรยี นรูการเขียนโปรแกรมเพอ่ื ควบคมุ ไอซีขยายพอรต 3. เพ่อื ใชโปรแกรม Proteus ในการจำลองพฤติกรรมการทำงานของวงจรทดลอง ทฤษฎี เนื่องจากบอรด Arduino บางประเภทมีพอรตสำหรับใชงานไมมาก จึงจำเปนตองขยาย พอรตการทำงานในกรณีที่จำนวนพอรตการเชื่อมตอไมเพียงพอ โดยไอซีเบอร 74HC595 คือไอซีที่ สามารถนำมาประยุกตใชสำหรับการขยายพอรตของบอรด Arduino ไดโดยใชหลักการเลื่อนขอมูล ครง้ั ละ 1 บิต รปู ที่ 1 ไอซเี บอร 74HC595 ทม่ี า: ผูเขยี น
462 รูปท่ี 2 ไอซีเบอร 74HC595 สำหรับโปรแกรม Proteus ที่มา: ผูเขียน สำหรบั ขาการใชงานของไอซีเบอร 74HC595 ท่ีสำคญั ประกอบดวยดงั น้ี ขา 11 (SH_CP) คือขาที่ทำหนาที่เปนตัวใหกำเนิดสัญญาณนาิกา ซึ่งทุกครั้งที่มกี ารเปล่ียน สถานะของเอาตพุตจะตองสรางสัญญาณนาิกา แตอยางไรก็ตามเนื่องจาก Arduino มีฟงกชันที่ใช สำหรบั แสดงสถานะเอาตพตุ รวมกบั ชิพรจี ิสเตอรซ่ึงจะสรางสัญญาณนาิกาท่ีขา SH_CP โดยอัตโนมัติ ขา 12 (ST_CP คือขาที่ใชสำหรับควบคุมจังหวะการสงขอมูลโดยที่จะกำหนดใหมีสถานะ เปน “HIGH” ในกรณีที่ยังไมมีการสงขอมูลเกิดขึ้น และกำหนดใหมีสถานะเปน “LOW” ในขณะที่มี การสง ขอมูล ขา 14 (DS คอื ขาทีใ่ ชสำหรบั การปอ นคาขอ มูลไปยงั ชฟิ รีจิสเตอรครงั้ ละ 1 บิต ขา 10 (MR) คอื ขาท่ีใชสำหรับเคลียรขอมลู ในชิฟรีจสิ เตอร โดยจะถกู กำหนดใหมีสถานะเปน “HIGH” เสมอ ดงั นั้นจึงสามารถตอขาดังกลา วรว มกบั +VCC ขา 13 (OE) คือขาที่ถูกกำหนดสถานะเปน “LOW” เสมอ ดังนั้นจึงสามารถตอขาดังกลาว รวมกบั ขากราวนเ สมอ ขา 15 และ 1-7 (Q0 – Q7) คือขาเอาตพุตรวมกันขนาด 8 บิตซึ่งจะแสดงผลแบบขนาน (แสดงผลการทำงานพรอ มกนั ทั้ง 8 ขา) ขา 9 (Q7’) คือขาเอาตพุตท่แี สดงผลเปนแบบลำดับรว มกับขา Q0 – Q7 สำหรับขาที่จะเชื่อมกับ Arduino มีทั้งหมด 3 ขาประกอบไปดวย SH_CP, ST_CP และ DS โดยวธิ กี ารสำหรับควบคมุ สถานะการทำงาน Q0 – Q7 เปนดงั น้ี ลำดับที่ 1 กำหนดสถานะของ ST_CP ใหมีสถานะเปน “LOW” เพื่อรอการสงขอมูลมาจาก Arduino ลำดับที่ 2 กำหนดใหขา DS มีคาตรงกับสถานะของเอาตพุตโดยการรับคาครั้งละ 1 บิต จำนวน 8 คา
463 ลำดับที่ 3 กำหนดสัญญาณนาิกาที่ขา SH_CP จำนวน 1 ลูกตอการรับคาที่ขา DS จำนวน 1 บิต ดงั นั้นหากตอ งควบคมุ สถานะท้งั หมด 8 บิตจะตองสรางสัญญาณนากิ าจำนวนท้งั หมด 8 ลูก ฟงชันก shiftOut() ฟงชันก shiftOut() คือฟงกชันที่มีหนาที่ในการเลื่อนบิตขอมูลขนาด 1 บิตซึ่งมีรูปแบบการ เลื่อนได 2 วิธีคือการเลื่อนจากบิตที่อยูในตำแหนงนัยสำคัญสูงสุด หรือ บิตที่อยูตำแหนงนัยสำคัญต่ำ ที่สุด ขอดีของการใชงานฟงกชันนี้คือไมจำเปนตองเขียนคำสั่งควบคุมการทำงานชิฟรีจิสเตอรขึ้นเอง โดยมรี ปู แบบการใชงานเปนดังนี้ รูปแบบ shiftOut(d_pin, d_clock, bit_order, value) พารามิเตอร 1. d_pin คือขาที่ทำหนาที่เปนเอาตพุตที่มีขนาด 1 บิต ซึ่งคือตำแหนงขา DS ของไอซี 74HS595 2. d_clock คือขาที่ทำหนาที่กำเนิดสัญญาณนาิกา ซึ่งคือตำแหนงขา SH_CP ของไอซี 74HS595 3. bit_order คือการกำหนดรูปแบบการเลื่อนบติ ซึ่งกำหนดได 2 รูปแบบคือ 3.1 MSBFIRST คอื กำหนดใหเ ลอ่ื นบติ ทีม่ ีนัยสำคัญสูงสุดกอ น 3.2 LSBFIRST คือกำหนดใหเลอื่ นบติ ทม่ี นี ัยสำคญั ตำ่ สุดกอ น 4. value คอื สถานะของขอ มลู ท่ีถกู เลอ่ื น Q0 – Q7 รปู ท่ี 3 วงจรทดลอง ทม่ี า: ผูเ ขียน
464 ข้นั ตอนการทดลอง 1. ออกแบบวงจรดังรูปที่ 3 เพื่อควบคุมการติดของหลอดแอลอีดีโดยใหติดครั้งละ 1 หลอดเรียงจาก ขวาไปซาย 2. เขยี นโปรแกรมเพ่อื ใหเกิดผลลพั ธ ดงั ทกี่ ลาวไวในข้ันตอนท่ี 1 3. สงั เกตและอธบิ ายสว นของโปรแกรมทเ่ี ขยี นข้ึนอยางละเอยี ด คำอธิบาย ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… 4. ปรับแกโ ปรแกรมเพ่อื ใหก ารทำงานเปลี่ยนเปน หลอดแอลอีดีติดครั้งละ 1 หลอดเรียงจากซา ยไป ขวา 5. สรุป ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………
ใบงานท่ี 12 เรือ่ ง การใชงานอินเทอรรัพท วชิ า ไมโครคอนโทรลเลอรและการประยุกตใชงาน ชื่อ – สกุล …………………………………………… รหัสนักศกึ ษา……………………………………………….. ช่ือ – สกุล ………………………………………….. ชอื่ – สกุล ………………………………………….. รหสั นกั ศกึ ษา……………………………………………….. รหัสนักศึกษา……………………………………………….. วตั ถุประสงค เพอ่ื ใหผเู รยี นมคี วามรแู ละทักษะดงั นี้ 1. เพอื่ เรียนรูตำแหนง ขาบนบอรด Arduino Uno R3 ทส่ี ามารถใชส รางสญั ญาณอนิ เทอร รัพทจ ากอุปกรณภายนอกได 2. เพอื่ เรยี นรูการเขยี นโปรแกรมเพือ่ ใชงานสัญญาณอนิ เทอรร ัพท 3. เพอ่ื ใชโ ปรแกรม Proteus ในการจำลองพฤติกรรมการทำงานของวงจรทดลอง ทฤษฎี การอินเตอรรัพทคือการขัดจังหวะการทำงานหลักของโปรแกรมซึ่งถูกแบงออกเปน 2 ประเภทคือการเกิดอินเตอรรัพทจากภายนอก เชนการเกิดอินเตอรรัพทเนื่องจากการกดสวิตซ และ การเกิดอินเทอรรัพทจากภายใน เชนการเกิดอินเตอรรัพทเนื่องจากไทเมอร โดยใบงานนี้จะอธิบาย การสรางและการเกดิ อินเตอรร พั ทจากภายนอกเพียงเทา นั้น การสรางอินเทอรรัพทที่บอรด Arduino Uno R3 จะสามารถใชงานอินเตอรรัพทจาก ภายนอกได 2 ชนิดคืออินเตอรรัพท int0 ซึ่งถูกติดตั้งไวที่ตำแหนงขา 2 ของบอรด และอินเตอรรัพท int1 ซึ่งถูกติดตั้งไวที่ตำแหนงขา 3 ของบอรด โดยการสรางและใชงานสัญญาณอินเทอรรัพทจาก ภายนอกจำเปน ตองเรียกใชฟงกช ันทีส่ ำคญั ดงั น้ี 1. ฟงกช ัน attachInterrupt() เปนฟงกชันที่ใชสำหรับกำหนดการใหบรกิ ารสัญญาณอินเตอรร ัพท เพ่อื รอเหตุการณของการ เกดิ อินเตอรร ัพทแ ละการเรียกใชชดุ คำสง่ั เม่ือเกดิ การอินเตอรรัพทขนึ้
466 รูปแบบ attachInterrupt(digitalPinToInterrupt(pin), ISR, mode) พารามเิ ตอร 1. pin คือ ตำแหนง ขาท่ใี ชง านอนิ เตอรรพั ท 2. ISR คอื ช่ือของฟง กชนั ทจี่ ะถูกเรียกใชง านเมือ่ เกิดสญั ญาณอินเตอรร พั ท 3. mode คือ รูปแบบของการเกิดอินเตอรที่ขึ้นอยูกับสถานะของตำแหนงขาที่เชื่อมกับ สญั ญาณอนิ เตอรร ัพทแบงออกเปน 4 สถานะดังนี้ 3.1 mode = “LOW” คือ เกิดอินเตอรรัพทเมื่อสถานะของตำแหนงขาที่เชื่อมกับ สญั ญาณอนิ เตอรรพั ทเปน “LOW” 3.2 mode = “CHANGE” คือ เกิดอินเตอรรัพทเมื่อเกิดเหตุการณเปลี่ยนสถานะ ของตำแหนง ขาทเ่ี ชือ่ มกับสัญญาณอนิ เตอรรัพท 3.3 mode = “RISING” คอื เกดิ อนิ เตอรรัพทเ มื่อสถานะของตำแหนงขาท่ีเชื่อมกับ สัญญาณอินเตอรร พั ทเ กดิ การเปล่ียนสถานะจาก “LOW” เปน “HIGH” 3.4 mode = “FALLING” คือ เกิดอินเตอรรัพทเมื่อสถานะของตำแหนงขาที่เชื่อม กับสญั ญาณอนิ เตอรรพั ทเกิดการเปล่ยี นสถานะจาก “HIGH” เปน “LOW” สำหรับ pin หากใชง านบอรด Arduino Uno R3 จะสามารถใชง านได 2 ขาคือตำแหนง ขา 2 สำหรับควบคุมการเกิดสัญญาณอินเตอรรัพท int0 และ ตำแหนงขา 2 สำหรับควบคุมการเกิด สญั ญาณอนิ เตอรรัพท int1 ขน้ั ตอนการทดลอง 1. ออกแบบวงจรโดยเชื่อมสวิตซสำหรบั ตรวจสอบการเกิดอินเทอรรัพท int0 โดยเชื่อมตอที่ตำแหนง ขา 2 และเชอ่ื มแอลอดี ี 1 หลอดทีต่ ำแหนงขา 4 ของบอรด Arduino Uno R3 2. เขยี นโปรแกรมเพื่อใหเ กิดอนิ เทอรรัพทเมื่อมีการสัมผสั สวิตซโ ดยใหแสดงขอความ “--Interrupt--” ท่ี Serial Monitor และสถานะการติด และดบั ของหลอดแอลอีดี 1 ครั้ง 3. สงั เกตและอธบิ ายสวนของโปรแกรมทเี่ ขียนขนึ้ อยางละเอียด
467 คำอธิบาย ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… 4. ปรับแกโปรแกรมเพอ่ื ใหก ารทำงานเปล่ยี นเปน การเกิดอินเทอรรัพทท ่ี int1 5. สรุป ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………
ภาคผนวก ข การตดิ ตั้งและใชง านบอรด Raspberry Pi สำหรบั ควบคมุ อุปกรณภายนอกเบอ้ื งตน
ขอเสียของไมโครคอนโทรลเลอรคือประสิทธิภาพของหนวยประมวลผลที่ต่ำ ถึงแมวาจะ เลือกใชงานตระกูลที่มีประสิทธิภาพสูงสุดแลวก็ตาม ดังนั้นไมโครคอนโทรลเลอรจึงนิยมถูกนำมาใช เพื่อควบคุมการทำงานของอุปกรณภายนอกเพียงเทานั้น โดยไมสามารถใชไมโครคอนโทรลเลอร สำหรับงานที่จำเปนตอ งใชก ำลังการประมวลผลสงู ได เชน การประมวลผลภาพ หรอื วีดีโอ เปน ตน Raspberry Pi (สะกดวา ราดเบอรรี่พาย) คือคอมพิวเตอรขนาดเล็กที่มีขนาดใกลเคียงกับ บอรด Arduino เปนอยางมาก แตมีกำลังการประมวลผลที่สูงกวาบอรด Arduino รวมไปถึง ไมโครคอนโทรลเลอรตระกูลอื่นทั้งหมดเปนอยางมาก (เนื่องจาก Raspberry Pi คือคอมพิวเตอร ในขณะที่ไมโครคอนโทรลเลอรไมถือวาเปนคอมพิวเตอรแตเปนเพียงหนวยประมวลผลขนาดเล็กที่มี ประสิทธิภาพต่ำ ดงั นน้ั จึงสามารถใช Raspberry Pi สำหรับงานท่ีจำเปนตองใชก ำลังการประมวลผล ทส่ี ูงได GPIO รูปท่ี ค.1 ตัวอยา งบอรด Raspberry Pi ที่มา: ผเู ขยี น รูปที่ ค.1 แสดงตัวอยางบอรด Raspberry Pi ซึ่งที่ตัวบอรดจะสังเกตไดวามีตำแหนงขาที่ สามารถนำมาเชื่อมตอกับอุปกรณภายนอกเปนโหมดอินพุต/เอาตพุต เรียกวาขา GPIO ดังตำแหนง อางอิง โดยกอนการใชงานจำเปนตองติดตั้งไลบรารี่ RPi.GPIO ซึ่งเปนไลบรารี่สำหรับภาษาไพธอน กอนจึงจะสามารถใชงานได อยางไรก็ตามหลังจากติดตั้งระบบปฏิบัติการสำหรับบอรดแลวระบบจะ ติดตั้งไลบรารี่ดังกลาวใหโดยอัตโนมัติ ดังนั้นนอกเหนือจากการทำหนาที่เปนคอมพิวเตอรแลวยัง สามารถนำบอรด Raspberry Pi มาประยุกตใชงานเพื่อควบคุมอุปกรณจากภายนอกดังเชน ไมโครคอนโทรเลอรทั่วไปไดเชนกัน อยางไรก็ตามหากผูใชงานจำเปนตองการควบคุมเพียงแคการ
472 ควบคุมสถานะอุปกรณภายนอกที่ใชกำลังประมวลผลไมสูงมาก ผูเขียนแนะนำใหใชบอรด ไมโครคอนโทรลเลอรท ว่ั ไปจะเหมาะสมกวา เนอื่ งจากราคาที่ถูกกวา มาก หากเปรียบเทียบกับชุดคอมพิวเตอรตั้งโตะ Raspberry Pi จะเปรียบเสมือนเคสที่บรรจุ อปุ กรณทางคอมพิวเตอรไวภ ายในเรียบรอยแลวเพียงแตมีขนาดที่เล็กกวาเคสเปนอยา งมาก ดงั นน้ั การ ใชงานจึงจำเปนตองใชรวมกับเมาส แปนพิมพอักขระ และจอแสดงผล รวมไปถึงไมโครเอสดีการด (Micro SD Card เพ่ือใชส ำหรบั ติดตั้งระบบปฏบิ ตั ิการ รูปท่ี ค.2 ชดุ คอมพิวเตอรตั้งโตะ ทใ่ี ช Raspberry Pi แทนเคส ท่ีมา: ผูเขียน รูปที่ ค.2 แสดงชุดคอมพิวเตอรตั้งโตะที่ใช Raspberry Pi แทนเคส ซึ่งการใชงานจะ เหมอื นกบั การใชง านคอมพิวเตอรทวั่ ไป ดงั นน้ั การเขยี นโปรแกรมเพื่อควบคมุ อุปกรณภ ายนอก รวมถึง โปรแกรมทั่วไปสามารถเขียนผานชุดคอมพิวเตอรตั้งโตะที่ใช Raspberry Pi แทนเคสนี้ไดโดยตรงซึ่ง แตกตางจากไมโครคอนโทรลเลอรที่ตองเขียนโปรแกรมผานคอมพิวเตอรกอนที่จะนำคำสั่งที่ผานการ แปลภาษาแลวสง ผา นไปยังบอรดไมโครคอนโทรลเลอร ค.1 การตดิ ต้งั ระบบปฏบิ ัติการสำหรบั Raspberry Pi เนือ่ งจาก Raspberry Pi คอื คอมพิวเตอรชนิดหน่งึ ดงั นัน้ จึงจำเปน ตองติดตงั้ ระบบปฏิบัติการ กอนใชงานซึ่งมีใหเลือกใชงานเปนจำนวนมาก โดยในเอกสารคำสอนเลมนี้ผูเขียนเลือกใช
473 ระบบปฏิบัติการที่ชื่อ Raspbian ซึ่งเปนระบบปฏิบัติที่มีพื้นฐานมาจากระบบปฏิบัติการลินุกซ (Linux ซ่ึงข้ันตอนการตดิ ตั้งเปนดังน้ี ขั้นตอนที่ 1: เตรียมไมโครเอสดีการดเพื่อเชื่อมตอกับเครื่องคอมพิวเตอรเพื่อทำการดาวโหลด ระบบปฏิบัตกิ าร Raspbian ข้นั ตอนท่ี 2: ที่หนา เว็บเพจ https://www.raspberrypi.org/downloads/ ใหเ ลือก NOOBS ดังรปู รูปท่ี ค.3 เลอื ก NOOBS เพื่อเตรยี มดาวโหลดระบบปฏิบัติการ Raspbian ทีม่ า: ผเู ขยี น ข้นั ตอนท่ี 3: หลงั จากเลอื ก NOOBS แลวจะมใี หเ ลอื กอกี 2 รนุ โดยใหเลอื ก NOOBS Offline and Network install และใหเ ลือกไฟลนามสกุล .ZIP รปู ที่ ค.4 เลือก NOOBS Offline and Network install เพือ่ เตรยี มดาวโหลดระบบปฏิบตั ิการ Raspbian ทมี่ า: ผูเขียน
474 ขั้นตอนที่ 4: ทำการแตกไฟลที่ได และใหคัดลอกขอมูลทั้งหมดภายในโฟลเดอรไปไวในสวนรากของ ไมโครเอสดกี ารด ขั้นตอนที่ 5: นำไมโครเอสดีการดออกจากเครื่องคอมพิวเตอรเพื่อไปเชือ่ มตอกับ Raspberry PI เพื่อ เตรยี มทำการติดต้งั ในขั้นตอนถดั ไป ขั้นตอนที่ 6: เชื่อมตอเมาส แปนพิมพอักขระ รวมถึงไฟเลี้ยงสำหรับบอรด Raspberry PI ที่บรรจุ ไมโครเอสดีการด ท่มี ขี อมลู ระบบปฏบิ ตั ิการ Raspbian อยภู ายในและดำเนินการตามข้ันตอนตอไป ข้ันตอนท่ี 7: เมอื่ เปดระบบจะพบหนา จอใหเ ลือกติดตั้งระบบปฏบิ ัตกิ ารดังรูปที่ ค.5 รปู ท่ี ค.5 หนา จอเริ่มตนสำหรบั การติดต้ังระบบปฏบิ ตั กิ าร ทีม่ า: ผูเขยี น ขั้นตอนที่ 8: เลือก Rasbian Full (RECOMMENDED) และกดที่ “Install” ระบบจะทำการติดตั้ง ระบบปฏิบตั กิ าร Raspbian หลงั จากนนั้ จะมขี น้ั ตอนใหด ำเนินการอีกเล็กนอยเชน เลือกสญั ญาณไวไฟ ต้งั คา ภาษา เปนตน หลังจากเสร็จสิ้นจะไดผลลัพธด ังรูปท่ี ค.6 รูปท่ี ค.6 ระบบปฏบิ ัติการพรอมใชง านหลังผา นขนั้ ตอนการตดิ ตงั้ ทีม่ า: ผเู ขียน
475 ค.2 แนะนำการใชงานภาษาไพธอนเบื้องตน สำหรบั Raspberry Pi ในหัวขอนี้กลาวถึงการใชงานภาษาไพธอน (Python) เบื้องตนผานระบบปฏิบัติการ Raspbian โดยจะกลาวเพียงการใชงาน และโครงสรางพื้นฐานเพียงเทานั้น สำหรับเนื้อหาเชิงลึก เกี่ยวกับภาษาไพธอนผูอานสามารถศึกษาไดจากสือ่ การสอนแหลงอื่นที่ถูกเผยแพรเปน จำนวนมากใน ปจ จุบัน ภาษาไพธอนมีเปนแกรมภาษาหนึ่งที่นิยมถูกนำมาใชงานรว มกับ Raspberry Pi เพื่อควบคุม ระบบงานตา งๆ โดยโครงสรางภาษาทสี่ ำคัญที่แตกตางจากภาษาซีคือภาษาไพธอนจะไมมีการกำหนด ชนิดขอมูลสำหรับตัวแปร และไมใชปกกาสำหรับกำหนดขอบเขตงาน โดยจะใชการยอหนาแทนการ กำหนดขอบเขตของคำสง่ั แทน ตวั อยา งคำสง่ั เง่อื นไขของภาษาซี ตัวอยางคำสัง่ เงอื่ นไขของภาษาไพธอน int i = 5; i=5 if(i > 2){ if i > 5: printf(“Hello a”); print(“Hello a”); printf(“Hello b”); print(“Hello b”); }else{ else: printf(“Hello c”); print(“Hello c”); printf(“Hello d”); print(“Hello d”); } print(“Hello e”); printf(“Hello e”); รปู ท่ี ค.7 ตวั อยางเปรียบเทยี บความแตกตางของการใชตัวแปร และคำสั่งเง่ือนไขระหวางภาษาซแี ละภาษาไพธอน ท่ีมา: ผูเขยี น รูปที่ ค.7 แสดงตัวอยางเปรียบเทียบความแตกตางของการใชตัวแปร และคำสั่งเงื่อนไข ระหวางภาษาซีและภาษาไพธอน โดยทง้ั สองโปรแกรมนมี้ กี ารทำงานที่เหมือนกัน แตค วามแตกตางอยู ที่โครงสรางของภาษา เชนตัวแปรภาษาซีตองกำหนดชนิดขอมูล แตภาษาไพธอนไมตองกำหนดเปน ตน การรันคำสั่งโปรแกรมภาษาไพธอนสามารถดำเนินการไดหลายวิธี เชนรันแบบครั้งละ 1 คำสั่งผาน Terminal, รันครั้งละ 1 คำสั่งผานโปรแกรม Thonny Python IDE หรือรันในรูปแบบ สคริปโปรแกรมผานโปรแกรมดงั กลาว เปนตน สำหรับเอกสารคำสอนเลมนี้จะอธิบายเพียงวิธกี ารรนั แบบสครปิ โปรแกรมโดยมีขน้ั ตอนเปน ดงั น้ี
476 ขนั้ ตอนท่ี 1: เปดโปรแกรม Thonny Python IDE โดยเลอื กท่ี Programming Thonny Python IDE รูปที่ ค.8 การเปด โปรแกรม Thonny Python IDE ที่มา: ผเู ขยี น ขั้นตอนที่ 2: เขียนสคริปโปรแกรมและบันทึกไฟลที่มีนามสกุลเปน “.py” โดยที่จากรูปเปนไฟลชื่อ “test.py” รูปท่ี ค.9 ตวั อยา งสครปิ ภาษาไพธอน ท่ีมา: ผเู ขยี น ข้นั ตอนที่ 3: ทดสอบรนั สครปิ โปรแกรมโดยกดทค่ี ำสั่ง “Run” ผลลัพธแ สดงดังรูปท่ี ค.10
477 รปู ที่ ค.10 ตวั อยางผลรันสครปิ ภาษาไพธอน ทีม่ า: ผเู ขียน รูปที่ ค.10 แสดงตัวอยางผลรันสคริปภาษาไพธอนจากรูปที่ ค.9 ซึ่งผลรันแสดงขอความวา “Big” ซึ่งจะทำงานในกรณีที่เงื่อนไขเปนจริงและ “GoodBye” ซึ่งเปนคำสั่งที่ถูกนำมาแสดงเสมอ เน่อื งจากเปนคำสั่งท่ีอยนู อกเง่ือนไข ค.3 ตัวอยา งภาษาไพธอนสำหรบั ควบคมุ อุปกรณอ ิเลก็ ทรอนกิ ส หัวขอนี้จะแสดงตัวอยางการเขียนโปรแกรมภาษาไพธอนบน Raspberry Pi เพื่อใชสำหรับ ควบคุมอุปกรณอิเล็กทรอนิกสผานขา GPIO ซึ่งสามารถใชงานไดทั้งสถานะแบบอินพุต หรือเอาตพุต โดยมที งั้ หมด 3 ตัวอยางดงั น้ี ตัวอยางท่ี 1 โปรแกรมทดสอบการส่งั ใหห ลอดแอลอดี มี ีสถานะเปลง แสง การทำงาน: หลอดแอลอดี ีมสี ถานะเปลงแสงผานการควบคุมโดย Raspberry Pi 1. สวนวงจรทดลอง รูปที่ ค.11 วงจรทดลองใหแอลอดี ีมสี ถานะเปลงแสงควบคุมโดย Raspberry Pi ทม่ี า: ผูเขยี น คำอธิบาย: ตอหลอดแอลอีดีเขากับตำแหนงขาที่ GPIO 4 ของ Raspberry Pi โดยจากภาพหาก ตอ งการใหห ลอดแอลอีดมี ีสถานะเปลงแสงตองสง สถานะ “HIGH” ผานขา GPIO 4
478 2. สว นโปรแกรม 1 import RPi.GPIO as GPIO 2 GPIO.setmode(GPIO.BCM) 3 led = 4 4 GPIO.setup(led, GPIO.OUT) 5 GPIO.output(led, GPIO.HIGH) คำอธิบาย: เริ่มจากการนำเขาไลบรารี GPIO และกำหนดใหตำแหนงขา GPIO 4 ทำหนาที่เปนเอาตพุต กอ นทจ่ี ะสงสถานะ “HIGH” ออกจากตำแหนง ขาดังกลา วเพอ่ื ใหหลอดแอลอีดมี ีสถานะเปลง แสง ตัวอยา งที่ 2 โปรแกรมไฟกระพรบิ จากหลอดแอลอีดี 1 หลอด การทำงาน: หลอดแอลอดี ีจะมสี ถานะของการตดิ -ดับสลับกันในทุก 1 วนิ าที 1. สว นวงจรทดลอง เชอื่ มตออุปกรณภายนอก เขากับ Raspberry Pi ดงั ตวั อยางที่ 1 2. สว นโปรแกรม 1 import RPi.GPIO as GPIO 2 import time 3 GPIO.setmode(GPIO.BCM) 4 led = 4 5 GPIO.setup(led, GPIO.OUT) 6 while 1: 7 GPIO.output(led, GPIO.HIGH) 8 time.sleep(0.8) 9 GPIO.output(led, GPIO.LOW) 10 time.sleep(0.8) คำอธิบาย: ในสว นของการกำหนดขา GPIO จะมขี นั้ ตอนเหมือนกับตวั อยางท่ี 1 และมีการเพ่มิ การนำเขา ไลบรารี time เพือ่ ใชส ำหรบั การเรียกใชงานฟง กชนั สำหรบั หนว งเวลา อยางไรก็ตามเน่อื งจากตัวอยาง น้ีกำหนดใหห ลอดแอลอดี ีมีสถานะ ติด – ดับ สลบั กนั ไปไมม ที ่สี ้นิ สดุ จงึ ตองกำหนดการควบคุมสถานะ ทั้งสองไวในวงวน (while ที่มีการหนวงเวลาทุก 0.8 วินาทีสำหรับการสลับสถานะ เนื่องจากภาษา ไพธอนไมม ฟี ง กชนั สำเร็จรปู สำหรบั สรางวงวนแบบไมม ีทส่ี ิน้ สดุ ดังโปรแกรม Arduino IDE
479 ตัวอยางท่ี 3 ควบคุมหลอดแอลอดี ีดวยสวติ ซ การทำงาน: หลอดแอลอีดีจะมสี ถานะของการติด-ดบั ขึ้นอยูก บั การสบั สวติ ซ 1. สว นวงจรทดลอง รปู ท่ี ค.12 วงจรทดลองควบคุมหลอดแอลอีดดี วยสวิตซโ ดย Raspberry Pi ที่มา: ผเู ขยี น คำอธิบาย: ตอ หลอดแอลอดี ีเขากับตำแหนงขาที่ GPIO 4 ของ Raspberry Pi ในลกั ษณะเดียวกันกับ ตัวอยางท่ี 1 และ 2 โดยเพ่มิ การตอสวติ ซเขากบั ตำแหนงขา GPIO 3 ของ Raspberry Pi 2. สว นโปรแกรม 1 import RPi.GPIO as GPIO 2 import time 3 GPIO.setmode(GPIO.BCM) 4 led = 4 5 sw = 3 6 GPIO.setup(led, GPIO.OUT) 7 GPIO.setup(sw, GPIO.IN, pull_up_down=GPIO.PUD_UP) 8 while True: 9 if GPIO.input(sw): 10 GPIO.output(led, GPIO.HIGH) 11 else: 12 GPIO.output(led, GPIO.LOW)
480 คำอธิบาย: ในสวนของการกำหนดขา GPIO 4 สำหรับควบคุมหลอดแอลอีดีจะมีขั้นตอนเหมือนกับ ตัวอยางที่ 1 และเพิ่มการกำหนดขา GPIO 3 ทำหนาที่เปนอินพุตแบบ Pull-up ที่ซึ่งมีสถานะของ สัญญาณอยทู ตี่ ำแหนงขานี้เสมอในกรณที ีย่ งั ไมมีการกดสวติ ซ ในทางกลับกนั ท่ีตำแหนงขา GPIO 3 จะ มีสถานะ “LOW” เม่อื มีการกดปุม ดังน้ันจากโปรแกรมขางตน หลอดแอลอีดีจะมีสถานะเปลงแสงเม่ือ มีการกดสวิตซ และมสี ถานะดับหลงั ยกเลกิ การกดสวติ ซ
ภาคผนวก ค เฉลยคำถามทายบท
บทท่ี 1 1. หนว ยประมวลผลขนาดเลก็ ทน่ี ำไปใชส ำหรบั ควบคุมการทำงานอปุ กรณอเิ ลก็ ทรอนิกสเพ่อื ชว ยลด ความซับซอนของวงจร ผา นการเขยี นโปรแกรม 2. mcs-51, PIC, AVR 3. AVR 4. Arduino IDE 5. ซพี ลสั พลสั 6. 2 วิธี 7. ตรวจสอบไวยากรณเ บื้องตน บทที่ 2 1. setup() และ loop() 2. setup() ดำเนินการเพยี งรอบเดยี ว สวน loop() ทำงานลกั ษณะวนซำ้ ไมม ีท่ีสนิ้ สดุ 3. เปนคำส่งั สำหรบั สื่อสารระหวางบอรด Arduino และเคร่อื งคอมพิวเตอรท่ีเชอื่ มตอกนั อยูแบบ อนกุ รม 4. ตวั แปรโกลบอลคือตวั แปรที่ถกู ประกาศภายนอกฟงกช ันซ่งึ นยิ มถูกประกาศไวส วนบนของ โปรแกรมเพ่ือใหสามารถใชง านตัวแปรดงั กลาวนไ้ี ดทุกสวนของโปรแกรม ซง่ึ แตกตา งกบั ตวั แปรโลคอ ลเน่อื งจากตัวแปรโลคอลจะถูกประกาศไวภ ายในขอบเขตที่จำกัด เชนในฟง กชนั หนึ่ง และสามารถใช งานคาตวั แปรไดเ พียงเฉพาะในขอบเขตดงั กลา วเทา นัน้ 5. คา ทไ่ี มส ามารถเปลยี่ นแปลงคา ไดอีก 6. ตัวแปรทีส่ ามารถเก็บขอ มูลท่เี ปนชนดิ เดียวกันไดม ากกวา 1 คา โดยการเขาถึงขอมลู แตละคา สามารถใชตำแหนงดรรชนเี ปนตวั เขาถึง 7. 011002 8. 10112 9. int a = 0; void setup() { Serial.begin(9600); for(a = 1; a <= 10; a++){ if(a != 6){ Serial.println(a);
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
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 1 - 50
- 51 - 100
- 101 - 150
- 151 - 200
- 201 - 250
- 251 - 300
- 301 - 350
- 351 - 400
- 401 - 450
- 451 - 500
- 501 - 512
Pages: