การควบคุม strengh แม่เหล็กไฟฟ้าด้วย arduino


11

คำถามก่อนหน้านี้การควบคุมแม่เหล็กไฟฟ้าด้วย Arduinoเกี่ยวข้องกับการควบคุมแบบไบนารี (เปิดหรือปิด) เท่านั้น ในด้านของฉันฉันต้องเลือกความแรงของสนามแม่เหล็ก

มันเป็นแม่เหล็กไฟฟ้าที่ผลิตขึ้นเองในบ้านฉันสามารถควบคุมมันด้วย 12V DC + ตัวต้านทาน 5ohm ซึ่งให้ประมาณ 2Amps สนามแม่เหล็กที่เกิดขึ้นมีขนาดใหญ่พอ ตัวต้านทานได้รับความร้อน แต่สามารถทนได้

ตอนนี้ฉันต้องการปรับความเข้มระหว่าง 0 ถึง 2 แอมป์จากการอ่านเซ็นเซอร์บางอย่างดังนั้นฉันจึงวางแผนที่จะใช้ Arduino

ฉันสามารถใช้ PWM ได้หรือไม่โดยรู้ว่าการโหลดแบบเหนี่ยวนำมีความสำคัญ? ตัวเลือกความถี่ของ PWM สำคัญหรือไม่? ฉันจะมีปัญหากับกระแสน้ำวนในแกนกลางอ่อนหรือไม่? (ฉันไม่สามารถใช้แกนลามิเนต)

ดังนั้นคำถามของฉันคือ: PWM เป็นตัวเลือกที่ดีจริง ๆ หรือไม่? ถ้าใช่ฉันควรเก็บตัวต้านทาน 5 โอห์มหรือไม่ ฉันจะปรับความถี่ PWM ของฉัน + อัลฟ่าได้อย่างไร ถ้าไม่ฉันจะทำอะไรได้บ้าง วงจรไหน

ขอบคุณ


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

มอเตอร์กระแสตรงก็เป็นตัวเหนี่ยวนำ อาจเป็นเกราะป้องกันมอเตอร์เป็นทางออกที่สะดวก?
Phil Frost

หากคุณมีออสซิลโลสโคปคุณสามารถดูว่าตัวเหนี่ยวนำอิ่มตัวหรือไม่ ถ้าเป็นเช่นนั้นคุณควรพิจารณาความถี่ PWM ที่สูงขึ้น หากความถี่สูงพอกระแสไฟฟ้าผ่านตัวเหนี่ยวนำจะถึงค่าสูงสุด / ต่ำสุดที่รอบการทำงานร้อยละ 100/0 เท่านั้น
jippie

@ jippie: นี่คือสิ่งที่ฉันไม่เข้าใจ หากนี่คือ> 50% ในแต่ละรอบเวลา 'การขึ้น' จะนานกว่า 'เวลาที่จะลง' ดังนั้นกระแสจะเสร็จสิ้นสูงกว่าจุดเริ่มต้นเล็กน้อย ดังนั้นทำไมมันไม่อิ่มตัวหลังจากผ่านหลายรอบ? (ฉันสังเกตว่ามันไม่ได้ แต่ฉันสามารถหาสาเหตุได้)
repied2

คำตอบ:


6

PWM เป็นตัวเลือกที่ดีและจำไว้ว่าคอยล์จำเป็นต้องมีไดโอดที่เชื่อมต่อแบบย้อนกลับข้ามมันเพื่อป้องกันไม่ให้มีแรงดันย้อนกลับจากการเหนี่ยวนำแบบเปิดวงจรที่สร้างความเสียหาย คุณจะต้องใช้ทรานซิสเตอร์พลังงานบางชนิดเพื่อเชื่อมต่อระหว่าง arduino และขดลวด - arduino ไม่ได้ให้ "ไดรฟ์" เพียงพอที่จะเข้าใกล้ 2A นี่คือแผนภาพที่แสดงทรานซิสเตอร์จาก MCU แต่มีมอเตอร์แทนที่จะเป็นขดลวด สิ่งนี้ไม่สำคัญ - สิ่งสำคัญคือมันแสดงให้เห็นไดโอดและวิธีการขับม้วน: -

ป้อนคำอธิบายรูปภาพที่นี่

มันแสดงให้เห็นว่า + 5V แต่สามารถเป็น + 12V ได้ สิ่งที่ต้องระวัง: -

1) ไดโอดจะต้องมีการจัดอันดับที่กระแสเกินกว่ากระแสสูงสุดผ่านขดลวด

2) ขดลวดยังคงต้องการตัวต้านทานในซีรีส์ในกรณีที่เกิดไฟฟ้าลัดวงจร แต่มันอาจลดลงเหลือ 1 โอห์มเมื่อคุณมีความสุขกับการทำงาน

3) ทรานซิสเตอร์จะต้องถูกจัดอันดับเพื่อสลับกระแสดังนั้นอาจเลือกหนึ่งที่สามารถจัดการอย่างน้อย 3A

4) ระดับแรงดันไฟฟ้าของทรานซิสเตอร์ต้องการเพียง 20V หรือสูงกว่า

5) ตัวต้านทานแบบอนุกรมที่มีฐานอาจต้อง 100 โอห์ม - ลองใช้วิธีนี้เริ่มต้นด้วย จาก 3V3 IO สาย 100 โอห์มจะหมายถึงกระแสฐานประมาณ 30mA และถ้า HFE ของทรานซิสเตอร์ดีเมื่อเปลี่ยนโหลดไฟฟ้า (100+) มันควรจะโอเค แต่มันอาจจะดีกว่าถ้าใช้ FET นี้ มีให้เลือกมากมาย

จากนั้นให้ลองทำพัลส์พื้นที่ 50:50 (คลื่นสี่เหลี่ยม) และเปลี่ยนความถี่และดูว่าแกนหลักสูญเสียอะไรเช่นความถี่ที่สูงขึ้นเรื่อย ๆ ฉันคิดว่า 1kHz เป็นจุดเริ่มต้นที่ดีและคุณอาจพอใจกับ 10kHz หวังว่า


ขอบคุณสำหรับคำตอบที่สมบูรณ์ ฉันได้รับมันทำงานกับค่าเริ่มต้น arduino 500Hz PWM และ MOSFET IRF520 (ร้อนขึ้นดังนั้นฉันจะลองดีกว่า) + flyback diode + optocoupler แต่ฉันก็ยังไม่เข้าใจว่าทำไมกระแสไม่สร้างขึ้นอย่างต่อเนื่อง (หลังจากหลายรอบ) เมื่ออัตราส่วน PWM มากกว่า> 50% ตั้งแต่ในแต่ละรอบเวลา 'กำลังขึ้น' จะนานกว่า 'เวลาหยุดทำงาน' และ กระแสควรจะสูงกว่าจุดเริ่มต้นเล็กน้อย!
repied2

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