תוכן עניינים:

Arduino: Precision Lib עבור מנוע צעד: 19 שלבים
Arduino: Precision Lib עבור מנוע צעד: 19 שלבים

וִידֵאוֹ: Arduino: Precision Lib עבור מנוע צעד: 19 שלבים

וִידֵאוֹ: Arduino: Precision Lib עבור מנוע צעד: 19 שלבים
וִידֵאוֹ: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, יולי
Anonim
Image
Image
משתנים גלובליים
משתנים גלובליים

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

תכונה חשובה בספרייה זו היא שהיא מאפשרת לך לבנות מכונת CNC משלך, שהיא לא בהכרח רק ה- X, Y, אלא גם מתג מקטעים, למשל, מכיוון שהוא אינו GRBL מוכן, אלא התכנות ש מאפשר לך להכין את המכונה האידיאלית עבורך.

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

שלב 1: ספריית StepDriver

ספרייה זו מכסה את שלושת סוגי הנהגים הנפוצים ביותר בשוק: A4988, DRV8825 ו- TB6600. הוא מגדיר את סיכות הנהגים ומאפשר להם לבצע את האיפוס וההצבה למצב שינה, כמו גם להפעיל ולבטל את יציאות המנוע הפועלות על הסיכה Enable. הוא גם קובע את כניסות סיכות המיקרו-שלבים של הנהג, ומגביל את המתגים ורמת ההפעלה שלהם (גבוהה או נמוכה). יש לו גם קוד תנועה מוטורית עם האצה רציפה ב- mm / s², מהירות מרבית ב- mm / s, ומהירות מינימלית ב- mm / s.

למי שצפה בחלקים 1 ו -2 של הסרטון Step Motor with Acceleration and End of Stroke, הורד את הספרייה החדשה הזמינה היום, כי ביצעתי כמה שינויים בקובץ הראשון הזה כדי להקל על השימוש בו.

שלב 2: משתנים גלובליים

אני מראה בדיוק למה מיועד כל אחד מהמשתנים הגלובליים.

שלב 3: פונקציות - הגדרת סיכות הנהג

פונקציות - הגדרת סיכות הנהג
פונקציות - הגדרת סיכות הנהג

כאן, אני מתאר כמה שיטות.

הגדרתי את ההגדרה Pinout ואת סיכות ה- Arduino כתפוקה.

שלב 4: פונקציות - פונקציות בסיסיות של הנהג

פונקציות - פונקציות בסיסיות של הנהג
פונקציות - פונקציות בסיסיות של הנהג

בחלק זה אנו עובדים עם תצורת הנהג ותפקודיו הבסיסיים.

שלב 5: פונקציות - הגדרת שלב מוטורי

פונקציות - הגדרת שלב המנוע
פונקציות - הגדרת שלב המנוע
פונקציות - הגדרת שלב המנוע
פונקציות - הגדרת שלב המנוע

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

שלב 6: פונקציות - הגדרת מצב שלב המנוע

פונקציות - הגדרת מצב שלב המנוע
פונקציות - הגדרת מצב שלב המנוע
פונקציות - הגדרת מצב שלב המנוע
פונקציות - הגדרת מצב שלב המנוע
פונקציות - הגדרת מצב שלב המנוע
פונקציות - הגדרת מצב שלב המנוע

טבלה זו מציגה את ההגדרות למצב שלב המנוע. הנה כמה דוגמאות.

שלב 7: פונקציות - הגדרת מתגי הגבול

פונקציות - הגדרת מתגי הגבול
פונקציות - הגדרת מתגי הגבול

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

שלב 8: פונקציות - קריאת מתגי גבול

פונקציות - קריאת מתגי גבול
פונקציות - קריאת מתגי גבול
פונקציות - קריאת מתגי גבול
פונקציות - קריאת מתגי גבול
פונקציות - קריאת מתגי גבול
פונקציות - קריאת מתגי גבול

