ประเภท: มอเตอร์ไฟฟ้าและการใช้งาน, วงจรไมโครคอนโทรลเลอร์
จำนวนการดู: 24464
ความเห็นเกี่ยวกับบทความ: 0

Arduino และ stepper motor: พื้นฐาน, โครงร่าง, การเชื่อมต่อและการควบคุม

 

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

Arduino และ stepper มอเตอร์

มอเตอร์สเต็ปเปอร์แตกต่างจากปกติ

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

โดยหลักการแล้วข้อมูลพื้นฐานดังกล่าวเพียงพอที่จะเข้าใจภาพทั่วไปของการทำงานของมอเตอร์ไฟฟ้า อย่างไรก็ตามในความเป็นจริงอุตสาหกรรมผลิต ตัวเลือกมอเตอร์ต่างๆในหมู่ที่:

1. มอเตอร์เหนี่ยวนำกระรอกกรงหรือแผล

2. มอเตอร์ซิงโครนัสที่มีขดลวดสนามหรือแม่เหล็กถาวร

3. มอเตอร์กระแสตรง

4. Universal Collector motor (ทำงานได้ทั้งกระแสตรงและกระแสสลับเนื่องจากขดลวดของโรเตอร์นั้นเชื่อมต่อและตัดการเชื่อมต่อจากหน้าสัมผัสของแหล่งพลังงานเนื่องจากการออกแบบของ lamellas และแองเคอร์)

5. มอเตอร์ DC แบบไร้แปรง (BLDC)

6. เซอร์โว

7. มอเตอร์สเต็ปเปอร์

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

มอเตอร์สเต็ปเปอร์

คำนิยาม

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

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

อุปกรณ์สเต็ปเปอร์มอเตอร์

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

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

Arduino และ stepper มอเตอร์

ออกแบบ

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

ขดลวดมอเตอร์

ดังนั้นใบพัดที่เป็นสนามแม่เหล็ก (พวกมันยังมีแม่เหล็กถาวร) และใบพัดที่มีความอ่อนของสนามแม่เหล็กจะมีความโดดเด่นนอกเหนือจากนั้นยังมีใบพัดไฮบริด

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

มอเตอร์โรเตอร์

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

ประเภทของสเต็ปเปอร์มอเตอร์สำหรับการออกแบบขดลวดแบ่งออกเป็นสามกลุ่มหลักตามรูปแบบการเชื่อมต่อของขดลวด:

1. สองขั้ว

2. Unipolar

3. ด้วยสี่ขดลวด

ประเภทของสเต็ปเปอร์มอเตอร์

มอเตอร์ไฟฟ้าแบบไบโพลาร์ส่วนใหญ่มี 4 หน้าสัมผัสซึ่งเป็นข้อสรุปจากสองขดลวด ภายในเครื่องยนต์นั้นมีขนาดใหญ่และไม่เชื่อมต่อซึ่งกันและกัน ปัญหาหลักคือมีความจำเป็นเพื่อให้แน่ใจว่าการสลับขั้วพลังงานซึ่งหมายความว่าคนขับและกระบวนการควบคุมจะซับซ้อนมากขึ้น

Unipolar คล้ายกับการเชื่อมต่อของขดลวดตามรูปแบบของดาว กล่าวอีกนัยหนึ่งคุณมีข้อสรุปที่ 5 - 4 ของพวกเขาเป็นจุดสิ้นสุดของขดลวดและ 1 เป็นจุดเชื่อมต่อของขดลวดทั้งหมด

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

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



โหมดควบคุม

มี 4 โหมดควบคุมมอเตอร์หลัก:

1. การควบคุมคลื่น

2. ขั้นตอนเต็ม

3. ครึ่งขั้นตอน

4. Microstepping


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

ในกรณีนี้เอ็นจิ้นนี้ใช้ 4 ขั้นตอนในการปฏิวัติครั้งเดียว มอเตอร์จริงใช้ขั้นตอนหลายสิบก้าวในการปฏิวัติครั้งเดียวนี่คือความสำเร็จของการสลับขั้วแม่เหล็กจำนวนมาก

