Stepper Motor Control Using AVR (Atmega) Microcontroller An electric machine that converts electrical energy into mechanical energy is called an electric motor. First and foremost electric motor is a simple electrostatic device created by Scottish monk Andrew Gordon in 1740s. But in 1821, Michael Faraday demonstrated the conversion of electrical energy into mechanical energy. Electric motors are primarily classified into two categories: AC motors and DC motors. Again, each category is subdivided into many types. Many loads such as mixer, grinder, fans, etc., most frequently used home appliances in which we can find different types of motors and these can be operated at different speeds with speed controlling provision of the motors. In this article, we are going to discuss about one of the major types of DC motors, namely Stepper motor and its control using the microcontroller. Stepper Motor A synchronous and brushless DC motor that converts electric pulses into mechanical movements and thus, rotates stepwise with a certain angle between each step for completing a full rotation is called as Stepper Motor. The angle between the steps of rotation of the stepper motor is termed as the stepper angle of the motor. Stepper Motor Stepper motors are classified into two types according to their winding: Unipolar Stepper Motors and Bipolar Stepper Motors. The unipolar stepper motor is frequently used in many applications due to its ease of operation compared to the bipolar stepper motor. But there are different types of stepper motors such as Permanent Magnet Stepper Motor, Variable Reluctance Stepper Motor, and Hybrid Stepper Motor. Stepper Motor Control The stepper motor can be controlled with various techniques, but here we are discussing the stepper motor control using an Atmega microcontroller. The 89C51 is a microcontroller of the 8051 microcontroller family. Block Diagram of Stepper Motor Control The block diagram of a stepper motor control using an 8051 microcontroller is shown in the figure with power supply, microcontroller, stepper motor and control switch blocks. 2 Methods To Design Stepper Motor Control Circuit The stepper motor controller is designed using 8051 microcontrollers and switching circuit for controlling the speed of the stepper motor. The control switch circuit can be designed by using transistor switches or by using stepper motor controller IC such as ULN2003 in place of the transistors. 1. Control Circuit Using Stepper Motor Controller IC The unipolar stepper motor can be rotated by energizing the stator coils in a sequence. The sequence of these voltage signals applied across the motor coils or leads is enough to drive the motor and hence, no driver circuit is required for controlling the direction of the current in the stator coils. Stepper Motor Control using IC The two-phase-stepper motor consists of four end wires connected to the coils and two common wires connected to the two end leads to form two phases. The common points and end points of the two phases are connected to the ground or Vcc and the microcontroller pins, respectively. For rotating the motor, the endpoints of the two phases are to be energized. Primarily a voltage is applied to the first end point of the phase1, and further voltage is applied to the first end point of the phase2, and so on. The stepper motor can be operated in different modes such as Wave Drive Stepping Mode, Full Drive Stepping Mode and Half Drive Stepping Mode. Wave Drive Stepping Mode By repeating the above sequence, the motor can be rotated in wave-drive- stepping mode either in a clockwise or anticlockwise direction based on the selection of end points. The table below shows the signal phase sequence for wave-drive-stepping mode. Wave Drive Stepping Mode Full Drive Stepping Mode Energizing the two endpoints of different phases simultaneously achieves a full-drive-stepping mode. The table shows the signal phase sequence for the full-drive -stepping mode. Full Drive Stepping Mode Half Drive Stepping Mode The combination of the steps of the wave and full-drive-stepping modes achieves a half-drive-stepping mode. Thus, in this mode, the stepping angle is divided into half. The table shows the signal phase sequence of a half-drive-stepping mode. Half Drive Stepping Mode In general, the stepping angle depends on the resolution of the stepper motor. The size of thesteps and the direction of rotation are directly proportional to the number and order of the input sequence. The rotating speed of the shaft depends on the frequency of the input sequence. The torque and the number of magnets magnetized at a time are proportional. The stepper motor requires 60mA current, but the maximum current rating of the Atmega microcontroller AT89C51 is 50mA. So, a stepper-motor-controller ICisused to interface the stepper motor with the microcontroller for transferring the signals. 2. Control Switch Circuit Using Transistors The power supply to the circuit can be given by stepping down the voltage from 230V to 7.5V using a step-down transformer, and then rectifying by a bridge rectifier with diodes. This rectified output is fed to a filter capacitor, and then passed through the voltage regulator. The 5V regulated output is obtained from the voltage regulator. The reset pin9 is connected between the capacitor and resistor. Stepper Motor Control Circuit using Transistor In general, the stepper motor consists of four coils as shown in the figure. So, to drive the motor, four motor-driver circuits are required. Instead of using the stepper motor controller IC to drive the motor, four transistors are connected as the driver circuits at 21, 22, 23 and 24 pins of the microcontroller, respectively. If the transistors start conduction, then a magnetic field will be created around the coil causing rotation of the motor. The stepper motor speed is directly proportional to the input pulse frequency. A crystal oscillator is connected to the pins 18 and 19 to provide microcontroller clock frequency of about 11.019MHz. The execution time of any instruction can be calculated using the below formula Time=((C*12))/f Where C= number of the cycle And F = crystal frequency One of the application based circuit that uses a stepper motor for rotating solar panel is described below. Stepper Motor Control Using Programmed 8051 Microcontroller Sun Tracking Solar Panel project is intended to generate the maximum amount of energy by automatically adjusting the solar panel. In this project, a stepper motor controlled by a programmed microcontroller of 8051 family is interfaced to the solar panel to maintain the solar panels’ face always perpendicular to the sun. Stepper Motor Control Using Microcontroller by Edgefxkits.com The programmed microcontroller generates stepped electrical pulses at regular intervals to the stepper motor for rotating the solar panel. The driver IC is used to drive the stepper motor as the controller is unable to provide the power requirements of the motor. Please leave your suggestions, feedback and queries by posting comments in the comment section below. We will do our best to help you technically regarding this article and developing electrical and electronics projects using the stepper motor. Share This Post: Facebook Twitter Google+ LinkedIn Pinterest Post navigation ‹ Previous Understanding Long-Range Cordless Burglar Alarm SystemNext › Know all about Solar Powered Window Charger with Circuit Related Content AVR Atmega8 Microcontroller Architecture & Its Applications AVR Microcontroller (Atmel 8) Serial Communication USART Configuration AVR Microcontroller Projects for Engineering Students Types of AVR Microcontroller – Atmega32 & ATmega8