Ik ben nog in een "beginners" stadium met arduino. Maar probeer veel bij te leren. Het is me al gelukt stappen motoren aan te sturen met de "Accelstepper" libery.
Ik heb een Nema 8 stappenmotor via DRV8825 aangesloten op een arduino uno.
Als ik deze in microstepping zet (1/32) en laat hem heel langzaam draaien dan zie je dat hij van een full step versnelt over 16 micro stappen en dan weer vertraagt over 16 micro stappen tot aan de full step. Dit op verschillende snelheden, maar blijft hetzelfde probleem (zolang het zichtbaar is) eens je snel genoeg gaat merk je het niet meer.
Al op verschillende manieren met de Accelstepper libery geprobeerd maar ook zonder libery en gewoon met puls aangestuurd. Toch blijft het probleem.
Sorry, ik heb geen idee. Het is erg vreemd.
Kun je de sketch laten zien ? Bij voorkeur tussen code-tags. De </> knop is voor code-tags.
Heb je een oscilloscoop om de signalen te bekijken ?
Ik heb zonet nog een andere stappenmotor (nema 17) aangesloten en net hetzelfde probleem.
Hieronder 2 codes die ik gebruikt heb, maar beide hetzelfde probleem.
Ik beschik jammer genoeg niet over een oscilloscoop.
#define stepPin 3
#define dirPin 2
void setup() {
// put your setup code here, to run once:
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
digitalWrite(dirPin, LOW);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(stepPin, HIGH);
delay(20);
digitalWrite(stepPin, LOW);
delay(20);
}
Heb je dat probleem met verschillende snelheden van de microstepping bij beide sketches of alleen de AccelStepper ?
Het spijt me, maar ik begrijp het echt niet. Zowel de AccelStepper als de DRV8825 doen gewoon hun werk. Het zou geen probleem mogen zijn. Ik hoop dan anderen een goed idee hebben.
Is er misschien iets anders aan de hand ?
Kijk eens op deze pagina: Pololu - DRV8825 Stepper Motor Driver Carrier, High Current
Daar staat: "For the microstep modes to function correctly, the current limit must be set low enough (see below) so that current limiting gets engaged. Otherwise, the intermediate current levels will not be correctly maintained, and the motor will skip microsteps.".
Bij de beide sketches in verschillende snelheden. Ik heb al eens een A4988 driver gebruikt, ook het zelfde probleem. Deze doet wel maar 1/16 maar resultaat blijft hetzelfde. versnellen en terug vertragen tot aan de volgende full step telkens.
Heb ook als eens een cnc shield aangesloten, ik dacht misschien foute bekabeling. Maar ook bij het cnc hield hetzelfde probleem.
De VREF zou 0,3 moeten zijn en die staat afgesteld op 0,22. Ik heb er ook eens in beide richtingen even aan gedraaid maar gaf geen verschil buiten het stoppen met draaien bij een te lage VREF.
Aangesloten zoals op schema hieronder.
Ik snap er echt niets van, waarschijnlijk iets klein dat ik over het hoofd zie...
Het is een leuke gedachte om 1/16 van een spoel te zetten, maar probeer het maar eens om een magneet in dermate kleine stapjes te laten werken, theoretisch heel leuk maar praktisch is het hooguit halve stappen. dus je ziet ook dat de as elke stap springt, of je moet een teruggekoppelde motor hebben dan wordt dat door de software geregeld.
Wat bedoel je met vertragen en versnellen? of bedoel je dat de resolutie erg wisselt dus jet ziet 1/4 stap maar bij 1/16 is de sprong anders dus bijvoorbeeld zie je 1/16 dan 2/16 dan 4/16 4/16 4/16 dan 7/16 8/16 en dan 15/16 enzo dus elke stap. Die stappenmotoren hebben gewoon een slechte resolutie tussen de stappen, daar moet je echt een teruggekoppelde motor voor hebben dat kan wel in een stappenmotor maar ook in een 3 fase motor.
Mij lijken de stappen wel hetzelfde maar het begint traag en gaat sneller en sneller en begint dan terug te vertragen tot bijna stil. En zo gaat het van de ene full step tot de andere altijd.