top of page

Linear Stage with Closed-Loop Control

This assignment project is a continuation from the previous project whereby a stepper motor is used. Because of that, the linear drive structure is entirely the same although the stepper motor will be replaced by a DC motor.  The goal of this project is to be able to control the speed and direction of the DC motor rotation to be able to translate this rotational motion into a linear motion of the linear drive with a load applied on it.


DC Motor - Electrical Diagram

Essentially, the switch setup would remain the same despite not being shown in the diagram below. Similarly, there are three ports that need to be considered from the shield board that is installed on top of the Arduino board:

  • Pin 12 - Controls direction (clockwise or counter-clockwise rotation)

  • Pin 3 - Controls voltage (essential to the angular speed of the motor)

  • Pin 9 - DC motor brake (it's active when set to "HIGH", not activated when set to "LOW")

  • Pin 10 - Connected to the breadboard with switch (Reads input from the switch)


Unlike the stepper motor, however, the DC motor has 6 wires shown below.

Electrical Diagram

The basic operating principle of the motor and lead screw is a conversion by the stepper motor from a rotational movement that is provided by the threaded shaft which is connected to a lead screw that is integrated with the carriage. Since the shaft thread is connected with that of the lead screw, a linear motion is produced from the lead screw.

By combining the linear drive components with the Arduino kits, I was able to build a system that demonstrates a basic mechanism of a carriage that can be moved back and forth by rotating the threaded shaft. The speed and the accuracy of the motor can be controlled by the program created and executed from the Arduino board. This process is called a homing sequence. 

Test Procedures & Result

Now, with everything set up, it is time for the system to execute a homing sequence process. There is a specific task given in terms of how the carriage should move, which is listed below:​

  • The user manually presses the switch to begin the sequence.

  • After a one-second delay, the carriage begins to move towards the switch at a speed of 35 mm/s.

  • The switch will detect contact with the carriage.

  • The carriage will then retract 10 mm from the switch at a speed of 20 mm/s.

  • The carriage will stop and move again towards the switch at the lowest speed at which you can reliably move the motor (may vary from one motor to another).

  • The carriage will stop and move away 30 mm from the switch at a speed of 10 mm/s.

  • Power to the motor is shut off. This finalizes the homing process.

This project turned out to be successful. In fact the rotational motion produced by the DC motor is relatively smoother than that by the stepper motor.

Displacement vs. Time Graph

Another setup that can be made for the stepper motor is the speed. This can be done by changing the delay time for the duration in which the poles of the shaft interacts with those of the coils. Smaller delay time means that the poles on the shaft need to shift at a much faster rate.  

bottom of page