Ahoj,
nevím, zda odpovím na dotaz, ale třeba malou troškou. Já jsem (po radě jrt) začal používat
accelstepper.h
a zde níže mám pokusný kód, kdy jsem potřeboval zároveň hýbat krokovým motorem i několika servy => zdá se, že se nic nekouše a jede to plynule:
Funkci
servoMove()
uvádět nebudu, jen se tam něco každých 40 ms přičítá/odčítá (DIY akcelerace serva) a nakonec to zavolá
myservo1.writeMicroseconds(myservo_val1);
Plánuju hodnoty 1200 a 0 upravovat v kódu a while přepsat na if pro čtení příkazů ze serialu...a samozřejmě se to potom ve výsledku zpomalí. To u arduina normálně zažívám.
Kód: Vybrat vše
void setup()
{
stepper.setMaxSpeed(600);
stepper.setAcceleration(600);
myservo1.attach(7);
myservo2.attach(8);
myservo3.attach(9);
}
void loop()
{
stepper.moveTo(3000);
while (stepper.currentPosition() != 1200) { // Full speed up to 300
stepper.run();
servoMove();
}
stepper.moveTo(0);
while (stepper.currentPosition() != 0) { // Full speed up to 300
stepper.run();
servoMove();
}
}