555 TIMER CIRCUIT TO DRIVE a STEPPER MOTOR

4,192

8

5

It all began when I purchased some TB6560 V20 stepper motor driver boards, for a 3 axis engraver that I am building, Two boards arrived with two broken switches, and, I wanted to know if the boards were functioning properly, the safest way was to develop a pulse circuit to drive the board, by using a 555 timer. the circuit was a success and I found that the Driver boards were functioning properly. When I informed the seller at Ebay he refunded 25% of the cost...

It also gives you the opportunity of driving a stepper motor like all other motors, without micro controllers, Hybrid stepper motors produce high torque at low speeds and can be used in many fields without gearing..

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: THE 555 CIRCUIT

Usually a stepper Motor is rotated with a driver,and,the driver is driven by pulses from a microcontroller,

A simple way to test a stepper motor driver or stepper motor is to generate pulses using a 555 timer. In this demonstration, a 555 timer is constructed to generate two frequencies which can be chosen by a switch, one low frequency of about 1Hz and one at around 100Hz. Faster speeds could be generated by changing the capacitor from 0.1UF to 0.01UF or 0.001UF, the speed could also be controlled by adjusting the 100k Variable resistor. pictured here is the basic circuit diagram. in its first stage of construction. I presume you have a basic knowledge of electronics and have had some basic experience in wiring on vero board. hence I will only provide pictures of the wired board.

The entire circuit is powered by a step down electronic transformer, in addition to the basic timer circuit that is displayed in the drawing the following have been added.

1. A two way switch for switching capacitors.

2. A two way switch for switching + 5volts and GND for the CW direction signal.

3. A 5 Volt regulator 7805 for operating the 555 timer and for the high and low (Binary) signals for the stepper Driver board.

4. A regulated 12 volt supply using a 7812 regulator. this is for driving the stepper motor..

All the additions are labelled and shown in the picture that is displayed.

Step 2: CONNECTING THE DRIVER BOARD AND THE STEPPER MOTOR

The connections to the driver board are shown in the picture, note the following

1. the enable signal is GND or Zero which is applied to the EN- . Applying a + signal to the + EN will stop the rotation.

2. CW - is given to GND and CW+ is given a binary 1 or 0 to turn clockwise or anticlockwise this signal is given via

a two way switch which is shown in the picture.. Binary 1 is +5 volts and binary 0 is GND.

3. The pulse signal from pin No.3 of the 555 timer, is given to CLK + and CLK - is given a GND connection.

4. The motor connections are given to the stepper motor usually Red & Blue and Green & Black are the colour of the wires where BLACK is + GREEN is - and BLUE is - and RED is +

5. The other two motor connections is for the motor power supply in this case, I have given it a regulated +12 volts from the 7812 regulator, the other terminal is given a GND connection.

The video shows when the circuit is switched on, note the direction of the stepper motor can be changed by using the spring loaded two way switch.. SO THAT IS IT HAPPY STEPPING....

Recommendations

• 3D Printing With Circuits Class

6,994 Enrolled

5 Discussions

GeraldZ1,

I like this. I'm considering using a low-power 555 to pulse a stepper motor *driver*, (like the drv8825, tcm2100, or tcm2130) so I can drive my stepper driver from the 555, thereby offloading the pulse-generation from my microcontroller (using esp8266). My intention is to free the microprocessor from any incurred blocking imposed upon it while moving the motor. I will use a pin-interrupt to detect how many steps have been taken (aka pulses generated by the 555 as the stepper motor moves). I then plan to implement a variety of stepper speeds (to accelerate and decelerate) using a digital potentiometer in place of R2 in the basic 555 circuit. What I don't know yet is how long it will take me to change the digital pot's resistance (via i2c, I suppose). I plan to only vary the resistance of the pot occasionally during accel/deceleration so as to minimize the stepper driver wait time, hopefully minimizing stepper choppiness during accel/deceleration.

Since I'm using an esp8266-based microprocessor (actually a wemos d1 mini pro), it will be busy in the background doing all its WiFi stuff, and although I haven't tested it just yet, I expect that when I enable WiFi, it will cause the stepper motor to pause during movement when all the WiFi stuff happens. Let's face it, the esp8266 does *a lot* in the background, behind the scenes. The timing necessary to drive a stepper motor while it's moving is critical. This probably isn't the best microprocessor for the job.

Another possible solution would be to use a second microprocessor just to drive the stepper, and communicate between processors via serial. This way the esp8266 could do the WiFi, and the arduino or attiny or whatever could do the stepping. This would in some ways be cleaner, and would eliminate lots of unknowns with respect to stepper driver timing,but where's the fun in that? Tinkering is fun, and if it works with the 555/digital pot, it will be pretty cool...

Thanks for sharing your project!!! It has inspired me to consider pursuing using a 555 in my project!