Hallo!
Ich habe ein Problem mit dem Ansteuern eines Steppers von Processing aus. Ich sitze bereits ewig dran und finde den Fehler einfach nicht. Jetzt hoffe ich, dass mir hier jemand weiterhelfen kann.
Ich nutze:
Arduino uno, Pololu stepper driver und einen 4V, 1,2A Pololu-Schrittmotor
Wenn ich jetzt folgenden Code Auf den uno lade läuft alles wie es soll:
void setup() {
// setzen der Digitalpins 1 und 2 als Ausgang.
pinMode(0, OUTPUT); // Standby (High = Motor an)
pinMode(1, OUTPUT); // Drehrichtung (High = Drehrichtung rechts)
pinMode(2, OUTPUT); // Step
digitalWrite(0, HIGH);
}
void loop() {
digitalWrite(1, HIGH); // Drehrichtung links
digitalWrite(2, HIGH); // +1 Step
delay(1); // warte eine tausenstel Sekunde
digitalWrite(2, LOW); // +1 Step
delay(1); // warte eine tausenstel Sekunde
}
Mein Problem tritt erst auf wenn ich genau das Selbe von Processing aus versuche. Dazu habe ich "Standard-Firmata" auf den Chip geladen und folgendes in Processing geschrieben:
import processing.serial.*;
import cc.arduino.*;
Arduino arduino;
int step = 2;
int direction= 1;
int standby= 0;
void setup()
{
//println(Arduino.list());
arduino = new Arduino(this, Arduino.list()[0], 57600);
arduino.pinMode(step, Arduino.OUTPUT);
arduino.pinMode(direction, Arduino.OUTPUT);
arduino.pinMode(standby, Arduino.OUTPUT);
arduino.digitalWrite(standby, Arduino.HIGH);
}
void draw()
{
arduino.digitalWrite(direction, Arduino.LOW);
arduino.digitalWrite(step, Arduino.HIGH);
delay(100);
arduino.digitalWrite(step, Arduino.LOW);
delay(100);
}
Was jetzt passiert verstehe ich einfach nicht. Der Stepper bewegt sich immer abwechselnd einen schritt vor und dann wieder einen zurück.
Ich denke mal, dass da ein ganz simpler Denkfehler hinter steckt.
Kann mir jemand helfen?
Vielen Dank schoneinmal im Voraus!