מנוע צעד 28BYJ-48: כל מה שאתה צריך לדעת

מנוע צעד 28byj-48

El 28BYJ-48 הוא מנוע צעד חד קוטבי עלות נמוכה ודיוק גבוה, אידיאלי עבור פרויקטי אלקטרוניקה, עבור מדפסות תלת מימד, מכונות CNC ורובוטיקה. גודלו הקומפקטי, צריכת החשמל הנמוכה וקלות השימוש שלו הופכים אותו לבחירה פופולרית עבור חובבי אלקטרוניקה ומקצוענים.

יתר על כן, יחד עם מנוע זה, א מודול עם ULN2003, לשליטה שלך. בדרך זו, יש לנו את כל הדרוש כדי שנוכל להשתמש במערכת זו במלואה, באמצעות מיקרו-בקר או לוח ארדואינו או דומה.

מהו מנוע צעד 28BYJ-48?

מנוע חשמלי פנימי: סטטור-רוטור

Un מנוע צעד הוא סוג של מנוע חשמלי שנע בצעדים זוויתיים קטנים, ולא בסיבוב מתמשך. זה עובד באמצעות סט של אלקטרומגנטים המופעלים ברצף מסוים. על ידי הפעלת אלקטרומגנטים שונים נוצר שדה מגנטי המושך את הרוטור של המנוע וגורם לו להסתובב צעד אחד בכל פעם. מספר הצעדים לכל סיבוב ודיוק התנועה תלויים בתכנון המנוע הספציפי וברצף הבקרה בו נעשה שימוש.

בתוך מנועי צעד יש לנו שני סוגים:

  • חד קוטבי- יש להם סט סלילים בודד ודורשים בקר מיוחד כדי להפוך את הזרם ולגרום למנוע להסתובב בשני הכיוונים.
  • דו קוטבי- יש להם שני סטים של סלילים עצמאיים, המאפשרים להם להסתובב לשני הכיוונים ללא צורך בבקר מיוחד.

במקרה של 28BYJ-28 זה סוג חד קוטבי, כפי שציינתי קודם. ובתוך קבוצה זו, הוא מאופיין בכך שיש לו את הדברים הבאים מפרטים:

  • סטפר חד קוטבי: שליטה פשוטה עם 4 כבלים בלבד.
  • מפחית משולב: מציע דיוק גבוה (0.088 מעלות לכל צעד) ומומנט (3 N·cm).
  • צריכה נמוכה: 83 mA (דגם 5V) או 32 mA (דגם 12V).
  • האכלה: 5V או 12V (תלוי בדגם).
  • מחיר חסכוני: מ-1.2 אירו ליחידה, או קצת יותר אם הם כוללים מודול ULN2003.

כ יישומים אפשריים, כבר הזכרתי כמה מהם בעבר, אבל כאן אני נותן לך שוב כמה רעיונות לפרויקטים שלך:

  • בקרת שסתומים הידראוליים ופנאומטיים.
  • רובוטים מפרקים וזרועות רובוטיות.
  • מיקום חיישן.
  • שולחנות מסתובבים לסורקים.
  • מדפסות תלת מימד.
  • מכונות CNC.

מנוע הצעד לא עובד לבד, הוא דורש אלמנט נוסף. במקרה הזה, ה-28BYJ-48 נשלט על ידי לוח עם ULN2003 משולב, המאפשר להגביר את הזרם של יציאות הארדואינו כדי להפעיל את סלילי המנוע. על ידי הפעלת הסלילים ברצף הנכון, המנוע מסתובב צעד אחר צעד בדיוק רב.

סוגי רצפי בקרה ושלבים

שם רצפי בקרה שונים עבור ה-28BYJ-48, הנפוצים ביותר הם:

  • רצף גלים מלא: מפעיל את כל הסלילים בו זמנית.
  • רצף חצי צעד: מפעיל שני סלילים סמוכים בו זמנית.
  • רצף צעדים מיקרוסקופיים: מפעיל סליל אחד בכל פעם.

בוא נראה השלבים בפירוט:

  • רצף 1-פאזי: ברצף חד פאזי אנו מפעילים סליל בודד בכל פעם. אם לוקחים את רצף ההצתה הזה לטבלה, יהיה צורך להפיק את הדברים הבאים בפינט המנוע:
פאסו A B א' ב'
1 ON כבוי כבוי כבוי
2 כבוי ON כבוי כבוי
3 כבוי כבוי ON כבוי
4 כבוי כבוי כבוי ON
  • רצף דו-פאזי: אנו מפעילים שני סלילים קורלטיביים בכל שלב, כך שהשדה המגנטי שנוצר גדול יותר (41% יותר) כך שלמנוע יש יותר מומנט, כלומר נקבל יותר חוזק. כנקודה שלילית, אנו מכפילים את צריכת האנרגיה. לגבי הטבלה, זה יהיה:
