$5 stepper föraren (3 / 6 steg)
Steg 3: Stepper kod.
Denna kod är bara ett test, och kommer att öka motorn framåt och bakåt för att testa elektronik. Vi kommer att lägga upp riktiga koden senare.
Observera att den steg-riktningen ingång fungerar inte med denna kod.
Detta är ett test av drivrutinen. Observera att om du ändrar stift, måste du också
ändra dem i riktig kod. Ändra aldrig en PIN-kod till stift 2,
det klämmer fast behövs för ökning önskade avståndet att flytta
byte stepporty;
flyta val = 15. inversen av hastighet, lägre värde innebär snabbare rörelse.
kort x;
byte db = 4;
byte da = 3;
byte pb = 1;
byte pa = 0;
byte i = 5; //not används här
void setup() {
pinMode (db, produktionen);
pinMode (da, produktionen);
pinMode (pb, produktionen);
pinMode (pa, produktionen);
pinMode (i, ingång);
}
void loop() {
för (int x = 0; x < 408; x ++) {//steps 408 halv-steg, eller en full rotation på 200 steg-rev motorer (som de flesta av NEMA motorerna är)
FWD();
Delay(val);
}
Delay(200);
för (x = 0; x < 408; x ++) {
Back();
Delay(val);
}
Delay(200);
}
void fwd() {
växel (stepporty) {
fall 0:
One();
stepporty = 1;
bryta;
fall 1:
OneHalf();
stepporty = 2;
bryta;
fall 2:
Two();
stepporty = 3;
bryta;
fall 3:
twohalf();
stepporty = 4;
bryta;
fall 4:
Three();
stepporty = 5;
bryta;
fall 5:
threehalf();
stepporty = 6;
bryta;
fall 6:
Four();
stepporty = 7.
bryta;
fall 7:
fourhalf();
stepporty = 0;
bryta;
} }
void back() {
växel (stepporty) {
fall 2:
One();
stepporty = 1;
bryta;
fall 3:
OneHalf();
stepporty = 2;
bryta;
fall 4:
Two();
stepporty = 3;
bryta;
fall 5:
twohalf();
stepporty = 4;
bryta;
fall 6:
Three();
stepporty = 5;
bryta;
fall 7:
threehalf();
stepporty = 6;
bryta;
fall 0:
Four();
stepporty = 7.
bryta;
fall 1:
fourhalf();
stepporty = 0;
bryta;
} }
void fourhalf() {
digitalWrite (db, hög), //4
digitalWrite (da, låg);
digitalWrite (pb, låg);
digitalWrite (pa, hög);
}
void four() {
digitalWrite (db, hög);
digitalWrite (da, låg);
digitalWrite (pb, låg);
digitalWrite (pa, låg);
}
void threehalf() {
digitalWrite (db, hög);
digitalWrite (da, hög);
digitalWrite (pb, låg);
digitalWrite (pa, låg);
}
void three() {
digitalWrite (db, låg);
digitalWrite (da, hög);
digitalWrite (pb, låg);
digitalWrite (pa, låg);
}
void twohalf() {
digitalWrite (db, låg);
digitalWrite (da, hög);
digitalWrite (pb, hög);
digitalWrite (pa, låg);
}
void two() {
digitalWrite (db, låg);
digitalWrite (da, låg);
digitalWrite (pb, hög);
digitalWrite (pa, låg);
}
void onehalf() {
digitalWrite (db, låg);
digitalWrite (da, låg);
digitalWrite (pb, hög);
digitalWrite (pa, hög);
}
void one() {
digitalWrite (db, låg), //1
digitalWrite (da, låg);
digitalWrite (pb, låg);
digitalWrite (pa, hög);
}