Thursday 21 May 2015

Driving a Stepper Motor with an ATTiny85 Microcontroller

Tim Sunerton is currently a student in the Art Dept at The University of Reading and wanted to power a number of roller blinds with motors so that they would move up and down. He had already produced one which moved the blind down into a trough of paint and then lifted this back up again and smeared the paint onto a canvas (see Tim's Blind). The blind was powered by a NEMA17 type stepper motor, a motor driver and an Arduino Uno. To attach the motor to the blind, a coupling was fabricated using the 3D printer. 
For the current project (four blinds) and as an exercise in making things smaller I suggested that the blinds could be powered by ATTiny85 microcontrollers, as we don't need all of the ports that the Uno offers. I built a test rig using some stripboard, a voltage regulator (plus a few capacitors) and an ATTiny85. The first image shows the ATTiny85 on the stripboard:

The two wires coming out of the left side of the board connect it to the power supply (in this case a bench power supply @ 12V); the wires at the right power the stepper driver and provide the pulses to drive the motor:

The ATTiny85 was programmed by piggy-backing on an Uno, which I have to say is very easy, although I eventually decided to make a programmer shield for the Uno so that you can just plug in the ATTiny85 directly into the shield and program it without needing to connect any wires. (Note: the stepper motor above was not used for Tim's blind project - just for testing. He used much larger motors for his project).

I made three of these boards and Tim used them in his project. We also had to fabricate 4 new adapters for the blinds. One of the blinds was quite big, and even though Tim used a higher torque motor, the weight of the canvas on the blind pulled the blind down against the force of the motor. This was a bit of a problem, and the solution seemed to be in gearing the motor in some way to increase the torque. After a little thought, I came up with this:

A worm gear that would increase the torque by an order of magnitude, and stop the blind from pulling down. Here's the work in progress as we tested out the motor driver (and killed it, though fortunately had a spare) and programmed the microcontroller for speed and the correct number of rotations:

We used the Uno for this particular arrangement after having blown the original driver. The motor was later attached to the frame using the bracket that we fabricated with the Cube:

Note the lack of hole in the centre of the front mount. Whoops. We later drilled a hole using a pillar drill.

No comments:

Post a Comment