การควบคุมคลื่น

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

การจัดการขั้นตอนแบบเต็ม

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

ควรพิจารณาว่าช่วงเวลาบนเพลาลอยตัวจาก 50 เป็น 100% ขึ้นอยู่กับว่าขดลวด 1 หรือ 2 เส้นเกี่ยวข้องหรือไม่

แม่นยำยิ่งขึ้นคือ microstepping. มันคล้ายกับรุ่นก่อนหน้า แต่แตกต่างกันตรงที่พลังของขดลวดไม่ได้ถูกจัดให้อย่างเต็มที่ แต่ค่อยๆเปลี่ยนไป ดังนั้นระดับของผลกระทบต่อโรเตอร์ของขดลวดแต่ละอันจะเปลี่ยนไปและมุมการหมุนของเพลาในขั้นตอนกลางจะแตกต่างกันอย่างราบรื่น

สถานที่รับสเต็ปเปอร์มอเตอร์

สถานที่รับสเต็ปเปอร์มอเตอร์

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

1. เครื่องพิมพ์มอเตอร์สเต็ปเปอร์สามารถยืนอยู่บนการหมุนของเพลาป้อนกระดาษ (แต่อาจมีมอเตอร์ DC พร้อมเซ็นเซอร์ดิสเพลสเมนต์)

2. สแกนเนอร์และ MFP สแกนเนอร์มักจะติดตั้งสเต็ปเปอร์มอเตอร์และชิ้นส่วนเชิงกลตามที่คู่มือการขนส่งชิ้นส่วนเหล่านี้ยังมีประโยชน์ในการพัฒนาเครื่องซีเอ็นซีที่ผลิตในบ้าน

3. ไดรฟ์ซีดีและดีวีดี นอกจากนี้คุณยังสามารถรับทุบและสกรูเพลาสำหรับผลิตภัณฑ์โฮมเมดและ CNC ต่างๆในพวกเขา

เพลาลาน

4. ฟลอปปี้ไดรฟ์ ฟลอปปีดิสก์ยังมีสเต็ปเปอร์มอเตอร์โดยเฉพาะไฟล์ฟลอปปี้ที่มีขนาด 5.25 นิ้ว

ฟลอปปี้ไดรฟ์

ขับมอเตอร์ Stepper

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

โดยหลักการแล้วเครื่องยนต์ขนาดเล็กมากสามารถเริ่มต้นได้โดยตรง จากหมุดของไมโครคอนโทรลเลอร์แต่โดยปกติแล้วจะยอมแพ้ได้ถึง 20-40 mA ซึ่งโดยส่วนใหญ่แล้วจะไม่เพียงพอ ดังนั้นนี่คือตัวอย่างของไดรเวอร์สำหรับสเต็ปเปอร์มอเตอร์:


1. บอร์ดที่ใช้ L293D มีจำนวนมากของพวกเขาหนึ่งในนั้นคือขายภายใต้แบรนด์ในประเทศ Amperka ภายใต้ชื่อ Troyka Stepper ตัวอย่างของการใช้งานในโครงการจริงจะแสดงในวิดีโอด้านล่าง ข้อดีของบอร์ดนี้คือมีชิปลอจิกที่สามารถลดจำนวนพินที่ใช้ในการควบคุมได้

ชิปนั้นทำงานภายใต้แรงดันไฟฟ้า 4.5-36V และสร้างกระแสได้สูงถึง 600mA-1A ขึ้นอยู่กับเคส IC


2. A4988 ใช้ไดรเวอร์ มันขับเคลื่อนด้วยแรงดันไฟฟ้าสูงถึง 35V สามารถทนกระแสได้สูงถึง 1A โดยไม่ต้องมีหม้อน้ำและมีหม้อน้ำสูงถึง 2A สามารถควบคุมเครื่องยนต์ทั้งในขั้นตอนทั้งหมดและบางส่วน - จาก 1/16 ของขั้นตอนเป็น 1 ขั้นตอนเพียง 5 ตัวเลือก มี H-bridges สองอัน การใช้ตัวต้านทานการปรับ (ดูในรูปด้านขวา) คุณสามารถตั้งค่ากระแสไฟขาออกได้

