Skip to main content

Stepper motor with TB6000 Microstep driver

We have the 42BYGHM809 Stepper motors with the TB6600 Stepper motor microstep driver to the Arduino using the BasicStepperDriver.h library.

  1. Connect the servo and driver as shown: steppercabling.png

  2. Download and install the driver to arduino from here. (If you need help, check the manual library installation wiki page here).

  3. Try this stepper Motor 42BYGHM809 / TB6600 Test Program note the steps are 14000 for a 360 turn.

/*
   * Simple demo, should work with any driver board

   *
 * Connect STEP, DIR as indicated
 *
 *

   Copyright (C)2015-2017 Laurentiu Badea
 *
 *

   This file may be redistributed under the terms of the MIT license.
 *
   A copy of this license has been included with this distribution in the file LICENSE.

   Modified for CCI by Matt Jarvis
*/
#include <Arduino.h>
#include "BasicStepperDriver.h"

// Motor steps per revolution. Most steppers are 200 steps or 1.8 degrees/step
#define MOTOR_STEPS 1400012800
#define RPM 120

// Since microstepping is set externally, make sure this matches the selected mode
// If it doesn't, the motor will move at a different RPM than chosen
// 1=full step, 2=half step etc.
#define MICROSTEPS 1

// All the wires needed for full functionality
#define DIR 6
#define STEP 7
//UncommentComment or uncomment line to use enable/disable ENABLE functionality
//#define SLEEPENABLE 135

// 2-wire basic config, microstepping is hardwired on the driver (use this if not needing to use the enable pin)
//BasicStepperDriver stepper(MOTOR_STEPS, DIR, STEP);

//Uncomment line to use enable/disable functionality
//BasicStepperDriver stepper(MOTOR_STEPS, DIR, STEP, SLEEP)ENABLE);

void setup() {
  stepper.begin(RPM, MICROSTEPS);
  // if using enable/disable on ENABLE pin (active LOW) instead of SLEEP uncomment next line
  // stepper.setEnableActiveState(LOW)HIGH);
}

void loop() {

  // energize coils - the motor will hold position //for 2 seconds
  stepper.enable();
  delay(2000);

  /*
     *
     Moving motor one full revolution using the degree notation
     and wait for 2 seconds
  */
  stepper.rotate(360);
  delay(2000);
  /*
     *
     Moving motor to original position using steps
  */
  stepper.move(-MOTOR_STEPS*MOTOR_STEPS * MICROSTEPS);

  // pausedisable motor and allow the motor to be moved by hand
  // stepper.disable();

  // delay 5 seconds
  delay(5000);
}