פאסו A B א' ב'
1 ON ON כבוי כבוי
2 כבוי ON ON כבוי
3 כבוי כבוי ON ON
4 ON כבוי כבוי ON
  • רצף של חצי צעד: זה עוד אחד מהשלבים שאנחנו הולכים לראות, אתה יכול לחוות את מה שהכי מעניין אותך. כאן אנו מפעילים לסירוגין סלילים אחד ושני, ומשיגים דיוק של חצי צעד. הוא משמש ביישומים שבהם יש צורך בדיוק הגבוה ביותר, למרות שיכולות להיות בעיות כאשר היישום נמצא במגבלת המומנט. ביטוי הרצף בצורת טבלה מביא ל:
חצי צעד A B א' ב'
1 ON כבוי כבוי כבוי
2 ON ON כבוי כבוי
3 כבוי ON כבוי כבוי
4 כבוי ON ON כבוי
5 כבוי כבוי ON כבוי
6 כבוי כבוי ON ON
7 כבוי כבוי כבוי ON
8 ON כבוי כבוי ON

28BYJ-28 עם Arduino

28byj-48 עם ארדואינו

הדבר הראשון הוא לחבר כראוי את מודול ומנוע 28byj-48 ללוח Arduino שלנו, כדי לעשות זאת, אתה פשוט צריך לעשות את החיבורים הבאים:

  • סיכה - מ-ULN2003 ל-GND של Arduino.
  • Pin + של ה-ULN2003 ל-Vcc (5v או במקרים אחרים, אם זה מנוע 12v, יהיה צורך להשתמש בספק כוח עם המתח הזה) מ-Arduino.
  • IN1, IN2, IN3 ו-IN4 של ה-ULN2003 לכניסות הדיגיטליות D8, D9, D10 ו-D11 של הארדואינו.
  • מנוע 28byj-48, פשוט חבר אותו ליציאה במודול ULN2003.

עכשיו כשאתה מחובר, הדבר הבא הוא להשתמש דוגמה ב- Arduino IDE, שבו אתה יכול להשתמש כפי שהוא כדי להתנסות או לשנות אותו לפי טעמך. בדוגמה זו, כל טבלאות הפאזות מוגמרות, כמו // לפני השורה, אתה יודע... אם אתה רוצה להשתמש באחת מהן, פשוט מחק // לפני ההוראות.

//Definir los pines
const int motorPin1 = 8;    // 28BYJ48 In1
const int motorPin2 = 9;    // 28BYJ48 In2
const int motorPin3 = 10;   // 28BYJ48 In3
const int motorPin4 = 11;   // 28BYJ48 In4
                   
//Definición de variables
int motorSpeed = 1200;   //Velocidad del motor
int stepCounter = 0;     //Contador de pasos
int stepsPerRev = 4076;  //Pasos para un giro completo

//Tablas de secuencia (descomentar la que necesites)
//Secuencia 1-fase
//const int numSteps = 4;
//const int stepsLookup[4] = { B1000, B0100, B0010, B0001 };

//Secuencia 2-fases
//const int numSteps = 4;
//const int stepsLookup[4] = { B1100, B0110, B0011, B1001 };

//Secuencia media fase
//const int numSteps = 8;
//const int stepsLookup[8] = { B1000, B1100, B0100, B0110, B0010, B0011, B0001, B1001 };

void setup()
{
  //Declarar los pines usados como salida
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
}

void loop()
{
  for (int i = 0; i < stepsPerRev * 2; i++)
  {
    clockwise();
    delayMicroseconds(motorSpeed);
  }
  for (int i = 0; i < stepsPerRev * 2; i++)
  {
    anticlockwise();
    delayMicroseconds(motorSpeed);
  }
  delay(1000);
}

void clockwise()
{
  stepCounter++;
  if (stepCounter >= numSteps) stepCounter = 0;
  setOutput(stepCounter);
}

void anticlockwise()
{
  stepCounter--;
  if (stepCounter < 0) stepCounter = numSteps - 1;
  setOutput(stepCounter);
}

void setOutput(int step)
{
  digitalWrite(motorPin1, bitRead(stepsLookup[step], 0));
  digitalWrite(motorPin2, bitRead(stepsLookup[step], 1));
  digitalWrite(motorPin3, bitRead(stepsLookup[step], 2));
  digitalWrite(motorPin4, bitRead(stepsLookup[step], 3));
}


היה הראשון להגיב

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.