החלק הזה שונה מזה של ה- Lib שהעמדתי לרשות בשבוע שעבר. למה שיניתי אותו? ובכן, יצרתי eRead להחליף כמה אחרים. כאן eRead יקרא את LVL, ה- DigitalRead (סיכה) ויחזיר TRUE. כל זה צריך להתבצע בגובה. העבודה הבאה עם המפתח הפעיל תהיה ברמה הנמוכה. אשתמש בו כאן כדי להראות לך את טבלת "האמת".

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

עכשיו, בתמונה זו bool code DRV8825, אני מראה את המנוע עדיין נע בכיוון ההולך וגדל. עם זאת, מתג הגבול המרבי מופעל. המנגנון, אם כן, חייב לעצור את התנועה.

לבסוף, אני מראה את אותה תנועה, אך בכיוון ההפוך.

כאן, כבר הפעלת מתג סוף הקורס.

שלב 9: פונקציות - הגדרת תנועה

פונקציות - הגדרת תנועה
פונקציות - הגדרת תנועה

התועלת העיקרית של שיטת motionConfig היא להמיר מילימטר לשנייה (מדידה המשמשת במכונות CNC) לשלבים, כדי לפגוש בקר של מנוע צעד. לכן, בחלק זה אני מייעץ את המשתנים כדי להבין את הצעדים ולא את המילימטרים.

שלב 10: פונקציות - פונקציית תנועה

פונקציות - פונקציית תנועה
פונקציות - פונקציית תנועה

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

שלב 11: פונקציות - פונקציית תנועה - משתנים

פונקציות - פונקציית תנועה - משתנים
פונקציות - פונקציית תנועה - משתנים

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

שלב 12: פונקציות - פונקציית תנועה - האצה

פונקציות - פונקציית תנועה - האצה
פונקציות - פונקציית תנועה - האצה
פונקציות - פונקציית תנועה - האצה
פונקציות - פונקציית תנועה - האצה

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

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

שלב 13: פונקציות - פונקציית תנועה - מהירות רציפה

פונקציות - פונקציית תנועה - מהירות רציפה
פונקציות - פונקציית תנועה - מהירות רציפה
פונקציות - פונקציית תנועה - מהירות רציפה
פונקציות - פונקציית תנועה - מהירות רציפה

כאן אנו שומרים על מספר הצעדים המשמשים בתאוצה, אנו ממשיכים במהירות מתמשכת, ושומרים על המהירות המרבית, שניתן לראות בתמונה למטה.

שלב 14: פונקציות - פונקציית תנועה - האטה

פונקציות - פונקציית תנועה - האטה
פונקציות - פונקציית תנועה - האטה
פונקציות - פונקציית תנועה - האטה
פונקציות - פונקציית תנועה - האטה

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

שלב 15: פונקציות - פונקציית תנועה - מהירות רציפה

פונקציות - פונקציית תנועה - מהירות רציפה
פונקציות - פונקציית תנועה - מהירות רציפה
פונקציות - פונקציית תנועה - מהירות רציפה
פונקציות - פונקציית תנועה - מהירות רציפה

אנו חוזרים למהירות רציפה לעבודה במחצית השנייה של המסלול, כפי שניתן לראות להלן.

שלב 16: פונקציות - פונקציית העברה - העברת סיבובים

פונקציות - פונקציית הזזה - העברת סיבובים
פונקציות - פונקציית הזזה - העברת סיבובים

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

שלב 17: תרשים תנועה - מהירות מיקום

תרשים תנועה - מהירות מיקום
תרשים תנועה - מהירות מיקום

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

שלב 18: תרשים תנועה - עמדה נגד. עמדה

תרשים תנועה - עמדה נגד. עמדה
תרשים תנועה - עמדה נגד. עמדה

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

שלב 19: תרשים תנועה - Velocity vs. רֶגַע

תרשים תנועה - Velocity vs. רֶגַע
תרשים תנועה - Velocity vs. רֶגַע

לבסוף, יש לנו את המהירות כפונקציה של הרגע, ובגלל זה, יש לנו קו ישר, מכיוון שהיא המהירות כפונקציה של הזמן.

מוּמלָץ: