כללי:
“מנוע צעד”‘ ראו תיאור ב wikipedia.

נקנה ב spark fun. מגיע יחד עם כבל.
בכדי להפעיליש לעבוד עם הבקר EasyDriver v3 Stepper Motor Driver .

שנקנה ב Sparkfun. עמוד באתר של היצרן.
הסבר טכני:
הסבר מלא לבניית המעגל ותוכנה מבלוג. תמצית של ההסבר – בהמשך.
מעגל:
רכיבים:
-
המנוע + מחבר מתאים
-
בקר EasyDriver
-
שנאי 12V
-
מטריצה וחוטים
ראשית, יש לוודא שאין מקורות מתח מחוברים לפני הבניה. אין לחבר את המעגל לשנאי לפני שמחברים את המנוע (או לנתק את המנוע כאשר המעגל מחובר לחשמל).
יש לבנות את המעגל לפי הצילום הבא (מתוך הבלוג הנ”ל):
תוכנה:
שני פינים של הארדואינו מחוברים לבקר ושולטים במנוע:
-
פין 3 – נקרא בתוכנה dirpin ושולט בכיוון הסיבוב.
-
פין 12 – נקרא בתוכנה steppin וגורם למנוע להסתובב צעד אחד בכל פעם שהוא הופך מ- HIGH ל- LOW.
התוכנה שלהלן (שוב, מתוך הבלוג) מסובבת את המנוע 4000 צעדים לכיוון אחד ואז 4000 צעדים לכיוון השני וחוזר חלילה. הכיוון נקבע על-ידי כתיבה ל- dirpin (כלומר, HIGH לכיוון אחד ו- LOW לכיוון השני).
כל צעד (סיבוב זעיר) של המנוע מבוצע על-ידי כתיבת ל- steppin של HIGH ומיד אח”כ LOW. ניתן לשנות את מהירות הסיבוב על-ידי הגדלת או הקטנת ההמתנות בין הצעדים (בתוכנה – מבוצע על-ידי פקודת delayMicroseconds, כלומר המתנה של מיליוניות שניה). המתנה קצרה מדי (קטנה מ- 100 מיקרושניות) עלולה להיות בעייתית משום שתגרום למנוע “להחמיץ” צעדים ובכך תהפוך אותו לאיטי יותר ומדוייק פחות.
////////////////////////////////////////////////////////
// Stepper Motor skecth for use with the EasyDriver 3.1
////////////////////////////////////////////////////////
// Dan Thompson 2008
//
// Inpired by the code and chat on this thread.
// http://forum.sparkfun.com/viewtopic.php?t=10378&highlight=easydriver
//
// Use this code at your own risk.
// For all the product details visit http://greta.dhs.org/EasyDriver/
// For the full tutorial visit http://danthompsonsblog.blogspot.com/
//
int dirpin = 3;
int steppin = 12;
void setup() {
Serial.begin(9600);
pinMode(dirpin, OUTPUT);
pinMode(steppin, OUTPUT);
}
void loop()
{
int i;
digitalWrite(dirpin, LOW); // Set the direction.
delay(100);
Serial.println(">>");
for (i = 0; i<4000; i++) // Iterate for 4000 microsteps.
{
digitalWrite(steppin, LOW); // This LOW to HIGH change is what creates the
digitalWrite(steppin, HIGH); // "Rising Edge" so the easydriver knows to when to step.
delayMicroseconds(200); // This delay time is close to top speed for this
} // particular motor. Any faster the motor stalls.
digitalWrite(dirpin, HIGH); // Change direction.
delay(100);
Serial.println("<<");
for (i = 0; i<4000; i++) // Iterate for 4000 microsteps
{
digitalWrite(steppin, LOW); // This LOW to HIGH change is what creates the
digitalWrite(steppin, HIGH); // "Rising Edge" so the easydriver knows to when to step.
delayMicroseconds(200); // This delay time is close to top speed for this
} // particular motor. Any faster the motor stalls.
}
קישורים נוספים:
קיימת ספרייה ל stepper מ arduino.cc, אבל היא מתאימה לעבודה עם רכיבים אחרים.
