CRANE spelet (2 / 34 steg)
Steg 2: Kontrollera en stepper med joy stick
Nästa måste vi kontrollera en stegmotor potentiometern på joysticken.
Hårdvara:
Joystick -> Arduino (analog i) -> Arduino (digital utgång) -> Stepper drivrutin -> stegmotor
Jag körde detta med EasyDriver från Sparkfun genom www.SchmalzHaus.com/EasyDriver
Det är väl märkta och kan köra en medellång medelstora stegmotor från USB-nätet. (i det här exemplet jag använder en NEM17 från Keling teknik).
Skruv-Shield är av ZachHoeken: http://reprap.org/bin/view/Main/Arduino_Breakout_1_4
Kod för att styra stegmotor från joystick potentiometer
/////////////////////// Arduino ///////////////////////
POTTEN för att styra en stepper hastighet och riktning *** / /
deklarera pins
int potPin = 1;
int Step_X = 13.
int Dir_X = 12;
int Enable_X = 8;
deklarera värden
int Speed_X = 0; steg hastighet (fördröjning mellan stegen)
int val = 0;
int j = 0;
void setup() {
pinMode (Step_X, OUTPUT);
pinMode (Dir_X, OUTPUT);
pinMode (Enable_X, OUTPUT);
Serial.BEGIN(9600); Observera att seriell comm kan användas för att felsöka
men det kommer att sakta ner koden och bromsa stegmotor mycket
(och vara förvirrande för mig)
}
void loop() {
Val = analogRead(potPin); läsa värdet från sensorn
j = val - 517; 517 är center positioner - hur långt från centrum?
j = abs(j); absolut värde
Speed_X = 70000/j; Denna matematik inverterar värdet och skalor som behövs
(värde hittats genom trial and error)
Fördröjningen mellan steg bestämmer hastigheten på motorn
Så, dröjsmål upp = hastighet ner
om (val > = 520) {
digitalWrite(Enable_X,LOW); aktiverar
digitalWrite (Dir_X, hög); Ange riktning
digitalWrite(Step_X,HIGH);
delayMicroseconds(2);
digitalWrite(Step_X,LOW);
delayMicroseconds(Speed_X);
}
om (val < = 510) {
digitalWrite(Enable_X,LOW); / / aktivera
digitalWrite (Dir_X, låg); Andra hållet
digitalWrite(Step_X,HIGH);
delayMicroseconds(2);
digitalWrite(Step_X,LOW);
delayMicroseconds(Speed_X);
}
om (val < = 520 & & val > = 510) {
digitalWrite(Enable_X,HIGH); Inaktivera stepper motor om joystic är i centrum
}
}