Hallo inka,
für Deinen Code hätte ich einen Vorschlag, um den Ruck beim Anfahren zu reduzieren.
Der Codeteil, den ich meine:
könnte so geändert werden:Code:/**********************************************************/ void links_drehen(void) { //enable pins aktivieren digitalWrite(enbl_VL, HIGH); digitalWrite(enbl_HL, HIGH); digitalWrite(enbl_VR, HIGH); digitalWrite(enbl_HR, HIGH); //richtung bestimmen digitalWrite(dirPin_VL, HIGH); digitalWrite(dirPin_HL, HIGH); digitalWrite(dirPin_VR, HIGH); digitalWrite(dirPin_HR, HIGH); for (int i = 0; i < stepsPerRevolution; i++) { digitalWrite(stepPin_VL, HIGH); digitalWrite(stepPin_HL, HIGH); digitalWrite(stepPin_VR, HIGH); digitalWrite(stepPin_HR, HIGH); delayMicroseconds(500); digitalWrite(stepPin_VL, LOW); digitalWrite(stepPin_HL, LOW); digitalWrite(stepPin_VR, LOW); digitalWrite(stepPin_HR, LOW); delayMicroseconds(500); } }
Code:/**********************************************************/ void links_drehen(void) { //enable pins aktivieren digitalWrite(enbl_VL, HIGH); digitalWrite(enbl_HL, HIGH); digitalWrite(enbl_VR, HIGH); digitalWrite(enbl_HR, HIGH); //richtung bestimmen digitalWrite(dirPin_VL, HIGH); digitalWrite(dirPin_HL, HIGH); digitalWrite(dirPin_VR, HIGH); digitalWrite(dirPin_HR, HIGH); for (int i = 0, j = 2000; i < stepsPerRevolution; i++) //"j = 2000": der Anfangswert für das Delay in Microsekunden { if (j > 500) j--; //"j > 500": der Endwert für das Delay in Microsekunden - bestimmt auch die Endgeschwindigkeit (mindestens 250 bis 300) for (int z = 0; z < 3 && i < stepsPerRevolution; z++) //"z < 3": wieviele Schritte mit dem eingstellten Delay "j" gemacht werden sollen, bevor es reduziert wird { digitalWrite(stepPin_VL, HIGH); digitalWrite(stepPin_HL, HIGH); digitalWrite(stepPin_VR, HIGH); digitalWrite(stepPin_HR, HIGH); delayMicroseconds(j); digitalWrite(stepPin_VL, LOW); digitalWrite(stepPin_HL, LOW); digitalWrite(stepPin_VR, LOW); digitalWrite(stepPin_HR, LOW); delayMicroseconds(j); i++; } } }
Ist übertragbar auf die anderen Richtungen.







Zitieren


Lesezeichen