Interface Stepper-Motor With PIC


A stepper motor is an electromechanical device which converts electrical pulses into discrete mechanical movement or steps.

This motor divides a full rotation of 360 degrees into a number of equal steps.

Stepper Motor Types

  • Stepper Motors are classified into two, based on its winding arrangement
    1.Unipolar Motors
    2.Bipolar Motors


  • A unipolar motor has centre tapped windings.
  • By center connections, the coils are tied together and used as the power connection.
  • By this arrangement, a magnetic poles can be reversed without reversing the direction of the current.
stepper uni polar coil


  • Bipolar motor have no center tap connections.
  • Current through a winding should be reversed to reverse the magnetic poles.
  • So the driving circuit should be more complicated.
  • We can solve this by using an H-bridge connection or by using ready-made chips such as L293D.
stepper Bi polar coil

Driving of Stepper Motor : Stepping Modes

  • There are three types of stepping modes.
    1. Wave Drive: One at On a Time
    2. Full Drive: Two at On a Time
    3. Half Drive: One or Two On at a Time.

Wave Drive

  • Only one stator electromagnet is energized at a time.
  • The torque is significantly less.
  • It is rarely used.

Wave Drive Stepping Sequence

Half Drive

  • One and two phases are energized alternatively.
  • Increase the angular resolution of the motor but the torque is less approximately 70%.

Half Drive Stepping Sequence

Full Drive

  • Two stator electromagnets are energized at a time
  • The motor will run at its full torque.

Full Drive Stepping Sequence

L293D Motor Driver

  • L293D is an H-Bridge DC motor controller, which can control dc motor up to 36V.
  • Driver allows dc motor to rotate in both directions which can interface and control two motors at a time with microcontroller.
  • Driver allows voltage to flow in both direction hence motor can rotate in both clock and anti-clock direction.
L293D Motor Driver

Direction Table

Hardware Required

  • Stepper Motor.
  • L293D Motor Driver.
  • Pic16f877a MicroController.

Circuit Stepper Unipolar

Circuit Stepper Bipolar

Virtual Circuit


 void main()

Leave a Reply

Your email address will not be published. Required fields are marked *