ขอบคุณรูปภาพจาก lastminuteengineers.com
โครงงานในปัจจุบันมักเน้นไปที่ระบบกลไกต่าง ๆ การขยับ การเลื่อน การเดิน การวิ่ง เพราะการเคลื่อนไหวต่าง ๆ ทำให้บุคคลทั่วไปทำความเข้าใจโครงงานได้ง่าย เป็นตัวชูโครงงานน่าสนใจมากยิ่งขึ้น ทั้งนี้ส่วนต่าง ๆ ที่ขยับได้มักมาจากอุปกรณ์ที่เรียกว่า มอเตอร์ ซึ่งทำหน้าที่เปลี่ยนพลังงานไฟฟ้าให้เป็นพลังงานกล ทั้งนี้มอเตอร์มีหลายชนิด เช่น เซอร์โวมอเตอร์ สเต็ปมอเตอร์ แต่ในบทความนี้เราจะพูดถึงมอเตอร์ที่ทำงานง่ายที่สุด และใช้งานกันมากที่สุด นั่นคือ มอเตอร์ดีซี
สนับสนุนบทความดี ๆ แบบนี้ได้ โดยเลือกสั่งซื้อสินค้ากับเรา |
|
ราคา 78.00 บาท |
L9110 Dual Channel Motor Driver Module ราคา 74.00 บาท |
30A Motor Driver VNH2SP30 โมดูลขับมอเตอร์ 30A ราคา 120.00 บาท |
DRV8833 Motor Driver Module โมดูลขับมอเตอร์ ราคา 54.00 บาท |
โมดูลขับสัญญาณ 15A 400W MOSFET Switch Drive Module ราคา 74.00 บาท |
|
มอเตอร์ดีซีประกอบด้วยขั้วต่อใช้งาน 2 ขั้ว หากจ่ายไฟบวกเข้าที่ขั้วหนึ่ง และจ่ายไฟลบเข้าขั้วที่เหลือ จะทำให้มอเตอร์หมุนไปทิศทางหนึ่ง แต่เมื่อสลับขั้วการจ่ายไฟ จะทำให้มอเตอร์หมุนในทิศทางตรงกันข้าม
รูปที่ 1 มอเตอร์หมุนตามเข็มนาฬิกา เมื่อจ่ายไฟบวกเข้าที่ขั้วบนและจ่ายไฟลบเข้าที่ขั้วล่าง
รูปที่ 2 มอเตอร์หมุนทวนเข็มนาฬิกา เมื่อจ่ายไฟบวกเข้าที่ขั้วล่างและจ่ายไฟลบเข้าที่ขั้วบน
การกลับขั้วจ่ายไฟให้มอเตอร์นี้เอง ที่เป็นหัวใจสำคัญของการควบคุมทิศทางการหมุนของมอเตอร์ดีซี
มอเตอร์ดีซีมีอยู่หลากหลายรุ่น หลากหลายแบบ แต่ละรุ่นแต่ละแบบจะมีคุณสมบัติที่แตกต่างกันไป แต่คุณสมบัติของมอเตอร์ที่ผู้ออกแบบวงจรควบคุมต้องทราบ มีดังนี้
มอเตอร์ดีซีที่จำหน่ายอยู่ในท้องตลาดใช้แรงดันไฟฟ้าที่แตกต่างกัน ผู้ซื้อจำเป็นต้องทราบว่าตนเองต้องการใช้มอเตอร์ดีซีที่แรงดันไฟฟ้าเท่าไร ซึ่งการเลือกมอเตอร์ดีซีว่าต้องใช้แรงดันไฟฟ้าเท่าไร ให้พิจารณาจากแหล่งจ่ายไฟ เช่น หากใช้แหล่งจ่ายไฟเป็นแบตเตอรี่ 12V ก็ควรจะใช้มอเตอร์ดีซี 12V หรือใช้ไฟจากถ่าน AA 2 ก้อน ต่ออนุกรมกัน ได้แรงดันไฟฟ้า 3V ก็ควรใช้มอเตอร์ดีซี 3V ด้วย
ทั้งนี้มอเตอร์ดีซีที่มีจำหน่ายในท้องตลาดมีแรงดัน 3V 6V และ 12V ให้เลือกเท่านั้น หากแหล่งจ่ายไฟไม่ได้จ่ายแรงดันตามที่มอเตอร์ดีซีมีจำหน่าย สามารถใช้มอเตอร์ดีซีที่มีแรงดันต่ำกว่าแหล่งจ่าย หรือสูงกว่าแหล่งจ่ายได้ โดยควรคำนึงถึงข้อควรระวังดังนี้
เป็นไปได้ควรใช้แรงดันไฟฟ้าจากแหล่งจ่ายให้เท่ากับแรงดันของมอเตอร์ดีซี
กระแสไฟฟ้าที่มอเตอร์ดีซีใช้ จะระบุไว้ในสเปคของมอเตอร์ ซึ่งกระแสไฟฟ้าของมอเตอร์จะถูกนำมาใช้คำนวณเพื่อเลือกแหล่งจ่ายไฟ โดยมอเตอร์ใช้กระแสไฟฟ้าเท่าไร จะต้องเลือกแหล่งจ่ายไฟที่จ่ายกระแสได้มากกว่ามอเตอร์ เช่น มอเตอร์ใช้กระแสประมาณ 300mA ควรเลือกแหล่งจ่ายที่จ่ายกระแสไฟฟ้าได้สูงกว่า
กรณีใช้แหล่งจ่ายไฟที่เป็นแบตเตอรี่ กระแสไฟฟ้าที่มอเตอร์ใช้จะส่งผลต่อระยะเวลาของการจ่ายไฟของแบตเตอรี่ หากมอเตอร์ใช้กระแสไฟฟ้ามาก จะทำให้แบตเตอรี่หมดเร็วมากขึ้น กลับกันหากใช้มอเตอร์ที่ใช้กระแสไฟฟ้าน้อย ใช้กับแบตเตอรี่ลูกเดิม ก็จะทำให้แบตเตอรี่จ่ายไฟได้นานขึ้น ส่งผลให้ใช้งานได้ยาวนานมากยิ่งขึ้น
นอกจากกระแสไฟฟ้าของมอเตอร์จะถูกใช้เลือกแหล่งจ่ายแล้ว ยังถูกใช้ในการเลือก หรืออกแบบชุดขับมอเตอร์ด้วย โดยการเลือกชุดขับมอเตอร์ จะต้องเลือกชุดขับที่ทนกระแสได้สูงกว่ากระแสไฟฟ้าที่มอเตอร์ใช้ เช่น มอเตอร์ใช้กระแสไฟฟ้าประมาณ 300mA จึงเลือกชุดขับมอเตอร์ที่ทนกระแสได้ 600mA ต่อเนื่อง เป็นต้น
การควบคุมมอเตอร์ทางเดียว คือ การควบคุมมอเตอร์ให้หมุน หรือไม่หมุน เท่านั้น การควบคุมแบบทางเดียวนี้เป็นการควบคุมที่ง่ายที่สุด ทางครั้งไม่จำเป็นต้องใช้วงจรอิเล็กทรอนิกส์เลย เช่น หากต้องการเปิดปั้มน้ำ แค่เสียบปลั๊กปั้มน้ำ ก็ทำให้ปั้มน้ำทำงานได้แล้ว
การควบคุมมอเตอร์ทางเดียวโดยใช้วงจรอิเล็กทรอนิกส์ ทำได้โดยใช้การควบคุมการไหลของกระแสไฟฟ้า โดยควบคุมให้กระแสไฟฟ้าไหลผ่านมอเตอร์ (มอเตอร์หมุน) หรือควบคุมให้กระแสไฟฟ้าไม่ไหลผ่านมอเตอร์ (มอเตอร์ไม่หมุน) โดยอุปกรณ์ที่มักใช้ควบคุมการไหลของกระแสไฟฟ้าแบ่งเป็น 2 ประเภท คือ ใช้รีเลย์ และใช้อุปกรณ์สารกึ่งตัวนำ
ทำได้โดยต่อไฟจากแหล่งจ่ายไฟเข้าที่ขา COM ของรีเลย์ แล้วต่อขา NO หรือ NC เข้ากับมอเตอร์ เมื่อรีเลย์ตัด หรือมีการจ่ายไฟให้รีเลย์ ก็จะทำให้หน้าคอนเเทคของรีเลย์เปลี่ยนทิศทาง ทำให้ควบคุมการไหลของกระแสไฟฟ้าที่เข้ามอเตอร์ได้
รูปที่ 4 การใช้รีเลย์ควบคุมมอเตอร์อย่างง่าย
จากรูปที่ 4 เมื่อกดที่สวิตซ์ SW1 ทำให้รีเลย์ทำงาน แล้วส่งผลให้หน้าคอนเเทคของรีเลย์เปลี่ยนจาก NC มาเป็น NO ส่งผลให้กระแสไฟฟ้าจากแบตเตอรี่ 12V ไหลจากขั้วบวก ผ่านหน้าคอนเทครีเลย์ ไปยังมอเตอร์ไหลออกจากมอเตอร์เข้าที่ขั้วลบของแบตเตอรี่ ส่งผลให้มอเตอร์หมุน และเมื่อปล่อยสวิตซ์ SW1 ทำให้รีเลย์ไม่ทำงาน หน้าคอนเเทคของรีเลย์จึงกลับมาที่ NC ทำให้กระแสไฟฟ้าไหลผ่านรีเลย์ไม่ได้ ไม่มีกระแสไฟฟ้าไหลผ่านมอเตอร์ ส่งผลให้มอเตอร์ค่อย ๆ ลดความเร็วลงจนหยุดหมุนในที่สุด
การใช้งานจริง รีเลย์จะถูกควบคุมด้วยวงจรส่วนควบคุม โดยอาจจะเป็นไมโครคอนโทรลเลอร์ บอร์ด Arduino PIC STM8 STM32 หรืออาจจะเป็นวงจรอิเล็กทรอนิกส์ และมักใช้โมดูลรีเลย์สำเร็จรูป รูปวงจรต่อใช้งานจริงจึงเป็นดังรูปที่ 5
รูปที่ 5 การต่อบอร์ด Arduino Uno R3 เพื่อควบคุมมอเตอร์ทางเดียวด้วยรีเลย์
จากรูปที่ 5 วงจรส่วนควบคุมใช้บอร์ด Arduino Uno R3 ต่อรีเลย์เข้ากับช่อง D2 การสั่งงานให้มอเตอร์หมุน หรือหยุดหมุน ทำได้โดยควบคุมลอจิกที่ช่อง D2 (ให้เป็นลอจิก 0 หรือ 1)
การเลือกใช้รีเลย์ต้องดูกระแสที่รีเลย์ทนไหวร่วมกับกระแสที่มอเตอร์ใช้ โดยจะต้องเลือกรีเลย์ที่ทนกระแสได้มากกว่าที่มอเตอร์ใช้ เช่น มอเตอร์ใช้กระแสประมาณ 5A ควรใช้รีเลย์ 10A หากใช้รีเลย์ต่ำกว่า 5A หรือ 5A พอดี มีโอกาสที่ในอนาคตหน้าคอนเเทคของรีเลย์จะละลายจนรีเลย์ไม่สามารถใช้งานอีกต่อไป
อุปกรณ์สารกึ่งตัวนำที่นิยมนำมาใช้ควบคุมมอเตอร์ มีด้วยกัน 2 ชนิด คือ ทรานซิสเตอร์ และมอเฟส โดยมีวงจรต่อใช้งานที่คล้ายกันมาก วงจรควบคุมมอเตอร์ทางเดียวด้วยทรานซิสเตอร์ และมอเฟสแสดงดังรูปที่ 6 และรูปที่ 8
รูปที่ 6 วงจรขับมอเตอร์ทางเดียวด้วยทรานซิสเตอร์
จากรูปที่ 6 วงจรขับมอเตอร์ทางเดียวด้วยทรานซิสเตอร์ ได้ใช้ทรานซิสเตอร์เป็นสวิตซ์อิเล็กทรอนิกส์ โดยสัญญาณ INPUT จะมาจากวงจรส่วนควบคุม (เช่น บอร์ด Arduino) เมื่อวงจรส่วนควบคุมจ่ายลอจิก 1 มา ทำให้ทรานซิสเตอร์ทำงาน แล้วยอมให้กระแสไฟฟ้าไหลจากขา C ไปหาขา E ได้ ทำให้มีกระแสไหลผ่านมอเตอร์ ส่งผลให้มอเตอร์หมุน และเมื่อวงจรส่วนควบคุมจ่ายลอจิก 0 มาที่ INPUT ทำให้ทรานซิสเตอร์หยุดการทำงาน ส่งผลให้กระแสไฟฟ้าไหลจากขา C มาขา E ไม่ได้ กระแสไฟฟ้าหยุดไหลผ่านมอเตอร์ ทำให้มอเตอร์ค่อย ๆ หมุนช้าลงจนหยุดหมุนในที่สุด
คุณสมบัติที่สำคัญของทรานซิสเตอร์ คือ ใช้กระแสไฟฟ้าในการควบคุม หมายความว่า ยิ่งอุปกรณ์ที่ต้องการควบคุม (ในบทความนี้คือมอเตอร์) ใช้กระแสมากเท่าไร กระแสไฟฟ้าที่ขา INPUT ยิ่งต้องเพิ่มมากยิ่งขึ้น เพื่อให้กระแสไหลผ่านทรานซิสเตอร์ได้เต็มที่ และให้มอเตอร์หมุนได้เต็มที่ ดังนั้นการใช้งานจริงมักจะมีวงจรขับทรานซิสเตอร์เพิ่มขึ้นมาอีกชั้นหนึ่ง เนื่องจากไมโครคอนโทรลเลอร์จ่ายกระแสไฟฟ้าได้ไม่มาก (บอร์ด Arduino หรือไมโครคอนโทรลเลอร์ตะกูล AVR ให้กระแสออกขา GPIO ได้สูงสุดแค่ 20mA) การนำไมโครคอนโทรลเลอร์ไปต่อเข้าที่ขา INPUT โดยตรง จึงอาจทำให้ไมโครคอนโทรลเลอร์พังเสียหายได้
ทรานซิสเตอร์แต่ละเบอร์มีอัตราการทนกระแสไฟฟ้าไหลผ่านต่างกัน ซึ่งสามารถดูได้จาก Datasheet การเลือกบอร์ดทรานซิสเตอร์ ให้เลือกเป็นชนิด NPN (ในวงจรใช้ทรานซิสเตอร์ NPN) ที่มีอัตราทนกำลังไฟฟ้าขา C (IC) มากกว่ากระแสที่มอเตอร์ใช้ เช่น มอเตอร์ใช้กระแสประมาณ 300mA เลือกใช้ทรานซิสเตอร์เบอร์ BD139 ที่ทนกระแสขา C ได้ 1.5A กรณีมอเตอร์ใช้กระแสสูงกว่า 1A แนะนำให้ติดฮีทซิงค์ระบายความร้อนให้ทรานซิสเตอร์ด้วย
รูปที่ 7 ตาราง Absolute maximum ratings ของทรานซิสเตอร์ BD139
รูปที่ 8 วงจรขับมอเตอร์ทางเดียวด้วยมอสเฟส
จากรูปที่ 8 วงจรขับมอเตอร์ทางเดียวด้วยมอสเฟส มีลักษณะวงจรคล้ายกับแบบทรานซิสเตอร์ แตกต่างที่มีตัวต้านทานต่อจากขา G ลงกราวด์ (ขั้วลบ) เพื่อไม่ให้มีกระแสไฟรั่วไหล หลักการคือเมื่อมีแรงดันไฟฟ้ามากพอมาจ่ายเข้าที่ขา G มอสเฟสจะยอมให้มีกระแสไหลผ่านจากขา D ไปยังขา S ทำให้มีกระแสไฟฟ้าไหลผ่านมอเตอร์ ทำให้มอเตอร์หมุน แต่หากแรงดันไฟฟ้าเป็น 0 หรือแรงดันไฟฟ้าไม่มากพอ จะทำให้มอสเฟสไม่ทำงาน ทำให้กระแสไฟฟ้าไหลจากขา D ไปยังขา S ไม่ได้ มอเตอร์ไม่มีกระแสไหลผ่าน ส่งผลให้มอเตอร์ค่อย ๆ หมุนช้าลง จนหยุดหมุนในที่สุด
คุณสมบัติที่สำคัญของมอสเฟส คือ ใช้แรงดันไฟฟ้าในการทำงาน โดยมอสเฟสเบอร์เก่า ๆ มักใช้แรงดันไฟฟ้า 12V ในการทำงาน หากแรงดันไฟฟ้าไม่ถึงช่วง 12V จะทำให้มอสเฟสไม่ทำงาน ซึ่งจะเป็นปัญหากับวงจรส่วนควบคุม เนื่องจากวงจรส่วนควบคุมที่ใช้ไมโครคอนโทรลเลอร์ใช้แรงดันไฟฟ้า 5V เท่านั้น การนำขาจากไมโครคอนโทรลเลอร์มาต่อเข้ากับมอสเฟสโดยตรง จะทำให้มอสเฟสไม่ทำงานเนื่องจากแรงดันไม่มากพอ วิธีแก้ไขคือเลือกมอสเฟสที่ใช้แรงดันไฟฟ้า 5V หรือเพิ่มวงจรไดร์มอสเฟสขึ้นมาอีกชั้นหนึ่ง โดยอาจจะใช้ทรานซิสเตอร์ หรือออปโต้คัปเปลอร์มาช่วย
นอกจากแรงดันแล้ว สิ่งที่ต้องพิจารณาร่วมด้วยคือกระแสสูงสุดที่มอสเฟสสามารถทนได้ โดยจะต้องเลือกมอสเฟสที่ทนกระแสได้สูงกว่ากระแสที่มอเตอร์ใช้ ตัวอย่างการดูว่ามอสเฟสทนกระแสได้สูงสุดเท่าไร ให้ดูใน Datasheet ตาราง ABSOLUTE MAXIMUM RATINGS ในส่วนของ ID
รูปที่ 9 ตาราง Absolute maximum ratings ของมอสเฟตเบอร์ IRFZ44
รูปที่ 8 วงจรขับมอเตอร์ทางเดียวด้วยมอสเฟสไดร์ด้วยทรานซิสเตอร์
จากรูปที่ 8 วงจรขับมอเตอร์ทางเดียวด้วยมอสเฟสไดร์ด้วยทรานซิสเตอร์ ใช้แก้ปัญหาวงจรส่วนควบคุมไม่สามารถควบคุมมอสเฟสได้ จึงใช้ทรานซิสเตอร์เข้ามาช่วยขับมอสเฟสแทน เนื่องจากมอสเฟสใช้กระแสไฟฟ้าน้อยมาก ดังนั้นการใช้ทรานซิสเตอร์ตัวเล็ก ๆ มาช่วยขับจึงเพียงพอแล้ว หลักการคือ เมื่อวงจรส่วนควบคุมปล่อยลอจิก 0 มาที่จุด INPUT ทรานซิสเตอร์ไม่ทำงาน ส่งผลให้แรงดันไฟฟ้าจากแบตเตอรี่ 12V ไหลผ่านตัวต้านทานเข้าที่ขา G ของมอสเฟส ส่งผลให้มอสเฟสทำงาน กระแสไฟฟ้าไหลผ่านมอเตอร์เข้าขา D ของมอสเฟส และออกขา S ของมอสเฟส กระแสไฟฟ้าไหลได้ ทำให้มอเตอร์หมุน และเมื่อวงส่วนควบคุมส่งลอจิก 1 มา ทำให้ทรานซิสเตอร์ทำงาน กระแสไฟฟ้าที่เดิมไหลเข้ามอสเฟส มาไหลเข้าทรานซิสเตอร์แทน ทำให้แรงดันขา G เทียบกับขา S ของมอสเฟสใกล้เคียง 0V ทำให้มอสเฟสไม่ทำงาน กระแสไฟฟ้าจากมอเตอร์ไม่สามารถไหลผ่านมอสเฟสได้ ส่งผลให้มอเตอร์ค่อย ๆ หมุนช้าลง จนหยุดหมุนในที่สุด
กรณีใช้รีเลย์ การควบคุมความเร็วไม่สามารถควบคุมที่รีเลย์ได้ จะต้องใช้วงจรควบคุมความเร็วมอเตอร์แยกออกมา บอร์ดควบคุมความเร็วมอเตอร์สำเร็จรูป มีลักษณะดังรูปที่ 9 และรูปที่ 10
รูปที่ 9 12-40V 10A PWM DC Motor Speed Controller
รูปที่ 10 6-28VDC 2.5A PWM Motor Speed Controller
กรณีใช้การควบคุมด้วยทรานซิสเตอร์-มอสเฟส สามารถใช้สัญญาณ PWM ส่งออกไปที่ขาอินพุตของวงจรขับมอเตอร์ได้เลย
ทำได้โดยแก้วงจร โดยสลับขั้วต่อมอเตอร์ที่ต่อกับวงจรขับมอเตอร์
การควบคุมมอเตอร์สองทิศทาง คือการควบคุมมอเตอร์ที่สามารถควบคุมทิศทางการหมุนได้ โดยวงจรควบคุมมอเตอร์ที่ควบคุมทิศทางได้ เรียกว่า H-Bridge
H-Bridge คือแนวคิดการควบคุมการไหลของกระแสไฟฟ้าที่ไหลเข้าขั้วของมอเตอร์ โดยแนวคิดของ H-Bridge ทำความเข้าใจได้โดยใช้สวิตซ์ควบคุมการไหลของกระแส ดังนี้
รูปที่ 11 แสดงทิศทางการไหลของกระแสเมื่อต้องการให้มอเตอร์หมุนตามเข็มนาฬิกา
รูปที่ 12 แสดงทิศทางการไหลของกระแสเมื่อต้องการให้มอเตอร์หมุนทวนเข็มนาฬิกา
จากรูปที่ 11 เมื่อกดที่สวิตซ์ SW1 และ SW4 และปล่อยสวิตซ์ SW2 และ SW3 จะส่งผลให้กระแสไฟฟ้าจากขั้วบวกของแบตเตอรี่ไหลผ่านสวิตซ์ SW1 เข้าที่ขั้วด้านซ้ายของมอเตอร์ และกระแสไฟฟ้าไหลออกที่ขั้วด้านขวาของมอเตอร์ ไหลผ่าน SW4 กลับเข้าที่ขั้วลบของแบตเตอรี่ ส่งผลให้มอเตอร์หมุนตามเข็มนาฬิกา
จากรูปที่ 12 เมื่อกดที่สวิตซ์ SW2 และ SW3 และปล่อยสวิตซ์ SW1 และ SW4 จะส่งผลให้กระแสไฟฟ้าจากขั้วบวกของแบตเตอรี่ไหลผ่านสวิตซ์ SW2 เข้าที่ขั้วด้านขวาของมอเตอร์ และกระแสไฟฟ้าไหลออกที่ขั้วด้านซ้ายของมอเตอร์ ไหลผ่าน SW3 กลับเข้าที่ขั้วลบของแบตเตอรี่ ส่งผลให้มอเตอร์หมุนทวนเข็มนาฬิกา
หากต้องการให้มอเตอร์หยุดหมุนทำได้โดยปล่อยสวิตซ์ทุกตัว ทำให้มอเตอร์หมุนด้วยแรงเฉื่อยไปเรื่อย ๆ จนหยุดหมุนในที่สุด หากต้องการให้มอเตอร์หยุดหมุนทันที ทำได้โดยกดที่สวิตซ์ SW3 และ SW4 และปล่อยสวิตซ์ SW1 และ SW2 จะทำให้มอเตอร์หยุดหมุนอย่างรวดเร็ว (เรียกการจับขั้วของมอเตอร์ทั้ง 2 ขั้วช็อตกันขณะมอเตอร์หมุนด้วยแรงเฉื่อยว่า การเบรก : Break)
จากหลักการของ H-Bridge ทำให้สามารถใช้อุปกรณ์อุปกรณ์อิเล็กทรอนิกส์ทำหน้าที่ตัด-ต่อวงจรแทนสวิตซ์ได้ ทั้งการใช้รีเลย์ และการใช้อุปกรณ์สารกึ่งตัวนำ
ทำได้โดยจัดวงจรรีเลย์ให้เป็นรูปแบบของ H-Bridge ซึ่งแสดงดังรูปที่ 13 และรูปที่ 14
รูปที่ 13 วงจรขับมอเตอร์ด้วยรีเลย์แบบ H-Bridge ขณะ INPUT A เป็น 1 และ INPUT B เป็น 0
รูปที่ 14 วงจรขับมอเตอร์ด้วยรีเลย์แบบ H-Bridge ขณะ INPUT A เป็น 0 และ INPUT B เป็น 1
จากรูปที่ 13 หลักการทำงานของวงจรคือ เมื่อ INPUT A ปล่อยลอจิก 1 ทำให้กระแสไฟฟ้าไหลเข้าไปจ่ายที่รีเลย์ RL1 และ RL4 กระแสไฟฟ้าจากขั้วบวกของแบตเตอรี่ไหลผ่านหน้าคอนเเทคของรีเลย์ RL1 เข้าไปที่ขั้วด้านซ้ายของมอเตอร์ ไหลออกที่ขั้วด้านขวาของมอเตอร์ ผ่านหน้าคอนเเทคของรีเลย์ RL4 เข้าที่ขั้วลบของแบตเตอรี่ ส่งผลให้มอเตอร์หมุนตามเข็มนาฬิกา
จากรูปที่ 14 หลักการทำงานของวงจรคือ เมื่อ INPUT B ปล่อยลอจิก 1 ทำให้กระแสไฟฟ้าไหลเข้าไปจ่ายที่รีเลย์ RL2 และ RL3 กระแสไฟฟ้าจากขั้วบวกของแบตเตอรี่ไหลผ่านหน้าคอนเเทคของรีเลย์ RL2 เข้าไปที่ขั้วด้านขวาของมอเตอร์ ไหลออกที่ขั้วด้านซ้ายของมอเตอร์ ผ่านหน้าคอนเเทคของรีเลย์ RL3 เข้าที่ขั้วลบของแบตเตอรี่ ส่งผลให้มอเตอร์หมุนทวนเข็มนาฬิกา
รีเลย์ที่ใช้ในวงจรรูปที่ 13 และ 14 เป็นแบบ SPST คือมีหน้าคอนเทคเดียว ควบคุมให้วงจรเปิด-วงจรปิด ในการควบคุมมอเตอร์มักจะนิยมใช้รีเลย์ชนิด SPDT คือมีสองหน้าคอนเทค เมื่อต่อใช้กับมอเตอร์ ทำให้ลดการใช้รีเลย์เหลือเพียง 2 ตัวเท่านั้น
รูปที่ 15 วงจรขับมอเตอร์สองทิศทางด้วยรีเลย์ขับรีเลย์ด้วยทรานซิสเตอร์
ทั้งนี้เพื่อความง่ายในการใช้งาน การใช้รีเลย์สำเร็จรูปต่อเข้ากับวงจรส่วนควบคุม จะทำให้ประหยัดเวลา และลดต้นทุนการพัฒนาลงได้มาก วงจรควบคุมมอเตอร์สองทิศทางด้วยรีเลย์ใช้งานจริง แสดงดังรูปที่ 16
รูปที่ 16 การต่อวงจรบอร์ด Arduino Uno R3 ขับมอเตอร์สองทิศทางด้วยบอร์ดรีเลย์
จากรูปที่ 16 การเขียนโปรแกรมควบคุมมอเตอร์ ทำได้โดยกำหนดให้ขา 7 และ 8 เป็น OUTPUT แล้วควบคุมลอจิกที่ขา 7 และ 8 หากกำหนดให้ขา 7 มีลอจิกเป็น 0 และขา 8 มีลอจิกเป็น 1 จะทำให้มอเตอร์หมุนไปทิศทางหนึ่ง และหากกำหนดให้ขา 7 มีลอจิกเป็น 1 และขา 8 มีลอจิกเป็น 0 จะทำให้มอเตอร์หมุนไปในทิศทางตรงกันข้าม หากต้องการให้มอเตอร์หยุดหมุนทำได้โดยสั่งให้ขา 7 และขา 8 มีลอจิกเป็น 0
การควบคุมความเร็วของมอเตอร์ในวงจรขับมอเตอร์ที่ใช้รีเลย์ ไม่สามารถควบคุมโดยตรงได้ จำเป็นต้องใช้วงจรควบคุมความเร็วมอเตอร์แยกออกมา ซึ่งแสดงดังรูปที่ 9 และรูปที่ 10
การพิจารณาเลือกรีเลย์ จำเป็นต้องดูกระแสที่มอเตอร์ใช้ แล้วเลือกรีเลย์ที่ทนกระแสได้มากกว่าที่มอเตอร์ใช้ เพื่อให้หน้าคอนเเทคของรีเลย์ทนกระแสไหลผ่านได้ไหว ทำให้สามารถใช้งานได้ยาวนาน
จัดวงจรสวิตซ์ด้วยทรานซิสเตอร์ NPN เป็นรูปแบบ H-Bridge ได้ตามรูปที่ 17
รูปที่ 17 วงจรขับมอเตอร์สองทิศทางด้วยทรานซิสเตอร์
จากรูปที่ 17 เมื่อป้อนลอจิก 1 เข้าที่ INPUT A และป้อนลอจิก 0 เข้าที่ INPUT B ทำให้ทรานซิสเตอร์ Q1 และ Q4 ทำงาน ทำให้กระแสไฟฟ้าไหลจากขั้วบวกของแบตเตอรี่เข้าที่ขา C ออกขา E ของทรานซิสเตอร์ Q1 ไหลผ่านมอเตอร์เข้าที่ขา C ออกที่ขา E ของทรานซิสเตอร์ Q4 ไหลครบวงจรที่แบตเตอรี่ขั้วลบ ส่งผลให้มอเตอร์หมุนตามเข็มนาฬิกา
จากนั้นเมื่อป้อนลอจิก 0 เข้าที่ INPUT A และป้อนลอจิก 1 เข้าที่ INPUT B ทำให้ทรานซิสเตอร์ Q1 และ Q4 ไม่ทำงาน และทรานซิสเตอร์ Q2 และ Q2 ทำงานแทน ทำให้กระแสไฟฟ้าไหลจากขั้วบวกของแบตเตอรี่เข้าที่ขา C ออกขา E ของทรานซิสเตอร์ Q2 ไหลผ่านมอเตอร์เข้าที่ขา C ออกที่ขา E ของทรานซิสเตอร์ Q3 ไหลครบวงจรที่แบตเตอรี่ขั้วลบ ส่งผลให้มอเตอร์หมุนตามเข็มนาฬิกา
หากต้องการให้มอเตอร์หยุดหมุน ทำได้โดยป้อนลอจิก 0 เข้าที่ INPUT A และ INPUT B ส่งผลให้มอเตอร์ค่อย ๆ หมุนช้าลงจนหยุดหมุนในที่สุด
คุณสมบัติที่สำคัญของทรานซิสเตอร์ นอกจากใช้กระแสไฟฟ้าในการทำงานแล้ว แรงดันไฟฟ้าที่ออกจากขา E จะมีค่าเท่ากับแรงดันขา B ลบ 0.7V หมายความว่า หากวงจรควบคุมจ่ายแรงดันไฟฟ้า 5V เข้ามาที่ INPUT ใด ๆ ก็ตาม แรงดันเอาต์พุตของขา E จะมีค่าน้อยกว่า 5V เสมอ ดังนั้นหากใช้มอเตอร์แรงดันสูงกว่า 5V แต่ใช้แรงดันป้อนเข้า INPUT A และ INPUT B เป็น 5V จะส่งผลให้มอเตอร์ไม่หมุน เพราะมอเตอร์ได้รับแรงดันไม่มากพอ การแก้ปัญหาดังกล่าวทำได้โดยออกแบบวงจรขับทรานซิสเตอร์ขึ้นมาอีกชั้นหนึ่ง ซึ่งมีความยุ่งยากมาก จึงไม่นิยมใช้วงจรควบคุมมอเตอร์สองทิศทางด้วยทรานซิสเตอร์ในวงจรที่แรงดันส่วนควบคุมและแรงดันมอเตอร์ไม่เท่ากัน
ออกแบบวงจรสวิตซ์ด้วยมอสเฟส N-Channel และ P-Channel เป็นรูปแบบ H-Bridge ได้ดังรูปที่ 18
รูปที่ 18 วงจรขับมอเตอร์สองทิศทางด้วยมอสเฟส
จากรูปที่ 18 ใช้มอสเฟส N-Channel และ P-Channel มาต่อเป็นรูปแบบ H-Bridge มีหลักการทำงานคือ เมื่อสับสวิตซ์ SW2 ให้ต่อเข้าที่ขั้วบวกของแบตเตอรี่ ทำให้ Q2 ได้รับไบอัสตรง ทำให้ Q2 ทำงาน ในขณะเดียวกัน Q1 ได้รับไบอัสกลับ ทำให้ Q1 ไม่ทำงาน ด้านของ Q3 และ Q4 สวิตซ์ SW1 สับไปที่ขั้วลบของแบตเตอรี่ ทำให้ Q3 ได้รับไบอัสตรง แต่ Q4 ได้รับไบอัสกลับ ทำให้กระแสไฟฟ้าไหลจากขั้วบวกของแบตเตอรี่ผ่าน Q3 ผ่านมอเตอร์ ผ่าน Q2 ครบวงจรที่ขั้วลบของแบตเตอรี่ ส่งผลให้มอเตอร์หมุนทวนเข็มนาฬิกา
เมื่อสับสวิตซ์ SW2 ไปที่ขั้วลบของแบตเตอรี่ และสับสวิตซ์ SW1 ไปที่ขั้วบวกของแบตเตอรี่ ทำให้ Q1 และ Q4 ได้รับไบอัสตรง และ Q2 และ Q3 ได้รับไบอัสกลับ ทำให้กระแสไฟฟ้าไหลจากขั้วบวกของแบตเตอรี่ผ่าน Q1 ผ่านมอเตอร์ ผ่าน Q4 ครบวงจรที่ขั้วลบของแบตเตอรี่ ส่งผลให้มอเตอร์หมุนตามเข็มนาฬิกา
เมื่อสับสวิตซ์ SW2 และ SW1 ไปที่ขั้วลบของแบตเตอรี่ ทำให้ Q1 และ Q3 ได้รับไบอัสตรง ส่วน Q2 และ Q4 ได้รับไบอัสกลับ ทำให้ Q1 และ Q3 นำกระแส แต่ไม่เกิดความต่างศักดิ์ขึ้นที่ขั้วทั้งสองของมอเตอร์ ทำให้ไม่มีกระแสไฟฟ้าไหลผ่านมอเตอร์ ส่งผลให้มอเตอร์ค่อย ๆ หมุนช้าลง จนหยุดหมุนในที่สุด
จากปัญหามอสเฟสเบอร์เก่า ๆ ต้องใช้แรงดันประมาณ 12V จ่ายเข้าขา G เพื่อให้มอสเฟสทำงาน แต่วงจรส่วนควบคุมด้วยไมโครคอนโทรลเลอร์จ่ายแรงดันออกมาเพียง 5V เท่านั้น หากนำขาของไมโครคอนโทรลเลอร์ไปต่อกับมอสเฟสโดยตรงจะทำให้มอสเฟสไม่ทำงาน จึงต้องมีวงจรช่วยขับมอสเฟสเพิ่มขึ้นมา เพื่อให้ใช้กับวงจรควบคุมด้วยไมโครคอนโทรลเลอร์ได้ วงจรขับมอเตอร์สองทางด้วยมอสเฟสใช้งานได้จริงแสดงดังรูปที่ 19
รูปที่ 19 วงจรขับมอเตอร์สองทิศทางด้วยมอสเฟส
จากรูปที่ 19 สามารถนำ INPUT A และ INPUT B ไปต่อเข้ากับวงจรควบคุม หรือบอร์ดไมโครคอนโทรลเลอร์ (บอร์ด Arduino PIC STM8 STM32 ESP32 ESP8266) ได้เลย การเขียนโปรแกรมสั่งงานเพียงสั่งให้ A หรือ B เป็นลอจิก 0 หรือ 1
ไอซีคือเป็นอุปกรณ์สารกึ่งตัวนำที่ได้รับความนิยมนำมาใช้ควบคุมมอเตอร์มากที่สุด เนื่องจากมีขนาดเล็ก ไม่ต้องวุ่นวานเรื่องการออกแบบวงจร เพียงเลือกไอซีที่ตรงสเปคที่จะใช้งาน ก็ต่อสายจากวงจรควบคุมเข้ามาที่ไอซีแล้วสั่งให้มอเตอร์หมุนได้เลย
ปัจจุบันไอซีมีหลากหลายเบอร์ ขึ้นอยู่กับแรงดันและกระแสไฟฟ้าที่มอเตอร์ใช้ และจำนวนมอเตอร์ที่รองรับต่อไอซีหนึ่งตัว ไอซีขับมอเตอร์ส่วนใหญ่จะประกอบด้วยขา INPUT สำหรับป้อนสัญญาณเข้าไปขับมอเตอร์ 2 ขา และอาจจะมีขา EN หรือ PWM เพิ่มขึ้นมา เพื่อใช้ควบคุมความเร็วของมอเตอร์ การสั่งให้มอเตอร์หมุน หรือหยุดหมุน จำเป็นต้องอ่าน Datasheet ของไอซีขับมอเตอร์เบอร์นั้น ๆ เพิ่มเติม ทั้งนี้ไอซีที่นิยมใช้นำมาขับมอเตอร์ มีดังนี้
1. L293D
L293D เป็นไอซีตัวถัง DIP-16 รองรับการขับมอเตอร์ 2 ตัว ทนกระแสได้สูงสุด 600mA รองรับมอเตอร์ที่ใช้แรงดันไฟฟ้า 4.5V ถึง 36V ใช้แรงดันควบคุมได้ 4.5V ถึง 36V วงจรขับมอเตอร์ด้วยไอซี L293D แสดงดังรูปที่ 20
รูปที่ 20 วงจรขับมอเตอร์ด้วยไอซี L293D
ไอซี L293D นิยมใช้งานกับมอเตอร์ขนาดเล็ก เช่น มอเตอร์ที่ใช้ในรถบังคับ เนื่องจากมีขนาดเล็ก ราคาถูก ไม่จำเป็นต้องมีอุปกรณ์ต่อร่วม ตัวอย่างการใช้ไอซี L293D ขับมอเตอร์ขนาดเล็ก ควบคุมด้วยบอร์ด Arduino Uno R3 แสดงดังรูปที่ 21
รูปที่ 21 วงจรต่อใช้งานบอร์ด Arduino ควบคุมมอเตอร์ด้วย L293D
จากรูปที่ 21 การเขียนโปรแกรมควบคุมมอเตอร์ให้หมุนตามเข็มนาฬิกา หรือหมุนทวนเข็มนาฬิกา ทำได้โดยสั่งให้ D11 และ D10 มีลอจิกที่แตกต่างกัน เช่น การสั่ง D11 เป็นลอจิก 1 และสั่ง D10 เป็นลอจิก 0 หรือการสั่ง D11 เป็นลอจิก 0 และสั่ง D10 เป็นลอจิก 1 หากกำหนดให้ทั้ง D11 และ D10 เป็นลอจิก 0 ทั้งคู่ หรือเป็น 1 ทั้งคู่ จะทำให้มอเตอร์หยุดหมุน หากต้องการควบคุมความเร็วของมอเตอร์ด้วย ทำได้โดยป้อนสัญญาณ PWM เข้าไปแทน ตัวอย่างโปรแกรมควบคุมมอเตอร์ที่เขียนด้วยแพลตฟอร์ม Arduino มีดังนี้
2. L298N
L298N ใช้ขับมอเตอร์ได้ 2 ตัว ทนกระแสไฟฟ้าได้สูงสุด 4A รองรับแรงดันไฟฟ้าเลี้ยงมอเตอร์ 4.5V ถึง 46V ใช้แรงดันไฟฟ้าควบคุม 4.5V ถึง 7V การใช้งานนิยมใช้งานโมดูลสำเร็จรูป เพียงต่อสายมอเตอร์ ต่อไฟเลี้ยงมอเตอร์ ต่อสายควบคุมจากวงจรควบคุม (บอร์ดไมโครคอนโทรลเลอร์ Arduino PIC STM8 STM32 ESP8266 ESP32) ก็ใช้งานได้เลย วงจรต่อใช้งานโมดูล L298N กับบอร์ด Arduino แสดงดังรูปที่ 22
รูปที่ 21 วงจรต่อใช้งานบอร์ด Arduino ควบคุมมอเตอร์ด้วย L298N
หลักการเขียนโปรแกรมควบคุมมอเตอร์เหมือนกับ L293D ทุกประการ รวมทั้งใช้โค้ดตัวอย่างเดียวกันเพื่อทดสอบได้เลย
นอกจาก L293D และ L298N แล้ว ยังมีไอซีเบอร์อื่น ๆ อีกที่ใช้ขับมอเตอร์ได้ แต่ได้รับความนิยมน้อยกว่า 2 เบอร์นี้ บอร์ดขับมอเตอร์ด้วยไอซีมักเลือกจากกระแสไฟฟ้าที่มอเตอร์ใช้เป็นหลัก โดยจะต้องเลือกบอร์ดขับมอเตอร์ที่ทนกระแสได้มากกว่าที่มอเตอร์ใช้ ส่วนการใช้งานจะเหมือนกับ L293D และ L298N คือมีช่องต่อมอเตอร์ 2 ขั้ว มีช่องป้อนสัญญาณเข้า 2 ช่อง การควบคุมทิศทางการหมุนทำได้โดยเลือกป้อนลอจิกที่แตกต่างกันเข้าช่องป้อนสัญญาณ และควบคุมความเร็วของมอเตอร์ด้วย PWM การป้อนแรงดันไฟฟ้าเข้าจะมี 2 ส่วน คือแรงดันไฟฟ้าจ่ายไฟเลี้ยงให้ไอซี (ซึ่งไฟเลี้ยงส่วนนี้มาจากส่วนควบคุม หรือบอร์ดไมโครคอนโทรลเลอร์ Arduino PIC STM8 STM32 ESP8266 ESP32) และส่วนจ่ายแรงดันไฟเลี้ยงให้มอเตอร์ การจ่ายแรงดันไฟเลี้ยงมอเตอร์ ควรจ่ายให้เท่ากับแรงดันที่มอเตอร์ต้องการใช้งาน
การควบคุมมอเตอร์ด้วยบอร์ดสำเร็จรูปส่วนใหญ่จะคล้ายกับโมดูลสำเร็จรูป L298N คือมีช่องต่อมอเตอร์ และมีช่องต่อสัญญาณควบคุม และมีช่องต่อไฟเลี้ยงมอเตอร์-ไฟเลี้ยงบอร์ด แต่ยังมีบอร์ดขับมอเตอร์ที่ออกแบบมาให้ใช้งานได้ง่ายมากขึ้น ดังรูปที่ 22 เป็นบอร์ดขับมอเตอร์ 13Amp 6V-30V DC Motor Driver จาก Cytron
รูปที่ 22 บอร์ดขับมอเตอร์ 13Amp 6V-30V DC Motor Driver จาก Cytron
จากรูปที่ 22 บอร์ดขับมอเตอร์ 13Amp 6V-30V DC Motor Driver จาก Cytron มีช่องต่อแหล่งจ่ายไฟสำหรับมอเตอร์ มีช่องต่อมอเตอร์ และมีช่องต่อสัญญาณควบคุม ความแตกต่างของบอร์ดขับมอเตอร์รุ่นนี้กับรุ่นอื่น ๆ คือช่องต่อสัญญาณควบคุมมีช่อง DIR และช่อง PWM ไม่ใช่ IN1 และ IN2
ช่อง DIR ถูกใช้เพื่อควบคุมทิศทางการหมุนของมอเตอร์ เมื่อให้ลอจิกเป็น 0 หรือ 1 จะทำให้มอเตอร์หมุนในทิศทางที่ตรงกันข้ามกัน และช่อง PWM ถูกใช้ป้อนสัญญาณ PWM เพื่อควบคุมความเร็วของมอเตอร์ หากต้องการให้มอเตอร์หยุดหมุนให้ป้อนสัญญาณช่อง PWM ให้เป็นลอจิก 0 ค้าง (ส่วนช่อง DIR จะเป็นลอจิก 0 หรือ 1 ก็ไม่มีผลต่อมอเตอร์ หากช่อง PWM เป็นลอจิก 0 ค้างอยู่)
วงจรควบคุมโดยเฉพาะวงจรที่ใช้ไมโครคอนโทรลเลอร์ ค่อนข้างมีปัญหาได้ง่ายเมื่อเกิดสัญญาณรบกวนขึ้น แม้จะเพียงเล็กน้อยก็ตาม ปัญหาสัญญาณรบกวนจากมอเตอร์เกิดจากขณะที่วงจรขับมอเตอร์ไม่ปล่อยกระแสไฟฟ้าเข้ามอเตอร์ แต่มอเตอร์ยังหมุนต่อไปด้วยแรงเฉื่อย ทำให้มอเตอร์เปลี่ยนตัวเองเป็นไดนาโมแทน ปล่อยพลังงานไฟฟ้าออกมาแบบขั้วตรงข้าม แล้วสัญญาณที่ปล่อยออกมาไปรบกวนการทำงานของวงจรส่วนควบคุม
การแก้ไขทำได้โดยต่อตัวเก็บประจุค่าประมาณ 10nF ถึง 100nF คร่อมที่ขั้วทั้งสองของมอเตอร์ เมื่อมอเตอร์ปล่อยพลังงานไฟฟ้าออกมา ตัวเก็บประจุจะช่วยกักเก็บพลังงานไฟฟ้านั้นไว้แทน แล้วพลังงานไฟฟ้าส่วนเกินจะไม่ไหลไปรบกวนส่วนควบคุม
รูปที่ 23 มอเตอร์ที่อยู่ในของเล่นเด็กมักมีตัวเก็บประจุแปะไว้เสมอ
การแก้ไขอีกวิธีหนึ่ง คือการต่อไดโอดเพื่อให้กระแสไฟฟ้าที่ไหลกลับในขั้วตรงข้าม ไหลกลับเข้ามอเตอร์เองเพื่อไม่ให้มีกระแสไฟฟ้าไหลออกไปวงจรส่วนควบคุม การใช้ไดโอดจะขึ้นอยู่กับวงจรที่ใช้ กรณีขับมอเตอร์ทางเดียว ให้ต่อไดโอดคร่อมมอเตอร์โดยหันขา K เข้าขั้วบวกของแหล่งจ่ายไฟมอเตอร์ และหันขา A เข้าที่ขา C ของทรานซิสเตอร์ หรือมอสเฟส ซึ่งแสดงดังรูปที่ 24
รูปที่ 24 แก้ปัญหาสัญญาณรบกวนจากมอเตอร์ด้วยไดโอดในวงจรขับมอเตอร์ทางเดียว
ในวงจร H-Bridge การแก้ปัญหาด้วยไดโอด ต้องเพิ่มไดโอด 4 ตัว ต่อจากขั้วของมอเตอร์ไปยังขั้วบวกของแหล่งจ่ายไฟ และต่อจากขั้วลบของแหล่งจ่ายไฟไปยังขั้วของมอเตอร์ ดังรูปที่ 24
รูปที่ 25 แก้ปัญหาสัญญาณรบกวนจากมอเตอร์ด้วยไดโอดในวงจร H-Bridge
การควบคุมมอเตอร์มี 2 แบบ คือ
การเลือกโมดูลขับมอเตอร์ หรือรีเลย์ ต้องดูกระแสที่มอเตอร์ใช้เป็นหลัก โดยจะต้องเลือกอุปกรณ์ขับที่ทนกระแสได้มากกว่าที่กระแสที่มอเตอร์ใช้