วิธีการขับมอเตอร์ไร้แปรงด้วย Arduino?


28

เป็นไปได้หรือไม่ที่จะขับมอเตอร์ไร้แปรงโดยตรงกับ Arduino? หรือฉันควรเปลี่ยนกลับในการควบคุม ESC มอเตอร์แบบไร้แปรงด้วยพัลส์ PWM หรือไม่?


1
คุณอาจได้รับชิปไดรเวอร์จากเครื่องเล่น dvd / cd-rom เก่า
— ลาร์ส

คำตอบ:


10

คุณควรใช้ ESC อย่างแน่นอน มอเตอร์แบบไร้แปรงนั้นทำงานได้ดีที่สุดเมื่อขับเคลื่อนด้วยคลื่นไซน์ (หรือใกล้เคียงที่สุดกับคลื่นไซน์) พวกเขายังต้องการชุดสัญญาณที่ค่อนข้างแม่นยำและซับซ้อน การสร้างรูปแบบคลื่นและจังหวะเวลาที่เหมาะสมจาก arduino อาจเป็นเรื่องยากและถ้าคุณไม่ต้องการมันจริงๆก็อาจไม่คุ้มค่า คุณสามารถจัดเรียงเพื่อควบคุม ESC จาก arduino ของคุณซึ่งจะให้การควบคุมแบบเป็นโปรแกรมบวกกับประสิทธิภาพและพลังของ ESC


nitpick: ตามวิกิพีเดีย ( en.wikipedia.org/wiki/brushless_DC_electric_motor ) มอเตอร์ของ BLDC ได้รับการปรับให้ทำงานได้ดีที่สุดเมื่อขับเคลื่อนด้วยสวิตช์ DC: เป็นค่าบวกลบและลบทั้งหมด มอเตอร์ AC แม่เหล็กถาวรได้รับการปรับให้ทำงานได้ดีที่สุดเมื่อขับเคลื่อนด้วยคลื่นไซน์ นั่นเป็นความแตกต่างที่สำคัญระหว่างพวกเขาเท่านั้น ฉันเห็นด้วยกับข้อสรุปของคุณ: มันอาจคุ้มค่าที่จะใช้ ESC นอกชั้นวางแทนที่จะพัฒนาด้วยตัวคุณเอง
— davidcary

4
คอนโทรลเลอร์บน BLCD สามารถใช้ atmega เดียวกันกับ aarduino ได้เป็นอย่างดี ดังนั้นข้อดีคือการแจกปัญหารายละเอียดให้กับบุคคลอื่นเพื่อแก้ไข และแจกงานการแลกเปลี่ยนระดับต่ำเพื่อปล่อย atmega atmega ให้ฟรีสำหรับงานในระดับที่สูงขึ้น
— Chris Stratton

มอเตอร์ BLDC ใช้คลื่นสี่เหลี่ยมเป็นตัวขับเคลื่อน ที่ด้านผู้ใช้งานของคอนโทรลเลอร์ (ESC) พวกเขาใช้ DC power feed รวมถึงสัญญาณควบคุมที่ ESC ต้องการ คลื่นไซน์ไม่มีคุณสมบัติ
— รัสเซลแม็คมาฮอน

13

ที่จริงบางครั้งคุณเพียงแค่ต้องสร้าง ESC ของคุณเอง ESCs ที่ขายในตลาดเป็น "commercilized" และมีรหัสควบคุมของตัวเองสำหรับสิ่ง RC เช่นเครื่องบิน helis รถยนต์ ...

ตัวอย่างเช่นบางครั้งคุณต้องมีเบรกที่สามารถปรับได้สองด้าน จากหลังสู่หยุดและจากไปข้างหน้าหยุด ไม่มี RC ESC ที่มีคุณสมบัตินั้น พวกเขามีเบรคแบบปฏิรูปเพียงหนึ่งเดียวจากข้างหน้าถึงหยุดหรือไม่มีเลย หรือคุณอาจต้องการเซ็นเซอร์ควบคุม BLDC แต่มีเพียงไม่กี่ ESC ที่สัมผัสได้ในตลาดและพวกเขามี (เช่นเดียวกับ ESC ที่ไม่มีเซ็นเซอร์ทั่วไป) ในตัวคุณสมบัติที่คุณไม่ต้องการและไม่มีบางอย่างที่คุณต้องการอย่างแน่นอน !

