Stappenmotor NEMA-17 met driver A4988
19 berichten
• Pagina 2 van 2 • 1, 2
- bertgroothuis
-
- Berichten: 23
- Geregistreerd: 24 Jul 2020, 14:55
Re: Stappenmotor NEMA-17 met driver A4988
Gij Kieken schreef:Verminder de vertraging eens van delay(1); naar delayMicroseconds(500);
Hoi Gij,
Ga ik proberen.
Je hoort van mij.
Bert
Advertisement
Re: Stappenmotor NEMA-17 met driver A4988
Bert, je maakt een puls op 1000hz nu... is dat niet veel te snel??
Maak van al die delay(1) es delay(100) en kijk wat er dan gebeurt....
Maak van al die delay(1) es delay(100) en kijk wat er dan gebeurt....
- Gij Kieken
-
- Berichten: 627
- Geregistreerd: 15 Nov 2015, 11:54
Re: Stappenmotor NEMA-17 met driver A4988
Bert was ik nog vergeten,
maak van delay(100); // DELAY BEFOR SWITCH DIRECTION
delay(1000); // Wait 1 sec DELAY BEFOR SWITCH DIRECTION
maak van delay(100); // DELAY BEFOR SWITCH DIRECTION
delay(1000); // Wait 1 sec DELAY BEFOR SWITCH DIRECTION
Re: Stappenmotor NEMA-17 met driver A4988
Rob, in een van de posts adviseer je alle microstepping pinnen hoog te maken.
Is het net beter alle pinnen laag te maken zodat je full step instelt?
Is het net beter alle pinnen laag te maken zodat je full step instelt?
Re: Stappenmotor NEMA-17 met driver A4988
@Frits, Lijkt me een gevalletje uitproberen. Ik gebruik deze driver altijd in max.microstep. Koppel voor aanlopen, starten, is dan maximaal, snelheid minimaal. En motortje loopt gewoon het lekkerste. Echt snel gaan die nemaas niet. Probleem hier denk ik dat alles veel te snel gaat, maar dat gedoe met die delays maakt het voor mij lastig lezen wat er nu precies gebeurt. Misschien zit er ook gewoon een spoel verkeerd aangesloten. Lastig is de aansturing niet. Stroom derop, Enable hoog, direction hoog of laag en een pulstrein van 50hz ofzo en dan gaattie echt wel draaien. Rob
- bertgroothuis
-
- Berichten: 23
- Geregistreerd: 24 Jul 2020, 14:55
Re: Stappenmotor NEMA-17 met driver A4988
Hallo allemaal,
Helaas heb ik corona gehad en heb niets kunnen doen aan mijn stappenmotor projectje.
Ik ben weer opgeknapt en ga weer verder om de nema-17 met A4988 aan de gang te krijgen.
Heeft iemand een werkende sketch met de nema-17 die wel (goed) werkt? Dus dat de stappenmotor kleine stapjes maakt zonder weerstand te hoeven geven op de as.
En wil degene die sketch dan met mij delen? Ik wil dan kijken of het de software of de hardware is die niet mee wil werken.
Dank, Bert
Helaas heb ik corona gehad en heb niets kunnen doen aan mijn stappenmotor projectje.
Ik ben weer opgeknapt en ga weer verder om de nema-17 met A4988 aan de gang te krijgen.
Heeft iemand een werkende sketch met de nema-17 die wel (goed) werkt? Dus dat de stappenmotor kleine stapjes maakt zonder weerstand te hoeven geven op de as.
En wil degene die sketch dan met mij delen? Ik wil dan kijken of het de software of de hardware is die niet mee wil werken.
Dank, Bert
Re: Stappenmotor NEMA-17 met driver A4988
dit programma werkt met de volgende opmerking..
ik heb hiervoor een stepper driver boardje in gebruik waarop dipswitches zitten voor de microstep settings. Zonder dat is het programma in fullstep mode
ik heb hiervoor een stepper driver boardje in gebruik waarop dipswitches zitten voor de microstep settings. Zonder dat is het programma in fullstep mode
- Code: Alles selecteren
/*Sketch voor aansturing van een stepper motor met een A4988 driver
Een steppermotor draait op fullstep eerst 200 steps langzaam clockwise.
Daarna 200 steps sneller counterclockwise.
Daarna 200 steps op zijn snelst clockwise.
Na 2 seconden gaat de motor uit (kan je met de hand de as draaien.
Na 5 seconden start de cyclus opnieuw.
Aansluitingen:
Arduino aan A4988
pin 2 aan step
pin 3 aan direction
pin 4 aan enable
5V aan vdd
GND aan GND
A4988
12V+ aan Vmot (7V - 30V is goed)
12V+ aan condensator >=47uF aan 12V-
12V- aan 12V GND
2B aan motor coil B2
2A aan motor coil A2
1B aan motor coil B1
1A aan motor coil A1
vdd aan arduino 5V
GNd aan arduino GND
RESET met jumper aan SLEEP
STEP aan arduino pin2
DIR aan arduino pin 3
ENABLE aan arduino pin 4
additional: MS1,MS2, MS3 aan arduino 5V = high
MS1 MS2 MS3 steps
L L L 1/1
H L L 1/2
L H L 1/4
H H L 1/8
H H H 1/16
*/
// Constanten -------------------------------------------------------
#define stepPin 2
#define dirPin 3
#define enablePin 4
//#define MS1Pin 5 //optioneel
//#define MS2Pin 6 //optioneel
//#define MS3Pin 7 //optioneel
#define STEPS_PER_REV 200
#define slow_speed 20000
#define fast_speed 1500
#define max_speed 500
#define CW HIGH
#define CCW LOW
#define motor_aan LOW
#define motor_uit HIGH
void setup()
{ pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enablePin, OUTPUT);
}
void loop()
{ digitalWrite(dirPin, CW); // zet motor richting CW
Draaien(slow_speed, STEPS_PER_REV);
delay(1000); // Pause
digitalWrite(dirPin, CCW); // zet motor richting CCW
Draaien(fast_speed, STEPS_PER_REV);
delay(1000); // Pause
digitalWrite(dirPin, CW); // zet motor richting CW
Draaien(max_speed, STEPS_PER_REV);
delay(2000); // Pause
digitalWrite(enablePin, motor_uit);
delay(5000); // Pause
}
void Draaien(int snelheid, int steps)
{ digitalWrite(enablePin, motor_aan);
if (snelheid < max_speed)
snelheid = max_speed;
for (int x = 0; x < steps; x++)
{ digitalWrite(stepPin, HIGH);
delayMicroseconds(snelheid);
digitalWrite(stepPin, LOW);
delayMicroseconds(snelheid);
}
}
// Einde Programma en compile directive ==============================
/*#if !defined(__AVR_ATmega2560__)
#error "Oeps! Zorg ervoor dat 'Arduino Mega' is geselecteerd als board."
#endif
*/
- bertgroothuis
-
- Berichten: 23
- Geregistreerd: 24 Jul 2020, 14:55
Re: Stappenmotor NEMA-17 met driver A4988
Frits1956,
Dank je. Dit werkt. Er bleken ook 2 breadboard snoertjes defect te zijn.
De loop heb ik iets uitgebreid om zelf een beeld te krijgen wat er nu precies gebeurd.
Bedankt.
Ook alle andere bedankt voor het meedenken.
Bert
void loop()
{ digitalWrite(dirPin, CW); // zet motor richting CW
Draaien(slow_speed, STEPS_PER_REV); // 200 steps langzaam clockwise.
delay(1000); // Pause
digitalWrite(dirPin, CCW); // zet motor richting CCW
Draaien(slow_speed, STEPS_PER_REV); // 200 steps langzaam counterclockwise.
delay(1000); // Pause
digitalWrite(dirPin, CW); // zet motor richting CCW
Draaien(fast_speed, STEPS_PER_REV); // 200 steps sneller clockwise.
delay(1000); // Pause
digitalWrite(dirPin, CCW); // zet motor richting CCW
Draaien(fast_speed, STEPS_PER_REV); // 200 steps sneller counterclockwise.
delay(1000); // Pause
digitalWrite(dirPin, CW); // zet motor richting CW
Draaien(max_speed, STEPS_PER_REV); // 200 steps op zijn snelst clockwise.
delay(1000); // Pause
digitalWrite(dirPin, CCW); // zet motor richting CW
Draaien(max_speed, STEPS_PER_REV); // 200 steps op zijn snelst counterclockwise.
delay(1000); // Pause
digitalWrite(enablePin, motor_uit);
delay(2000); // Pause
}
Dank je. Dit werkt. Er bleken ook 2 breadboard snoertjes defect te zijn.
De loop heb ik iets uitgebreid om zelf een beeld te krijgen wat er nu precies gebeurd.
Bedankt.
Ook alle andere bedankt voor het meedenken.
Bert
void loop()
{ digitalWrite(dirPin, CW); // zet motor richting CW
Draaien(slow_speed, STEPS_PER_REV); // 200 steps langzaam clockwise.
delay(1000); // Pause
digitalWrite(dirPin, CCW); // zet motor richting CCW
Draaien(slow_speed, STEPS_PER_REV); // 200 steps langzaam counterclockwise.
delay(1000); // Pause
digitalWrite(dirPin, CW); // zet motor richting CCW
Draaien(fast_speed, STEPS_PER_REV); // 200 steps sneller clockwise.
delay(1000); // Pause
digitalWrite(dirPin, CCW); // zet motor richting CCW
Draaien(fast_speed, STEPS_PER_REV); // 200 steps sneller counterclockwise.
delay(1000); // Pause
digitalWrite(dirPin, CW); // zet motor richting CW
Draaien(max_speed, STEPS_PER_REV); // 200 steps op zijn snelst clockwise.
delay(1000); // Pause
digitalWrite(dirPin, CCW); // zet motor richting CW
Draaien(max_speed, STEPS_PER_REV); // 200 steps op zijn snelst counterclockwise.
delay(1000); // Pause
digitalWrite(enablePin, motor_uit);
delay(2000); // Pause
}
Re: Stappenmotor NEMA-17 met driver A4988
Als je steps per rev vergroot of kleiner maakt verander je de rotatie van de motor.
Je hoeft de procedure niet met de constanten als parameter aan te roepen, Draaien( 1000, 2000); is een reguliere aanroep.
Je hoeft de procedure niet met de constanten als parameter aan te roepen, Draaien( 1000, 2000); is een reguliere aanroep.
19 berichten
• Pagina 2 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 6 gasten