מנוע צעד 28BYJ-48 – מדריך מקיף
תוכן עניינים
מבוא למנוע צעד
מנוע צעד הוא סוג מיוחד של מנוע חשמלי המאפשר שליטה מדויקת בתנועה הסיבובית שלו. בניגוד למנועי DC רגילים, מנוע צעד מסתובב בצעדים מדויקים ומוגדרים מראש.
יתרונות עיקריים:
1. דיוק גבוה בשליטה על זווית הסיבוב
2. יכולת החזקת מיקום ללא תזוזה (מומנט החזקה)
3. אמינות גבוהה בזכות המבנה הפשוט
4. מחיר נמוך יחסית
5. קל לשליטה באמצעות מיקרו-בקר
שימושים נפוצים:
– מדפסות תלת-ממד
– רובוטיקה
– מכונות CNC
– מערכות מיקום מדויקות
– מצלמות אבטחה מסתובבות
מפרט טכני של מנוע 28BYJ-48
– מתח עבודה: 5V DC
– יחס תמסורת (גיר): 1:64
– זווית צעד בסיסית: 5.625° (32 צעדים לסיבוב של הציר הפנימי)
– צעדים לסיבוב מלא: 2048
– משקל: כ-30 גרם
– קוטר: 28 מ”מ
– סוג: מנוע צעד חד-קוטבי (Unipolar)
מעגל ההרחבה ULN2003
מעגל ה-ULN2003 הוא דרייבר חיוני להפעלת מנוע הצעד.
תפקידו:
– הגברת הזרם הנדרש להפעלת המנוע.
– הגנה על הארדואינו מפני עומס יתר.
– המרת אותות הבקרה החלשים לאותות חזקים מספיק להפעלת המנוע.
– כולל דיודים להגנה מפני מתחי יתר.
מעגל ה-ULN2003 הוא למעשה מעגל משולב (IC) שמתפקד כדרייבר להפעלת עומסים חשמליים גדולים המעגל מכיל בתוכו שבעה צמדים של טרנזיסטורים בתצורה מיוחדת שנקראת דרלינגטון כאשר כל ערוץ מסוגל לספק זרם של עד 500 מיליאמפר.
תצורת הדרלינגטון היא למעשה חיבור של שני טרנזיסטורים בטור כאשר הטרנזיסטור הראשון מקבל את האות החלש מהארדואינו ומגביר אותו והטרנזיסטור השני מגביר שוב את האות המוגבר כך שמתקבלת הגברת זרם משמעותית של עד פי 500
המעגל כולל גם רכיבי הגנה חשובים כמו דיודות מובנות שמגנות מפני מתחי יתר נגדי הגבלת זרם והגנה מפני עומס יתר וקיטוב הפוך. המעגל מספק הגנה חיונית על הארדואינו שלנו כאשר הוא מבודד אותו מהמנוע ומונע נזק שעלול להיגרם מזרמי יתר ומתחים חוזרים מסלילי המנוע.
מבחינת היכולות החשמליות המעגל יכול לקבל מתח כניסה של 3.3V או 5V שמתאים לרוב המיקרו-בקרים ויכול לספק מתח יציאה של עד 50V עם זרם מקסימלי של 500mA לכל ערוץ וזרם שיא של עד 600mA היתרון הגדול של המעגל הוא בפשטות השימוש בו שכן אין צורך ברכיבים חיצוניים נוספים והוא מתחבר ישירות למנוע הצעד.
רצף ההפעלה של המנוע מתבצע כך שבכל פעם אנחנו מפעילים כניסה אחת במצב HIGH כאשר שאר הכניסות במצב LOW וכך אנחנו יוצרים את התנועה הסיבובית של המנוע.
חשוב לציין שבעבודה עם ULN2003 יש להקפיד על מספר דברים חשובים כמו:
א. חיבור נכון של ההארקות שימוש במתח הפעלה מתאים והקפדה על אי חריגה מהזרם המקסימלי המותר.
ב. כדאי להתחיל את העבודה עם מהירויות נמוכות ולוודא שכל החיבורים מהודקים היטב במקרה של בעיות כמו מנוע שלא זז יש לבדוק את החיבורים.
ג. במקרה של רעש מוגזם לבדוק את מתח ההפעלה ובמקרה של חימום יתר להוריד את קצב הפעולה.
ד. חשוב לציין שמעבר להפעלת מנועי צעד ה-ULN2003 יכול לשמש גם להפעלת נורות LED בעוצמה גבוהה הפעלת ממסרים בקרת מנועי DC והפעלת צגים שדורשים זרם גבוה.
הסבר מעמיק על 2048 צעדים
בואו נבין איך מגיעים למספר 2048 צעדים בצורה פשוטה:
1. המנוע הבסיסי (32 צעדים):
– הסטטור (החלק הקבוע) במנוע מחולק ל-32 צעדים בסיסיים
– כל צעד מייצג סיבוב של 11.25° (360° ÷ 32 = 11.25°)
2. מערכת הגירים (1:64):
– המנוע כולל מערכת גירים עם יחס של 1:64
– משמעות: על כל סיבוב מלא של הציר החיצוני, הציר הפנימי מסתובב 64 פעמים
3. החישוב הסופי:
– צעדים בסיסיים × יחס גירים = מספר הצעדים לסיבוב מלא
– 32 × 64 = 2048 צעדים
הערה לסטודנטים ותלמידים: זהו נושא מרכזי במבחן. חשוב להבין את הקשר בין הצעדים הבסיסיים (32) ויחס הגירים (64) שיוצר את ה-2048.
חיבור ההדקים – לוח ארדואינו אונו
חיבור המנוע לארדואינו דרך כרטיס ה-ULN2003:
1. חיבורי המנוע ל-ULN2003:
– IN1 → פין 8 בארדואינו
– IN2 → פין 9 בארדואינו
– IN3 → פין 10 בארדואינו
– IN4 → פין 11 בארדואינו
2. חיבורי מתח:
– חבר את ה-5V מהארדואינו ל-VCC בכרטיס ULN2003
– חבר את ה-GND מהארדואינו ל-GND בכרטיס
קוד הפעלה של מנוע הצעד
להורדת הספרייה: לחץ כאן
// טעינת הספרייה להפעלת מנוע צעד
#include
// הגדרת מספר הצעדים לסיבוב מלא של המנוע
// 32 צעדים בסיסיים × 64 (יחס גירים) = 2048
#define STEPS_PER_REV 2048
// ******* הגדרת הפינים *******
// חיבור המנוע דרך דרייבר ULN2003 לארדואינו
#define IN1 8 // חיבור הפין הראשון
#define IN2 9 // חיבור הפין השני
#define IN3 10 // חיבור הפין השלישי
#define IN4 11 // חיבור הפין הרביעי
// יצירת אובייקט מסוג Stepper
// שימו לב: סדר החיבורים הוא IN1, IN3, IN2, IN4
// סדר זה חשוב לתנועה חלקה של המנוע
Stepper myStepper(STEPS_PER_REV, IN1, IN3, IN2, IN4);
void setup()
{
// אתחול התקשורת הטורית במהירות 9600
Serial.begin(9600);
// הדפסת הודעת התחלה
Serial.println("בדיקת מנוע צעד - התחלה");
// קביעת מהירות המנוע (בסיבובים לדקה)
// מומלץ להתחיל במהירות נמוכה של 10-15 סיבובים לדקה
myStepper.setSpeed(10);
}
void loop()
{
// ******* סיבוב מלא קדימה *******
Serial.println("מסתובב קדימה סיבוב מלא...");
// סיבוב של 2048 צעדים = סיבוב מלא
myStepper.step(STEPS_PER_REV);
// המתנה של שנייה
delay(1000);
// ******* חצי סיבוב אחורה *******
Serial.println("מסתובב אחורה חצי סיבוב...");
// סיבוב של 1024 צעדים = חצי סיבוב (בכיוון ההפוך)
myStepper.step(-STEPS_PER_REV / 2);
// המתנה של שנייה
delay(1000);
// ******* רבע סיבוב קדימה *******
Serial.println("מסתובב קדימה רבע סיבוב...");
// סיבוב של 512 צעדים = רבע סיבוב
myStepper.step(STEPS_PER_REV / 4);
// המתנה ארוכה יותר - 2 שניות
delay(2000);
}
נקודות חשובות להבנת פעולת המנוע
1. כיוון הסיבוב:
א. כאשר נשתמש בערך חיובי בפונקציה myStepper.step, המנוע יסתובב בכיוון השעון
ב. כאשר נשתמש בערך שלילי בפונקציה myStepper.step, המנוע יסתובב נגד כיוון השעון
2. שליטה במהירות: השליטה במהירות המנוע מתבצעת באמצעות הפונקציה setSpeed:
– ככל שנגדיל את הערך בפונקציה זו, המנוע יסתובב מהר יותר
– מומלץ להתחיל במהירויות נמוכות ולהעלות בהדרגה
3. חישוב זוויות וצעדים:
– סיבוב מלא (360 מעלות) = 2048 צעדים
– חצי סיבוב (180 מעלות) = 1024 צעדים (STEPS_PER_REV/2)
– רבע סיבוב (90 מעלות) = 512 צעדים (STEPS_PER_REV/4)
– שמינית סיבוב (45 מעלות) = 256 צעדים (STEPS_PER_REV/8)
טיפ: בעזרת החישובים האלה, אפשר ליצור תנועות מדויקות בכל זווית שנרצה על ידי חישוב פשוט של מספר הצעדים הנדרש. פשוט נחלק את 2048 במספר המתאים כדי לקבל את הזווית הרצויה.