Update : Es wird der AS5048B , wir werden die I2C Schnittstelle dafür benützen
Update : Es wird der AS5048B , wir werden die I2C Schnittstelle dafür benützen
Alles funktioniert soweit so gut ,nur es scheitert gerade ein bisschen am Programm.
Jedes mal wenn wir den Joystick bewegen , bewegt er sich in diese Richtung . Jetzt sollte er dort aber stehen bleiben und verweilen , bis der Joystick in die andere Richtung bewegt wird .
Ich habe schon jegliche schleifen mit Bedingungen versucht damit er bei einem kleiner werdenden Wert sich nicht mehr zurück bewegt . Aber er tut es einfach nicht .
Die Auflösung des Analog In = 2^10 (1024) . Das heißt er bewegt sich erstmal beim einschalten 512 Schritte , dort verweilt er dann .
Er sollte aber erst mal stehen bleiben und sich nur bewegen wenn ich den Joystick bewege .
#include <AccelStepper.h>
//Stepper Definieren
AccelStepper stepper(1,13,12); // 1= Driver , 7= Step , 6= F/R
#define ANALOG_IN A0
void setup()
{
analogReadResolution(10);
stepper.setMaxSpeed(1000000);
stepper.setAcceleration(10000);
Serial.begin(9600);
}
void loop()
{
// Neue Position lesen
static int LASTanalog_in;
int analog_in = analogRead(ANALOG_IN);
if (analog_in != LAST_analog_in)
{
stepper.moveTo(analog_in);
LASTanalog_in = analog_in;
}
stepper.run();
}
Serial.println(analog_in);
}
Dieses Programm funktioniert , und ist genau dieses bei dem er sich immer wieder zurück bewegt !
Vill hat ja wer einen Rat :/ !
Gruß
#include <AccelStepper.h>
//Stepper Definieren
AccelStepper Stepper0(1,4,3); // 1= Driver , 4= Step , 3= F/R
AccelStepper Stepper1(1,7,6); // 1= Driver , 7= Step , 6= F/R
AccelStepper Stepper2(1,10,9); // 1= Driver , 10= Step , 9= F/R
AccelStepper Stepper3(1,13,12); // 1= Driver , 13= Step , 12= F/R
#define ANALOG_IN0 A0
#define ANALOG_IN1 A1
#define ANALOG_IN2 A2
#define ANALOG_IN3 A3
void setup()
{
Stepper0.setMaxSpeed(10000);
Stepper0.setAcceleration(10000);
Stepper1.setMaxSpeed(10000);
Stepper1.setAcceleration(1000);
Stepper2.setMaxSpeed(10000);
Stepper2.setAcceleration(1000);
Stepper3.setMaxSpeed(10000);
Stepper3.setAcceleration(1000);
Serial.begin(9600);
analogReadResolution(10);
}
void loop()
{
// Read new position Stepper 1
int analog_in0 = analogRead(ANALOG_IN0);
Stepper0.setSpeed(512-analog_in0) ;
// Read new position Steppper 2
int analog_in1 = analogRead(ANALOG_IN1);
Stepper1.setSpeed(512-analog_in1) ;
// Read new position Stepper 3
int analog_in2 = analogRead(ANALOG_IN2);
Stepper2.setSpeed(512-analog_in2) ;
// Read new position Stepper 4
int analog_in3 = analogRead(ANALOG_IN3);
Stepper3.setSpeed(512-analog_in3) ;
Stepper0.run();
Stepper1.run();
Stepper2.run();
Stepper3.run();
}
Ich habe gerade ein Programm geschrieben , was eigentlich sehr simpel ist nur es funktioniert nicht .
Wenn ich einen der POTis bewege bewegen sich alle Stepper .
Kann mir vill jemand helfen , ich find den fehler nicht . Ich habe es auch schon mit allen anderen Befehlen versucht ->http://www.airspayce.com/mikem/ardui...aeb5542b0b7514
Gruß
Geändert von jok3r (31.01.2014 um 14:56 Uhr)
Lesezeichen