Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Project Documentation

Arduino UNO Controlled Bipolar Stepper Motor with SN754410 Driver

Image of Arduino UNO Controlled Bipolar Stepper Motor with SN754410 Driver

Circuit Documentation

Summary

This circuit is designed to control a bipolar stepper motor using an Arduino UNO and an SN754410 quadruple half-H driver. The Arduino UNO is programmed to rotate the stepper motor one revolution in one direction, pause, and then rotate one revolution in the opposite direction. The SN754410 driver is used to amplify the control signals from the Arduino and drive the stepper motor. A 2.1mm Barrel Jack with Terminal Block is included to provide power to the motor.

Component List

Arduino UNO

  • Description: A microcontroller board based on the ATmega328P.
  • Purpose: Acts as the control unit for the stepper motor, sending signals to the SN754410 to drive the motor.

Stepper Motor (Bipolar)

  • Description: A bipolar stepper motor with four wires.
  • Purpose: The actuator of the system, it converts electrical pulses into mechanical movements.

SN754410

  • Description: A quadruple high-current half-H driver designed to provide bidirectional drive currents.
  • Purpose: Interfaces between the Arduino and the stepper motor, amplifying the control signals to drive the motor.

2.1mm Barrel Jack with Terminal Block

  • Description: A power connector that allows for easy connection to an external power supply.
  • Purpose: Provides power to the stepper motor through the SN754410 driver.

Wiring Details

Arduino UNO

  • 5V connected to SN754410 VCC Logic
  • GND connected to SN754410 GND and 2.1mm Barrel Jack NEG
  • D8 connected to SN754410 1 In
  • D9 connected to SN754410 2 In
  • D10 connected to SN754410 3 In
  • D11 connected to SN754410 4 In

Stepper Motor (Bipolar)

  • A connected to SN754410 1 Out
  • B connected to SN754410 3 Out
  • C connected to SN754410 2 Out
  • D connected to SN754410 4 Out

SN754410

  • 1,2 Enable and 3,4 Enable connected to Arduino UNO 5V
  • VCC Motor connected to 2.1mm Barrel Jack POS
  • GND connected to Arduino UNO GND and 2.1mm Barrel Jack NEG

2.1mm Barrel Jack with Terminal Block

  • POS connected to SN754410 VCC Motor
  • NEG connected to SN754410 GND and Arduino UNO GND

Documented Code

/*
  Sketch to control a stepper motor with Arduino UNO.
  
  The motor should revolve one revolution in one direction, then one revolution in the other direction.

  The code will cause the stepper motor to rotate clockwise for one revolution, pause for half a second,
  and then rotate counterclockwise for one revolution.
*/

#include <Stepper.h>

const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
// for your motor

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
  // set the speed at 60 rpm:
  myStepper.setSpeed(60);
  // initialize the serial port:
  Serial.begin(9600);
}

void loop() {
  // step one revolution in one direction:
  Serial.println("clockwise");
  myStepper.step(stepsPerRevolution);
  delay(500);

  // step one revolution in the other direction:
  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  delay(500);
}

This code is designed to be uploaded to the Arduino UNO. It initializes the stepper motor with the specified number of steps per revolution and sets the motor speed. The loop function then controls the motor to rotate in one direction, pause, and rotate in the opposite direction, with serial output indicating the direction of rotation.