דוחף זרם למנוע צעד A3967 – 50V
A3967 EasyDriver stepper motor driver
דוחף מנוע עם מיקרו בקר Atmel AT90USB1286 שמתאים למנוע צעד ביפולרי עד 750mA .
- מגיע כמודול מולחם
- מאפשר מיקרו-צעדים לסיבוב חלק
- מתח כניסה 3.3V
- מתח מקסימלי: 50V
- טווח מתח: 150mA-750mA
- 90 מעלות הפעלה
- 128kb פלאש
- גרסה: 4.4
הסבר הפעלה:
המודול הזה יכול להזיז מנוע צעד ביפולרי(4 חוטים) שצורך עד 750mA ו-50 וולט.
ארבעת החוטים של המנוע הולכים לחיבורים המתאימים (בדרך כלל אדום וצהוב הם זוג אחד של סליל וירוק ולבן הם זוג שני). יש חיבור אחד לכיוון(DIR) חיבור אחד לצעד(step) וגם שני פינים ששולטים במיקרו-סטפינג.
הפוטנציומטר הקטן באמצע קובע את הזרם שהמודול יכול לספק שהטווח הוא בין 150mA-750mA .
קוד:
#define stp 2 #define dir 3 #define MS1 4 #define MS2 5 #define EN 6 //Declare variables for functions char user_input; int x; int y; int state; void setup() { pinMode(stp, OUTPUT); pinMode(dir, OUTPUT); pinMode(MS1, OUTPUT); pinMode(MS2, OUTPUT); pinMode(EN, OUTPUT); resetEDPins(); //Set step, direction, microstep and enable pins to default states } void loop() { digitalWrite(EN, LOW); //Pull enable pin low to allow motor control StepForwardDefault(); ReverseStepDefault(); SmallStepMode(); } //Reset Easy Driver pins to default states void resetEDPins(){ digitalWrite(stp, LOW); digitalWrite(dir, LOW); digitalWrite(MS1, LOW); digitalWrite(MS2, LOW); digitalWrite(EN, HIGH); } //Default microstep mode function void StepForwardDefault(){ digitalWrite(dir, LOW); //Pull direction pin low to move "forward" for(x= 1; x<1000; x++) //Loop the forward stepping enough times for motion to be visible { digitalWrite(stp,HIGH); //Trigger one step forward delay(1); digitalWrite(stp,LOW); //Pull step pin low so it can be triggered again delay(1); } } //Reverse default microstep mode function void ReverseStepDefault(){ digitalWrite(dir, HIGH); //Pull direction pin high to move in "reverse" for(x= 1; x<1000; x++) //Loop the stepping enough times for motion to be visible { digitalWrite(stp,HIGH); //Trigger one step delay(1); digitalWrite(stp,LOW); //Pull step pin low so it can be triggered again delay(1); } } // 1/8th microstep foward mode function void SmallStepMode() { Serial.println("Stepping at 1/8th microstep mode."); digitalWrite(dir, LOW); //Pull direction pin low to move "forward" digitalWrite(MS1, HIGH); //Pull MS1, and MS2 high to set logic to 1/8th microstep resolution digitalWrite(MS2, HIGH); for(x= 1; x<1000; x++) //Loop the forward stepping enough times for motion to be visible { digitalWrite(stp,HIGH); //Trigger one step forward delay(1); digitalWrite(stp,LOW); //Pull step pin low so it can be triggered again delay(1); } Serial.println("Enter new option"); Serial.println(); } //Forward/reverse stepping function void ForwardBackwardStep(){ for(x= 1; x<5; x++) { //Loop the forward stepping enough times for motion to be visible //Read direction pin state and change it state=digitalRead(dir); if(state == HIGH) { digitalWrite(dir, LOW); } else if(state ==LOW){ digitalWrite(dir,HIGH); } for(y=1; y<1000; y++){ digitalWrite(stp,HIGH); //Trigger one step delay(1); digitalWrite(stp,LOW); //Pull step pin low so it can be triggered again delay(1); } } }
תודה רבה לבריאן שמאלץ שיצר את המודול הזה וגם כמובן לספארקפאן שעזרו עם הקוד.