การออกแบบ ESC ของคุณเองนั้นเป็นตัวเลือกที่สมบูรณ์แบบและราคาถูกกว่ามากแม้แต่ $ 10 ที่ถูกที่สุดด้วยขุมพลังอันยิ่งใหญ่

มันเป็นความจริงที่รหัสควบคุมและฮาร์ดแวร์อาจเป็นความเจ็บปวด แต่หลังจากที่อ่านบางอย่างมันก็แค่ของเล่น

มีบทช่วยสอนที่ดีเกี่ยวกับวิธีสร้างตัวควบคุม BLDC กับ aarduino โดยใช้ 6 mosfets และสิ่งอื่น ๆ ที่คุณสามารถหาได้จากเว็บไซต์ของ Jameco (ดีมาก) นี่คือที่ฉันซื้อของราคาถูก แต่ spurkfun อาจเป็นทางเลือกที่ดีถ้า คุณไม่พบเซ็นเซอร์บางอย่างเช่นไจโร ฯลฯ

http://www.instructables.com/id/BLDC-Motor-Control-with-Arduino-salvaged-HD-motor/

คู่มือที่ดีมากและง่ายต่อการปฏิบัติตาม คุณสามารถสร้างพลังงานใด ๆ จาก ESC ต่ำถึงสูงเป็นพิเศษโดยใช้คู่มือนี้และเกือบทุกอย่างรวมกันของเบรก regen ใด ๆ โดยใช้ความต้านทานขดลวดมอเตอร์หรือเครื่องชาร์จแบตเตอรี่ ...

การใช้ mosfets เป็นเพียงของเล่นคุณสามารถทำอะไรได้เกือบทุกอย่าง

ปัญหาก็คือคุณไม่สามารถควบคุม mosfet นี้ได้อย่างมีประสิทธิภาพด้วย MCU เช่นบอร์ด Arduino ซึ่งส่งออก 5V เท่านั้นที่ฉันคิดและแรงดันเกตของ mosfet สำหรับแรงดันไฟฟ้าขนาดกลางนั้นจะสูงขึ้นมากในช่วง 16-30V ได้อย่างง่ายดาย ดังนั้นคุณต้องใช้ตัวแทนเนอร์อื่นเพื่อเพิ่มแรงดันของอาร์ดิโน

โชคดี.


6

ฉันได้กลับไปกลับมาในเรื่องนี้เป็นเวลา 30 นาที ฉันคิดว่าคุณอาจต้องการใช้ ESC หากคุณไม่ได้เป็นเพียงประสบการณ์การเรียนรู้ ในการควบคุมมอเตอร์อย่างถูกต้องนั้นจะต้องใช้ทรัพยากรจากอาร์ดิโนของคุณมากกว่าที่ฉันคิดได้ นอกจากนี้คุณจะ จำกัด การตอบสนองของมอเตอร์ไปที่หน่วยเลือกตั้ง ฉันไม่คิดว่าการใช้ ESC เป็นการคืนค่าซึ่งเป็นวิธีที่ควรทำ


4

เนื่องจากไม่มีใครพูดถึงมัน - คุณจะไม่สามารถขับมอเตอร์โดยตรงจากอาร์ดิโนเพียงเพราะชิพ AVR จะไม่จ่ายกระแสไฟฟ้าออกมามากพอที่จะจ่ายพลังงานที่มีประโยชน์

อย่างน้อยที่สุดคุณจะต้องมองหาการจัดเรียง H-bridge สามเฟส (อ่าน: สามครึ่ง H-bridges) เพื่อขับกระแสที่จำเป็นต้องใช้ดิจิตอลหกเส้นเพื่อใช้ทรานซิสเตอร์ไดรฟ์

สมมติว่าคุณได้แก้ไขปัญหาความสามารถของไดรฟ์แล้วและนั่นก็ไม่ใช่เรื่องเล็กน้อยดังนั้นคุณต้องเข้าไปในรหัสควบคุม มอเตอร์เหล่านี้มีใบพัดแม่เหล็กถาวรดังนั้นคุณไม่สามารถหมุนสนามสเตเตอร์และสุ่มรับแรงบิดที่มีประโยชน์ คุณต้องทราบทิศทางของโรเตอร์เพื่อปรับมุมเฟสไฟฟ้าเพื่อให้ได้แรงบิดสม่ำเสมอ

เช่นเดียวกับคนอื่น ๆ ได้กล่าวไว้เว้นแต่คุณจะต้องการประสบการณ์การเรียนรู้ที่เฉพาะเจาะจงไม่มีความไม่ซื่อสัตย์เพียงแค่ซื้อ ESC


3

ฉันคิดว่ามันเป็นแบบฝึกหัดการเรียนรู้ที่ยอดเยี่ยม แต่ ESC ใช้ back EMF เพื่อตรวจจับการหมุนแม้ว่าคุณจะสามารถใช้เซ็นเซอร์ออปติคัลหรือเซนเซอร์แม่เหล็กสำหรับสิ่งนี้ โดยทั่วไปคุณจะต้องสร้าง 3 ขั้นตอน AC และเปิด / ปิดใช้งานในช่วงเวลาที่เหมาะสม

ความเร็วของการหมุนของสนามแม่เหล็กจะต้องมีการปรับให้เข้ากับมอเตอร์เช่นถ้าคุณต้องการเร่งความเร็วสนามจะต้องวิ่งเร็วขึ้นและเร็วขึ้น คุณยังสามารถทำสิ่งที่ตรงกันข้ามได้

สำหรับคำอธิบายอย่างละเอียด: http://www.embedded.com/columns/technicalinsights/196701832?_requestid=137540

สำหรับงานจริงให้รับ ESC


ฉันคิดว่าการเร่งความเร็วและการลดความเร็วเป็นวิธีที่คุณอธิบายได้สำเร็จโดยนำและล้าหลังสนาม แต่ฉันก็อ่านว่าการเร่งจะขึ้นอยู่กับแรงดันเป็นหลัก (แม้ว่าฉันจะไม่เห็นว่ามันจะชะลอตัวลง) ฉันรู้สึกสับสนเล็กน้อย วิธีใดวิธีหนึ่งทำงานเพื่อเร่งความเร็ว? เหตุผลใดที่จะชอบอันใดอันหนึ่งหรือผสมพวกเขา? ขอบคุณ!
— ผู้วิเศษ

2

คุณสามารถขับโดยตรงด้วย Arduino หากการขับรถคุณไม่ได้หมายความว่าจ่ายกระแสไฟให้กับขดลวดอย่างแท้จริง - MCU ใด ๆ จะอ่อนแอเกินไปสำหรับสิ่งนั้น นอกจากนี้ Arduino ยังสามารถจม แต่ไม่ได้แหล่งกระแส แต่คุณต้องการทั้งมอเตอร์ brushless

อย่างไรก็ตามถ้าคุณใช้ H-bridge driver IC ที่ง่ายมากนอกเหนือจาก Arduino คุณสามารถใช้ฟังก์ชั่น ESC ทุกอย่างได้ ในความเป็นจริงแล้วขึ้นอยู่กับแอพพลิเคชั่นที่คุณอาจไม่จำเป็นต้องใช้ E * SC * ซึ่งหมายความว่าคุณอาจไม่ต้องการการควบคุมความเร็วแบบลูปปิด - หากโหลดไม่มากเกินไป เพื่อตอบสนองการซิงค์กับพลังของขดลวดและอัตราการเปลี่ยนแปลงของขดลวดในปัจจุบันจะมาจาก Arduino ลองดูวงจรควบคุมมอเตอร์ brushless (BLDC) ที่เรียบง่ายและแบบร่าง Arduino ที่คุณอาจจะสามารถปรับให้เข้ากับการขับเคลื่อนมอเตอร์ของคุณ อันนั้นมีพื้นฐานมาจาก SN754410NE quad H-bridge IC ซึ่งจะมีค่าสูงสุดที่ 750mA หากหน่วยความจำทำหน้าที่

รหัสนี้ไม่สำคัญเกินไปและใช้ประโยชน์จาก PWM เพื่อการหมุนที่ราบรื่น แต่ก็ไม่ยากที่จะแยกวิเคราะห์เพื่อปรับให้เข้ากับแอปพลิเคชันของคุณ ที่เกิดขึ้นจริงร่าง Arduino สำหรับมอเตอร์ BLDC อยู่ที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.