ขับมอเตอร์ Stepper

ขนาดขั้นตอนถูกตั้งค่าโดยสัญญาณที่อินพุต MS1, MS2, MS3

ขนาดขั้นตอนถูกตั้งค่าโดยสัญญาณที่อินพุต MS1, MS2, MS3

นี่คือแผนภาพการเชื่อมต่อของมันแต่ละพัลส์ที่อินพุต STEP ตั้งค่าเครื่องยนต์ให้หมุน 1 ขั้นตอนหรือไมโครสเต็ป

แผนภาพการเดินสายไฟ

3. ไดรเวอร์ที่ใช้ ULN2003 ทำงานร่วมกับมอเตอร์ 5 และ 12 V และสร้างกระแสได้สูงถึง 500 mA บนแผงวงจรส่วนใหญ่จะมีไฟ LED 4 ดวงเพื่อระบุการทำงานของแต่ละช่องสัญญาณ

ไดรเวอร์ที่ใช้ ULN2003

นอกจากนี้บนบอร์ดคุณยังสามารถดูขั้วต่อสำหรับการเชื่อมต่อมอเตอร์อย่างไรก็ตามยังมีขั้วต่อเหล่านี้จำนวนมากที่จำหน่ายพร้อมขั้วต่อนี้ ตัวอย่างของเครื่องยนต์ดังกล่าวเป็นรุ่น 5V - 28BYJ-48.

รุ่น - 28BYJ-48

และนี่ไม่ใช่ตัวเลือกไดรเวอร์ทั้งหมดสำหรับสเต็ปเปอร์มอเตอร์ซึ่งจริงๆแล้วมีมากกว่านั้น


การเชื่อมต่อกับไดรเวอร์ Arduino และมอเตอร์สเต็ป

ในกรณีส่วนใหญ่คุณต้องใช้ไมโครคอนโทรลเลอร์ที่จับคู่กับไดรเวอร์สำหรับสเต็ปเปอร์มอเตอร์ ลองดูแผนภาพการเชื่อมต่อและตัวอย่างรหัส พิจารณาการเชื่อมต่อตามไดรเวอร์ล่าสุดที่อยู่ในรายการ - ULN2003 ไปยังบอร์ด Arduino. ดังนั้นจึงมี 4 อินพุตพวกเขาลงชื่อเข้าเป็น IN1, IN2 และอื่น ๆ พวกเขาจะต้องเชื่อมต่อกับหมุดดิจิตอลของบอร์ด Arduino และมอเตอร์ควรเชื่อมต่อกับไดรเวอร์ดังแสดงในรูปด้านล่าง

การเชื่อมต่อกับไดรเวอร์ Arduino และมอเตอร์สเต็ป

นอกจากนี้ขึ้นอยู่กับวิธีการควบคุมคุณต้องใช้กับอินพุต 1 หรือ 0 จากหมุดเหล่านี้รวมถึงขดลวด 1 หรือ 2 ในลำดับที่ต้องการ รหัสสำหรับโปรแกรมควบคุมแบบเต็มขั้นตอนมีลักษณะดังนี้:

int in1 = 2;

int in2 = 3;

int in3 = 4;

int in4 = 5;

const int dl = 5;

การตั้งค่าเป็นโมฆะ () {

pinMode (in1, OUTPUT);

pinMode (in2, OUTPUT);

pinMode (in3, OUTPUT);

pinMode (in4, OUTPUT);

}

