Go Down

Topic: Stepper mit processing ansteuern (Read 1 time) previous topic - next topic

till_

Feb 19, 2012, 07:31 pm Last Edit: Feb 19, 2012, 07:44 pm by till_ Reason: 1
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:
Code: [Select]
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:

Code: [Select]
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!

uwefed

Du benutzt die Pins für die serielle Schnittstelle auch für die Ansteuerung des Motortreibers. Das kann so nicht funktionieren. Die PINs des Arduino 0 und 1 darfst Du nicht verwenden; verwende andere PINs.
Grüße Uwe

till_

Klasse! So einfach kanns sein. Vielen Dank! Da hätte ich mir noch nen Wolf gesucht. Schon funktionierts :)

Go Up