|
Help me understand A4988 drivers November 20, 2015 09:41PM |
Registered: 10 years ago Posts: 33 |
|
Re: Help me understand A4988 drivers November 21, 2015 02:51AM |
Registered: 10 years ago Posts: 5,232 |
|
Re: Help me understand A4988 drivers November 21, 2015 07:30AM |
Registered: 11 years ago Posts: 756 |
|
Re: Help me understand A4988 drivers November 21, 2015 07:50AM |
Registered: 10 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: 12 years ago Posts: 14,691 |
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: 10 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: 11 years ago Posts: 756 |
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: 10 years ago Posts: 33 |

|
Re: Help me understand A4988 drivers November 21, 2015 02:00PM |
Registered: 11 years ago Posts: 756 |
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: 10 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: 11 years ago Posts: 756 |
|
Re: Help me understand A4988 drivers November 21, 2015 03:29PM |
Registered: 10 years ago Posts: 33 |
|
Re: Help me understand A4988 drivers November 21, 2015 04:49PM |
Registered: 11 years ago Posts: 756 |
|
Re: Help me understand A4988 drivers November 21, 2015 05:18PM |
Registered: 10 years ago Posts: 33 |
|
Re: Help me understand A4988 drivers November 22, 2015 03:04AM |
Registered: 11 years ago Posts: 756 |
|
Re: Help me understand A4988 drivers November 22, 2015 11:35AM |
Registered: 10 years ago Posts: 33 |
|
Re: Help me understand A4988 drivers November 22, 2015 06:49PM |
Registered: 11 years ago Posts: 756 |
|
Re: Help me understand A4988 drivers November 22, 2015 07:19PM |
Registered: 10 years ago Posts: 916 |
|
Re: Help me understand A4988 drivers November 23, 2015 07:22AM |
Registered: 10 years ago Posts: 33 |
|
Re: Help me understand A4988 drivers November 23, 2015 09:23AM |
Registered: 11 years ago Posts: 756 |