void loop () {

digitalWrite (in1, HIGH);

digitalWrite (in2, HIGH);

digitalWrite (in3, LOW);

digitalWrite (in4, LOW);

ล่าช้า (dl);

digitalWrite (in1, LOW);

digitalWrite (in2, HIGH);

digitalWrite (in3, HIGH);

digitalWrite (in4, LOW);

ล่าช้า (dl);

digitalWrite (in1, LOW);

digitalWrite (in2, LOW);

digitalWrite (in3, HIGH);

digitalWrite (in4, HIGH);

ล่าช้า (dl);

digitalWrite (in1, HIGH);

digitalWrite (in2, LOW);

digitalWrite (in3, LOW);

digitalWrite (in4, HIGH);

ล่าช้า (dl);

}

 

มันรวมถึงขดลวดในลำดับต่อไปนี้:

ลำดับคดเคี้ยว

นี่คือรหัสสำหรับโหมดครึ่งขั้นตอนดังที่คุณเห็นมันมีมากมายมากกว่าเนื่องจากมันเกี่ยวข้องกับการสลับขดลวดจำนวนมากขึ้น

int in1 = 2;

int in2 = 3;

int in3 = 4;

int in4 = 5;

const int dl = 5;

การตั้งค่าเป็นโมฆะ () {

pinMode (in1, OUTPUT);

pinMode (in2, OUTPUT);

pinMode (in3, OUTPUT);

pinMode (in4, OUTPUT);

}

void loop () {

digitalWrite (in1, HIGH);

digitalWrite (in2, LOW);

digitalWrite (in3, LOW);

digitalWrite (in4, LOW);

ล่าช้า (dl);

digitalWrite (in1, HIGH);

digitalWrite (in2, HIGH);

digitalWrite (in3, LOW);

digitalWrite (in4, LOW);

ล่าช้า (dl);

digitalWrite (in1, LOW);

digitalWrite (in2, HIGH);

digitalWrite (in3, LOW);

digitalWrite (in4, LOW);

ล่าช้า (dl);

digitalWrite (in1, LOW);

digitalWrite (in2, HIGH);

digitalWrite (in3, HIGH);

digitalWrite (in4, LOW);

ล่าช้า (dl);

digitalWrite (in1, LOW);

digitalWrite (in2, LOW);

digitalWrite (in3, HIGH);

digitalWrite (in4, LOW);

ล่าช้า (dl);

digitalWrite (in1, LOW);

digitalWrite (in2, LOW);

digitalWrite (in3, HIGH);

digitalWrite (in4, HIGH);

ล่าช้า (dl);

digitalWrite (in1, LOW);

digitalWrite (in2, LOW);

digitalWrite (in3, LOW);

digitalWrite (in4, HIGH);

ล่าช้า (dl);

digitalWrite (in1, HIGH);

digitalWrite (in2, LOW);

digitalWrite (in3, LOW);

digitalWrite (in4, HIGH);

ล่าช้า (dl);

}

 

โปรแกรมนี้รวมถึงขดลวดดังต่อไปนี้:

ลำดับคดเคี้ยว

ในการรวมข้อมูลที่ได้รับมาให้ดูวิดีโอที่มีประโยชน์:


ข้อสรุป

Stepper Motors เป็นที่นิยมในหมู่ Arduins พร้อมกับเซอร์โวเพราะมันช่วยให้คุณสร้างหุ่นยนต์และเครื่อง CNC หลังได้รับการช่วยเหลือจากความอุดมสมบูรณ์ในตลาดรองของไดรฟ์ออปติคัลไดรฟ์ที่ใช้ราคาถูกสุด ๆ

ดูได้ที่ bgv.electricianexp.com:

  • วิธีการแยกมอเตอร์เหนี่ยวนำออกจากมอเตอร์กระแสตรง
  • มอเตอร์สเต็ปเปอร์
  • ประเภทของมอเตอร์ไฟฟ้าและหลักการทำงาน
  • วิธีการสำหรับการอ่านและการจัดการพอร์ต Arduino I / O
  • การเชื่อมต่อและการเขียนโปรแกรม Arduino สำหรับผู้เริ่มต้น

  •