Project

General

Profile

Actions

Wiki » History » Revision 10

« Previous | Revision 10/13 (diff) | Next »
Frédéric Blanc, 2023-11-17 14:07


accelstepper

https://www.arduino.cc/reference/en/libraries/accelstepper/


#include <AccelStepper.h>

// for the Arduino Uno + CNC shield V3 + A4988 + FL42STH47-1684A

#define MOTOR_X_ENABLE_PIN 8
#define MOTOR_X_STEP_PIN 2
#define MOTOR_X_DIR_PIN 5

AccelStepper motor_X(1, MOTOR_X_STEP_PIN, MOTOR_X_DIR_PIN); 

void setup()
{
  motor_X.setEnablePin(MOTOR_X_ENABLE_PIN);
  motor_X.setPinsInverted(false, false, true);
  motor_X.setAcceleration(20);  
  motor_X.move(200);
  motor_X.setMaxSpeed(100);
  //motor_X.setSpeed(100);
  motor_X.enableOutputs();
}

void loop()
{
  motor_X.run();
}

Arduino CNC Shield V3


Arduino CNC Shield Scematics V3

Driver MOTOR

A4988

Courant MAX

Vref mesure tension entre GND et le potard
MaxCurrent=Vref x 2.5
1A => 0.4V

Microstepping

MS1 MS2 MS3 Résolution Microstepping
Low Low Low Pas complet (full step)
High Low Low 1/2 pas
Low High Low 1/4 de pas
High High Low 1/8 ième de pas
High High High 1/16 ième de pas

TMC2208

Courant MAX

Irms = (Vref * 1.77A) / 2.5V = Vref * 0.71
Vref = (Irms * 2.5V) / 1.77A = Irms * 1.41 = Imax
Vref -> Voltage on Vref pin
Irms -> RMS (Root Mean Square) current per phase (Irms = Imax / 1.41)
Imax -> Maximum current per phase (Imax = Irms * 1.41)

Microstepping

MS2 MS1 Steps(-) Interpolation(-) Mode(-)
GND VIO 1⁄2 1⁄256 stealthChop2
VIO GND 1⁄4 1⁄256 stealthChop2
GND GND 1⁄8 1⁄256 stealthChop2
VIO VIO 1⁄16 1⁄256 stealthChop2
void setup()
{
  motor_X.setEnablePin(MOTOR_X_ENABLE_PIN);
  motor_X.setPinsInverted(false, false, false);
  motor_X.setAcceleration(2560);  
  motor_X.move(25600);
  motor_X.setMaxSpeed(1000000);
  motor_X.setSpeed(25600);
  motor_X.enableOutputs();
}

Updated by Frédéric Blanc about 1 year ago · 13 revisions