Stap 2: Bepalen een stepper met joystick
Vervolgens moeten we om te controleren van een stappenmotor de potentiometer op de joystick.
Hardware:
Joystick -> Arduino (analoog in) -> Arduino (digital out) -> Stepper driver -> stappenmotor
Ik heb dit met behulp van de EasyDriver van Sparkfun door www.SchmalzHaus.com/EasyDriver
Het is goed gemarkeerd en een medium formaat stappenmotor kunt uitvoeren vanaf de USB-voeding. (in dit voorbeeld gebruik ik een NEM17 van Keling technologie).
De schroef-Shield is door ZachHoeken: http://reprap.org/bin/view/Main/Arduino_Breakout_1_4
Code waarmee stappenmotor van joystick potentiometer
/////////////////////// Arduino ///////////////////////
POT om een controle stepper snelheid en richting *** / /
verklaar pinnen
int potPin = 1;
int Step_X = 13;
int Dir_X = 12;
int Enable_X = 8;
verklaren van waarden
int Speed_X = 0; stap snelheid (vertraging tussen stappen)
int val = 0;
int j = 0;
VOID Setup {}
pinMode (Step_X, uitvoer);
pinMode (Dir_X, uitvoer);
pinMode (Enable_X, uitvoer);
Serial.begin(9600); Merk op dat seriële comm kan worden gebruikt om te debuggen
maar het zal vertragen de code en vertragen de stappenmotor alot
(en verwarrend voor mij)
}
void loop {}
Val = analogRead(potPin); luiden naar de waarde van de sensor
j = val - 517; center posities - 517 is hoe ver van centrum?
j = abs(j); absolute waarde
Speed_X = 70000/j; Deze wiskunde keert u de waarde en is volledig schaalbaar nodig
(waarde gevonden via trial and error)
De vertraging tussen stappen bepaalt de snelheid van de motor
Dus, vertraging omhoog = snelheid omlaag
Als (val > = 520) {}
digitalWrite(Enable_X,LOW); inschakelen
digitalWrite (Dir_X, hoge); Set richting
digitalWrite(Step_X,HIGH);
delayMicroseconds(2);
digitalWrite(Step_X,LOW);
delayMicroseconds(Speed_X);
}
Als (val < = 510) {}
digitalWrite(Enable_X,LOW); / / enable
digitalWrite (Dir_X, laag); Andere richting
digitalWrite(Step_X,HIGH);
delayMicroseconds(2);
digitalWrite(Step_X,LOW);
delayMicroseconds(Speed_X);
}
Als (val < = 520 & & val > = 510) {}
digitalWrite(Enable_X,HIGH); de stappenmotor uitschakelen als de joystic in het centrum ligt
}
}