Hallo,
mit der Funktion CustomStepper, die hier beschrieben ist:
http://playground.arduino.cc/Main/CustomStepper
bekomme ich mit diesem Programm:
Code:
#include <CustomStepper.h>
CustomStepper stepper(8, 9, 10, 11);
boolean rotate1 = false;
boolean isDone = false;
int Umdrehungen = 3;
void setup()
{
stepper.setRPM(12); // Drehzahl
stepper.setSPR(4096); // Schritte pro Umdrehung, hier für den 28BYJ-48
}
void loop()
{
if (stepper.isDone() && rotate1 == false)
{
stepper.setDirection(CW); // Drehrichtung (CW, CCW, and STOP)
stepper.rotate(Umdrehungen); // dreht 3 Umdrehungen
rotate1 = true;
}
stepper.run(); // *****dieser Befehl muss sein*****
}
meinen Schrittmotor prima zum Laufen. Das ist abgeleitet aus der library CustomStepper.zip. Ich bin der Meinung, dass das IF in dem vollständigen Programm nur dazu dient, um die Varianten, einen Stepper zu betreiben, auszuwählen.
Wenn ich es aber mit dieser noch weiter vereinfachten Version versuche,
Code:
#include <CustomStepper.h>
CustomStepper stepper(8, 9, 10, 11,(byte[]){8, B1000, B1100, B0100, B0110, B0010, B0011, B0001, B1001},4096,12,CW); // Anschlüsse festlegen
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
stepper.rotate(3);
stepper.run();
}
dann ist die Schrittfolge so hoch (am Oszilloskop zu sehen), dass der Motor nicht mitkommt und ich kann sie auch nicht verändern!
Wie kann das sein?
Lesezeichen