Showing posts with label stepper. Show all posts
Showing posts with label stepper. Show all posts

Monday, July 8, 2013

Stepper Motor Controller

Stepper motors are available in several versions and sizes with a variety of operating voltages. The advantage of this general-purpose controller is that is can be used with a wide range of operating voltages, from approximately 5 V to 18 V. It can drive the motor with a peak voltage equal to half the supply voltage, so it can easily handle stepper motors designed for voltages between 2.5 V and 9 V. The circuit can also supply motor currents up to 3.5 A, which means it can be used to drive relatively large motors. The circuit is also short-circuit proof and has built-in over temperature protection. Two signals are required for driving a stepper motor. In logical terms, they constitute a Grey code, which means they are two square-wave signals with the same frequency but a constant phase difference of 90 degrees. IC1 generates a square-wave signal with a frequency that can be set using potentiometer P1. 

This frequency determines the rpm of the stepper motor. The Grey code is generated by a decimal counter in the form of a 4017. Outputs Q0–Q9 of the counter go high in succession in response to the rising edges of the clock signal. The Grey code can be generated from the outputs by using two OR gates, which are formed here using two diodes and a resistor for each gate, to produce the I and Q signals. Here ‘I’ stands for ‘in-phase’ and ‘Q’ for ‘quadrature’, which means it has a 90-degree phase offset from the I signal. It is common practice to drive the windings of a stepper motor using a pair of push-pull circuits for each winding, which is called an ‘H bridge’. 

That makes it possible to reverse the direction of the current through each winding, which is necessary for proper operation of a bipolar motor (one whose windings do not have centre taps). Of course, it can also be used to properly drive a unipolar motor (with centre-tapped windings). Instead of using a push-pull circuit of this sort, here we decided to use audio amplifier ICs (type TDA2030), even though that may sound a bit strange. In functional terms, the TDA2030 is actually a sort of power opamp. It has a difference amplifier at the input and a push-pull driver stage at the output.

Circuit diagram:
stepper-motor-controller-circuit diagram
Stepper Motor Controller Circuit Diagram

IC3, IC4 and IC5 are all of this type (which is economically priced). Here IC3 and IC4 are wired as comparators. Their non-inverting inputs are driven by the previously mentioned I and Q signals, with the inverting inputs set to a potential equal to half the supply voltage. That potential is supplied by the third TDA2030. The outputs of IC3 and IC4 thus track their non-inverting inputs, and each of them drives one motor winding. The other ends of the windings are in turn connected to half the supply voltage, provided by IC5. As one end of each winding is connected to a square-wave signal that alternates between 0 V and a potential close to the supply voltage, while the other end is at half the supply voltage, a voltage equal to half the supply voltage is always applied to each winding, but it alternates in polarity according to the states of the I and Q signals.

That’s exactly what we want for driving a bipolar stepper motor. The rpm can be varied using potentiometer P1, but the actual speed is different for each type of motor because it depends on the number of steps per revolution. The motor used in the prototype advanced by approximately 9° per step, and its speed could be adjusted over a range of approximately 2 to 10 seconds per revolution. In principle, any desired speed can be obtained by adjusting the value of C1, as long as the motor can handle it. The adjustment range of P1 can be increased by reducing the value of resistor R5. The adjustment range is 1:(1000 + R5)/R5, where R5 is given in k.If a stepper motor is switched off by removing the supply voltage from the circuit, it’s possible for the motor to continue turning a certain amount due to its own inertia or the mechanical load on the motor (flywheel effect).

It’s also possible for the position of the motor to disagree with the states of the I and Q signals when power is first applied to the circuit. As a result, the motor can sometimes ‘get confused’ when starting up, with the result that it takes a step in the wrong direction before starting to move in direction defined by the drive signals. These effects can be avoided by adding the optional switch S1 and a 1-k resistor, which can then be used to start and stop the motor. When S1 is closed, the clock signal stops but IC2 retains its output levels at that moment, so the continuous currents through the motor windings magnetically ‘lock’ the rotor in position. The TDA2030 has internal over temperature protection, so the output current will be reduced automatically if the IC becomes too hot. For that reason, it is recommended to fit IC3, IC4 and IC5 to a heat sink (possibly a shared heat sink) when a relatively high-power motor is used. The tab of the TO220 case is electrically bonded to the negative supply voltage pin, so the ICs can be attached to a shared heat sink without using insulating washers.
 
 
 
Source by : Streampowers
{ Read More }


Tuesday, April 30, 2013

Maximite Stepper Motor Interface

This simple circuit and program listing allows the Maximite microcomputer (SILICON CHIP, March-May 2011) to control a stepper motor. It could be expanded to allow for the control of multiple motors, with four of the Maximite’s external I/O pins used to control each motor with identical driver circuits. A ULN2003 Darlington transistor array (IC1) switches current through the stepper motor’s two windings in either direction. When one of the four Maximite output pins (8, 12, 16 & 20, corresponding to I/Os 19, 17, 15 & 13) goes high, the corresponding output pin on IC1 goes low, sinking current through a motor winding. Conversely, when these pins are high, the corresponding Darlington transistor is off and so no current flows through that portion of the winding.

Maximite stepper motor interface
The centre tap of each motor winding is connected to a current source comprising PNP Darlington transistor Q1 and some resistors. The maximum current is determined by the resistive divider driving its high-impedance base, setting the base voltage to around 9.1V when it is fully on. By adding Q1’s base-emitter voltage (1.4V at 0.5A, as per the data sheet) we can determine that there will be around 1.5V across the 3.3O resistor (12V - 10.5V), resulting in a current of 1.5V ÷ 3.3O = ~450mA. Transistor Q1 must be fitted with a medium-sized flag heatsink (Jaycar HH8504, Altronics H0637) or larger to handle its maximum dissipation of (10.5V - 4.9V) x 450mA = 2.5W.

When one of the Darlington transistors switches off and current flow through the corresponding motor winding ceases, the inductive winding generates a back-EMF current which causes the voltage across that winding to spike. IC1 has internal “free-wheeling” diodes from each output to the COM pin, which is connected to the +12V supply. The back-EMF current flows back into the power supply and the voltage spikes are clamped at about 12.7V, so that the Darlington transistors do not suffer collector reverse breakdown, which might damage them.

A 470µF capacitor provides supply bypassing for the motor while a 47kO pull-up resistor and toggle switch/pushbutton S1 drives input pin 9 of the Maximite, allowing manual control of the motor direction. Table 1 shows the sequence in which the output pins are driven to turn the motor forward; the steps are run backwards for reverse operation. The delay between the steps determines the speed at which the motor rotates. The source code of the sample program is available for download from the SILICON CHIP website (maximite_stepper_motor.bas).
{ Read More }


IconIconIconFollow Me on Pinterest