Help me understand A4988 drivers November 20, 2015 09:41PM |
Registered: 8 years ago Posts: 33 |
Re: Help me understand A4988 drivers November 21, 2015 02:51AM |
Registered: 8 years ago Posts: 5,232 |
Re: Help me understand A4988 drivers November 21, 2015 07:30AM |
Registered: 8 years ago Posts: 752 |
Re: Help me understand A4988 drivers November 21, 2015 07:50AM |
Registered: 8 years ago Posts: 33 |
Quote
imqqmi
I can't find this behavior in the datasheet. The minimum time of the step pulses should be 1us. If it's get a repeat mode like you said you need to make sure the pulses are at most 1.9us. See page 6 of the datasheet.
Quote
o_lampe
The instructions and code is correct. Also your assumption about the step-pin behavior is right.
You might have a wiring problem?
-Olaf
Re: Help me understand A4988 drivers November 21, 2015 09:04AM |
Registered: 9 years ago Posts: 14,664 |
Quote
stamasd
However the example code in step 3 does not do what it's supposed to do.
Re: Help me understand A4988 drivers November 21, 2015 09:54AM |
Registered: 8 years ago Posts: 33 |
Quote
dc42
Quote
stamasd
However the example code in step 3 does not do what it's supposed to do.
You have not told us what it actually does.
// Run a A4998 Stepstick from an Arduino UNO. // Paul Hurley Aug 2015 int x; #define BAUD (9600) void setup() { Serial.begin(BAUD); pinMode(6,OUTPUT); // Enable pinMode(5,OUTPUT); // Step pinMode(4,OUTPUT); // Dir digitalWrite(6,LOW); // Set Enable low } void loop() { digitalWrite(6,LOW); // Set Enable low digitalWrite(4,HIGH); // Set Dir high Serial.println("Loop 200 steps (1 rev)"); for(x = 0; x < 200; x++) // Loop 200 times { digitalWrite(5,HIGH); // Output high delay(10); // Wait digitalWrite(5,LOW); // Output low delay(100); // Wait } Serial.println("Pause"); delay(1000); // pause one second }
Re: Help me understand A4988 drivers November 21, 2015 01:21PM |
Registered: 8 years ago Posts: 752 |
PulseStep() { PIN_STEP = 1; __delay_us(1); PIN_STEP = 0; __delay_us(1); }
int x; #define BAUD (9600) #define PIN_STEP 5 #define PIN_DIR 4 #define PIN_EN 6 //Function declarations PulseStep(); void setup() { Serial.begin(BAUD); pinMode(PIN_EN,OUTPUT); // Enable pinMode(PIN_STEP,OUTPUT); // Step pinMode(PIN_DIR,OUTPUT); // Dir digitalWrite(PIN_EN,LOW); // Set Enable low } void loop() { digitalWrite(PIN_EN,LOW); // Set Enable low digitalWrite( PIN_DIR,HIGH); // Set Dir high Serial.println("Loop 200 steps (1 rev)"); for(x = 0; x < 200; x++) // Loop 200 times { PulseStep(); // Pulse one step to motor delay(10); // delay between steps in milliseconds. This will determine the speed at which the motor runs 200x10ms = 2 seconds per revolution. } Serial.println("Pause"); delay(1000); // pause one second } //Pulse one step to stepstick PulseStep() { digitalWrite(PIN_STEP,HIGH); // Output high delayMicroseconds(1); // Wait digitalWrite(PIN_STEP,LOW); // Output low delayMicroseconds(1); // Wait }
Re: Help me understand A4988 drivers November 21, 2015 01:38PM |
Registered: 8 years ago Posts: 33 |
Re: Help me understand A4988 drivers November 21, 2015 02:00PM |
Registered: 8 years ago Posts: 752 |
for (x=0; x<200; x++) { if( x<100) delay( 100-(x/2) ); //speeding up else delay( (x/2)-100 ); // slowing down }
Re: Help me understand A4988 drivers November 21, 2015 02:33PM |
Registered: 8 years ago Posts: 33 |
Quote
imqqmi
What does the rest of the schematic look like? Is the Arduino powered from the same PSU and is the step stick decoupled with 0.1uF capacitors? Maybe it's a flyback current from the motor coils you're seeing? See the typical application in the datasheet. If you don't use acceleration, starting the motor at a high speed instantly produces some current spikes. You can try using the x variable for the delay so that it speeds up and slows down? Something like
for (x=0; x<200; x++) { if( x<100) delay( 100-(x/2) ); //speeding up else delay( (x/2)-100 ); // slowing down }
There are also acceleration libraries for stepper motors you can use.
Re: Help me understand A4988 drivers November 21, 2015 03:17PM |
Registered: 8 years ago Posts: 752 |
Re: Help me understand A4988 drivers November 21, 2015 03:29PM |
Registered: 8 years ago Posts: 33 |
Re: Help me understand A4988 drivers November 21, 2015 04:49PM |
Registered: 8 years ago Posts: 752 |
Re: Help me understand A4988 drivers November 21, 2015 05:18PM |
Registered: 8 years ago Posts: 33 |
Re: Help me understand A4988 drivers November 22, 2015 03:04AM |
Registered: 8 years ago Posts: 752 |
Re: Help me understand A4988 drivers November 22, 2015 11:35AM |
Registered: 8 years ago Posts: 33 |
Re: Help me understand A4988 drivers November 22, 2015 06:49PM |
Registered: 8 years ago Posts: 752 |
Re: Help me understand A4988 drivers November 22, 2015 07:19PM |
Registered: 8 years ago Posts: 916 |
Re: Help me understand A4988 drivers November 23, 2015 07:22AM |
Registered: 8 years ago Posts: 33 |
Re: Help me understand A4988 drivers November 23, 2015 09:23AM |
Registered: 8 years ago Posts: 752 |