עבור לתוכן

Ardiuno UNO, a4983 and stepper motor

Featured Replies

פורסם

אהלן

אני נתקל בבעיה המנוע לא זז, נראה לי שאני עובד עם קוד בעייתי

  // Stepper
#include <Stepper.h>

// steps value is 360 / degree angle of motor
#define STEPS 200

// create a object on pins 6 and 7
Stepper stepper(STEPS, 6,7);

void setup()
{
}
void loop()
{
///// Turn the stepper 200 steps with a 1 sec delay between steps at 60rpm
/// then reverse the direction and do 50 steps at 20rpm with a 1sec delay between steps
stepper.setSpeed(1);
stepper.step(200);
//delay(1000);
//stepper.setSpeed(20);
//stepper.step(-50);
//delay(1000);
}

אני משתמש בבטריה 12V.

מצורף תמונה של החיבורים

מקווה שמשהו פה יכול לעזור לי

תודה

איתמר

פורסם

עוד לא יצא לי לעבוד עם מנועים כאלה כך שאני שואל יותר מאשר עונה... אבל נדמה לי שכיוונת את המהירות ל-1 RPM, כלומר סיבוב אחד לדקה, ואתה מבקש ממנו לבצע סיבוב אחד ויחיד (200 צעדים, והרי הגדרת בהתחלה 200 צעדים לסיבוב). אז השלמה של הפקודה אמורה להימשך דקה... יכול להיות שפשוט לא חיכית מספיק? מה קורה אם אתה כותב setSpeed(60) ?

פורסם
  • מחבר

גאון! הוא מגיב יותר טוב אבל הוא זז מילימטר שמאלה וימינה אך אני מגדיר לו תנועה ארוכה יותר?

פורסם

קודם כל, אתה בטוח שהספריה Stepper מתאימה לעבודה עם a4983? יכול להיות שאובייקט stepper שלך שולח מידע מסוים בחוטים, ולוח המנוע מצפה למידע מסוג אחר... אם המנוע מסוגל לעבוד עם זרם חלש ומתח 5V, אולי כדאי לחבר אותו בזהירות ישירות לארדואינו ולראות מה קורה [עריכה: בעצם, נחכה למישהו שמבין יותר במנועים ויגיד אם מותר לעשות דבר כזה או שזה ישרוף הכל 8) ].

אפשרות נוספת היא שהעומס על המנוע גדול מדי (הוא מחובר למשהו?) או שהסוללה שחיברת לו כבר נחלשה.

פורסם

לא חיברת נכון את החוטים מהמנוע.

נסה להחליף בין החיבורי המנוע לבקר ה a4983 עד שזה יעבוד.

כדאי לך להדביק נייר דבק על ציר המנוע כדי לראות את התנועה בצורה נוחה יותר.

בהצלחה.

פורסם

עדכון בנושא, בעקבות מסרים שרצו מחוץ לפורום:

כמו שחשדתי, הספריה Stepper לא מיועדת לעבודה עם לוח בקרה כמו a4983. הסיגנלים שאובייקט stepper שולח דרך שני הפינים מיועדים ל"התנעה" ישירה של המנוע לפי תבנית ביטים חוזרת (01-11-10-00), ואילו הקלט שה-a4983 מצפה לו הוא פין אחד לכיוון (עם/נגד כיוון השעון) ופין אחד לסיבוב בפועל (צעד אחד עם כל עלייה מ-Low ל-High).

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

פורסם

רק תיקון קטן למי שיקרא את השרשור הזה בעתיד:

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

עדו,

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

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

פורסם

אם זה נכון, תשתמש ב analogWrite בשביל לשלוח PWM.

פורסם

אם מה נכון?

עם PWM אתה שולט על רוחב הפולס, אתה לא ממש שולט על כמות הפולסים.

  • 8 חודשים מאוחר יותר...
פורסם

תבדוק שלא שכחת לספק לרגל Enable רמה של "0"

בהצלחה

ארכיון

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

דיונים חדשים