วิธีการขับมอเตอร์ไร้แปรงด้วย 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.