Gast
#5016562
Werte Schrittmotor Freunde, Problem: Bei der linearen Beschleunigung eines Schrittmotors sind leichte Ruckler hörbar. Verwendet wird ein ATMEGA16+OrientalmotorTreiber+Nema23 Ich bastel aktuell an einer Rohrpoliermaschine. Hauptsächlich des bastelns wegen ;-) In meinem aktuellen Code ist der Beschleunigungsalgorithmus aus folgenden 2 Dokumenten integriert: - AVR446 Application Note von ATMEL - David Justin: Generate stepper motor speed profiles in real time. Das Geschwindigkeitsprofil wird in Echtzeit berechnet. Der Timer läuft im CTC-Modus, der OCR1A-Wert wird ständig neu berechnet und definiert die Taktung. Steuerung des Motors über Takt + Richtung. Nun läuft der Motor eigentlich smooth an, es sind jedoch ab und an "Ruckler" drin. Die Ruckler treten nach dem Zufallsprinzip auf, ich erkenne kein Muster. Das Problem ist mit einer anderen billigen Treiberstufe sowie einem anderen Schrittmotor (China Nema 17) reproduzierbar. Ich schließe Treiber+Motor demnach als Grund aus. Ich weiß, dass man auch vorberechnete Arrays mit den Timerwerten für eine Beschleunigung hinterlegen könnte, ich möchte die Rampe aber bewusst in Echtzeit berechnen. Ich könnte mir vorstellen man braucht tiefe Hardwareprogrammierkentnisse um das Problem zu lösen. Und genau da setzts bei mir aus... Den Code hab ich hinterlegt. Aktuell beschleunigt der Motor bei Tastendruck und stoppt apprupt (ohne Decel-Rampe) wenn die Taste losgelassen wird. Evtl. hat jemand nützliche Tips, wäre echt super :-) Grüße, Tom