- สเต็ปเปอร์มอเตอร์:
- ไดรเวอร์ ULN2003 Stepper Motor:
- ส่วนประกอบที่จำเป็น
- แผนภาพวงจรและคำอธิบาย
- คำอธิบายรหัส
Stepper Motorเป็นมอเตอร์ที่ออกแบบมาเป็นพิเศษซึ่งหมุนตามขั้นตอน ความเร็วของสเต็ปเปอร์มอเตอร์ขึ้นอยู่กับอัตราของสัญญาณไฟฟ้าที่ใช้ รูปแบบที่แตกต่างกันสามารถควบคุมทิศทางและประเภทการหมุนของสเต็ปเปอร์มอเตอร์ได้ ส่วนใหญ่มีสองประเภทมอเตอร์ stepper มีอยู่Unipolarและไบโพลาร์Unipolar ใช้งานง่ายควบคุมและรับได้ง่ายกว่า ในบทช่วยสอนนี้เรากำลังเชื่อมต่อ Stepper Motor กับ PIC Microcontroller PIC16F877A
เราใช้มอเตอร์สเต็ปเปอร์28BYJ-48 สำหรับโครงการนี้ซึ่งมีราคาถูกและหาได้ง่าย เป็นมอเตอร์สเต็ปเปอร์ยูนิโพลาร์5V DC นอกจากนี้เรายังใช้โมดูลที่มีให้กับมอเตอร์นี้ซึ่งประกอบด้วย IC ไดรเวอร์ Stepper Motor ULN2003 ULN2003เป็นอาร์เรย์คู่ดาร์ลิงตันซึ่งมีประโยชน์ในการขับเคลื่อนมอเตอร์นี้เนื่องจากไมโครคอนโทรลเลอร์ PIC ไม่สามารถให้กระแสเพียงพอในการขับเคลื่อน ULN2003Aสามารถขับเคลื่อนโหลด500mAโดยมีกระแสไฟฟ้าสูงสุด600mA
สเต็ปเปอร์มอเตอร์:
มาดูข้อมูลจำเพาะของStepper Motor 28BYJ-48จากแผ่นข้อมูล
วิธีหมุน Stepper Motor:
หากเราเห็นแผ่นข้อมูลเราจะเห็นหมุดออก
ภายในมอเตอร์มีขดลวดเคาะตรงกลางสองตัว สายสีแดงเป็นเรื่องธรรมดาสำหรับทั้งสองซึ่งจะมีการเชื่อมต่อที่VCC หรือ 5V
สายไฟอีก 4 เส้นสีชมพูแดงเหลืองและน้ำเงินจะควบคุมการหมุนโดยขึ้นอยู่กับสัญญาณไฟฟ้า นอกจากนี้ขึ้นอยู่กับการเคลื่อนไหวมอเตอร์นี้สามารถควบคุมได้โดยใช้ 3 ขั้นตอน โหมดไดรฟ์แบบเต็ม, โหมดครึ่งไดรฟ์และโหมดไดรฟ์คลื่น
สามโหมดการขับขี่ของ Stepper Motor:
ไดรฟ์เต็ม:หากแม่เหล็กไฟฟ้าสเตเตอร์สองตัวได้รับพลังงานพร้อมกันมอเตอร์จะทำงานด้วยแรงบิดเต็มที่เรียกว่าโหมดลำดับไดรฟ์เต็ม
ขั้นตอน |
สีน้ำเงิน |
สีชมพู |
สีเหลือง |
ส้ม |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Half-Drive:เมื่อมีการเพิ่มพลังงานหนึ่งและสองเฟสมอเตอร์จะทำงานในโหมดขับเคลื่อนครึ่งหนึ่ง ใช้เพื่อเพิ่มความละเอียดเชิงมุม ข้อเสียเปรียบคือแรงบิดน้อยกว่าที่เกิดขึ้นในการเคลื่อนไหวนี้
ขั้นตอน |
สีน้ำเงิน |
สีชมพู |
สีเหลือง |
ส้ม |
1 |
1 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
0 |
3 |
0 |
1 |
0 |
0 |
4 |
0 |
1 |
1 |
0 |
5 |
0 |
0 |
1 |
1 |
6 |
0 |
0 |
0 |
1 |
7 |
1 |
0 |
0 |
1 |
8 |
1 |
0 |
0 |
0 |
Wave Drive:ในโหมดนี้แม่เหล็กไฟฟ้าสเตเตอร์หนึ่งตัวจะเปิดอยู่ 4 ขั้นตอนดังต่อไปนี้เหมือนกับโหมด Full-drive ใช้พลังงานต่ำและแรงบิดต่ำ
ขั้นตอน |
สีน้ำเงิน |
สีชมพู |
สีเหลือง |
ส้ม |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
0 |
4 |
0 |
0 |
0 |
1 |
ก่อนหน้านี้เราได้เชื่อมStepper Motor กับไมโครคอนโทรลเลอร์อื่น ๆ:
Stepper Motor สามารถควบคุมได้โดยไม่ต้องใช้ไมโครคอนโทรลเลอร์ดูวงจร Stepper Motor Driver นี้
ไดรเวอร์ ULN2003 Stepper Motor:
Let 's เข้าใจคณะกรรมการแบ่งออกซึ่งประกอบด้วยULN2003 IC สิ่งสำคัญคือต้องเข้าใจพินออก
สีเหลืองส่วนที่จะใช้ในการเชื่อมต่อกับมอเตอร์ที่ส่วนสีแดงมีการแสดงจัมเปอร์, มันเป็นสิ่งสำคัญที่จะวางจัมเปอร์ที่จะเปิดใช้การป้องกันไดโอดอิสระเสรีสำหรับยานยนต์ อินพุตสีชมพูใช้สำหรับการเชื่อมต่อไมโครคอนโทรลเลอร์
เราจะหมุนมอเตอร์ในโหมดขับเคลื่อนเต็มตามเข็มนาฬิกาและหมุนอีกครั้งด้วยโหมดขับคลื่นในทิศทางทวนเข็มนาฬิกา ตรวจสอบวิดีโอสาธิตในตอนท้าย
ส่วนประกอบที่จำเป็น
- Pic16F877A
- ชุดโปรแกรม
- เขียงหั่นขนม
- คริสตัล 20Mhz
- ตัวเก็บประจุดิสก์ 33pF - 2 ชิ้น
- ตัวต้านทาน 4.7k
- Berg สายไฟและหมุด
- ULN2003A breakout board พร้อมกับ 28BYJ-48 Stepper motor
- สายเพิ่มเติมเพื่อเชื่อมต่อ
- หน่วยจ่ายไฟ 5V หรืออะแดปเตอร์ติดผนังที่มีพิกัด 500mA
แผนภาพวงจรและคำอธิบาย
ในแผนภาพวงจรทางด้านซ้ายจะมีการแสดง PIC16F877A และแสดงการเชื่อมต่อ ULN2003A ทางด้านขวา ULN2003 และชิ้นส่วน Stepper motor อยู่ภายในแผงวงจรไฟฟ้า
การเชื่อมต่อจากบอร์ดฝ่าวงล้อมไปยังหน่วยไมโครคอนโทรลเลอร์จะเป็น -
ก. IN1 => Pin33
ข. IN2 => พิน 34
ค. IN3 => Pin35
ง. IN4 => Pin36
ฉันเชื่อมต่อส่วนประกอบทั้งหมดและฮาร์ดแวร์ของคุณเพื่อหมุนมอเตอร์ Stepper ด้วยไมโครคอนโทรลเลอร์ PICพร้อมแล้ว
หากคุณยังใหม่กับไมโครคอนโทรลเลอร์ PIC มากกว่าให้ทำตามบทช่วยสอนไมโครคอนโทรลเลอร์ PIC ของเราที่ระบุด้วยการเริ่มต้นใช้งานไมโครคอนโทรลเลอร์ PIC
คำอธิบายรหัส
รหัสนี้เต็มรูปแบบสำหรับ PIC ตามเสต็ปเปอร์ขับมอเตอร์ จะได้รับในตอนท้ายของการกวดวิชานี้กับที่ วิดีโอสาธิตเช่นเคยเราต้องตั้งค่าบิตการกำหนดค่าในไมโครคอนโทรลเลอร์ pic จากนั้นเริ่มต้นด้วย ฟังก์ชัน หลักที่เป็นโมฆะ
นี่คือมาโครสำหรับบิตการกำหนดค่าของหน่วยไมโครคอนโทรลเลอร์และไฟล์ส่วนหัวของไลบรารี
#define _XTAL_FREQ 200000000 // ความถี่คริสตัลใช้ในการหน่วงเวลา # กำหนดความเร็ว 1 // ช่วงความเร็ว 10 ถึง 1 10 = ต่ำสุด 1 = สูงสุด # กำหนดขั้นตอน 250 // จะใช้ขั้นตอนเท่าใด # กำหนดตามเข็มนาฬิกา 0 // ทิศทางตามเข็มนาฬิกา macro #define anti_clockwise 1 // มาโครทิศทางทวนเข็มนาฬิกา
ในบรรทัดแรกเรากำหนดความถี่คริสตัลซึ่งจำเป็นสำหรับรูทีนดีเลย์ มาโครอื่น ๆ ใช้เพื่อกำหนดตัวเลือกที่เกี่ยวข้องกับผู้ใช้
หากคุณเห็นรหัสแสดงว่ามีฟังก์ชันสามอย่างที่กำหนดไว้สำหรับการขับเคลื่อนมอเตอร์ในสามโหมดโดยมีทิศทางตามเข็มนาฬิกาและทวนเข็มนาฬิกา นี่คือฟังก์ชั่นสามอย่าง:
1. เป็นโมฆะ full_drive (ทิศทางถ่าน)
2. เป็นโมฆะ half_drive (ทิศทางถ่าน)
3. โมฆะ wave_drive (ทิศทางถ่าน)
ตรวจสอบคำจำกัดความของฟังก์ชันเหล่านี้ในโค้ดทั้งหมดที่ระบุด้านล่าง:
ขณะนี้อยู่ในฟังก์ชัน หลักที่เป็นโมฆะ เรากำลังขับมอเตอร์ตามเข็มนาฬิกาโดยใช้โหมดขับเคลื่อนเต็มรูปแบบขึ้นอยู่กับขั้นตอนและหลังจากนั้นไม่กี่วินาทีเราก็หมุนมอเตอร์ทวนเข็มนาฬิกาอีกครั้งโดยใช้โหมดขับคลื่น
โมฆะ main (โมฆะ) { system_init (); ในขณะที่ (1) { / * ขับมอเตอร์ในโหมดขับเคลื่อนเต็มตามเข็มนาฬิกา * / สำหรับ (int i = 0; i
นี่คือวิธีที่เราสามารถหมุนสเต็ปเปอร์มอเตอร์ด้วยไมโครคอนโทรลเลอร์ PIC Stepper Motors มีประโยชน์อย่างมากในเครื่องจักร CNC หุ่นยนต์และโปรแกรมฝังตัวอื่น ๆ