2
\$\begingroup\$

I don't know whether or not I'll actually build one yet, as to do so properly would require ball bearings, metal working, etc and frankly the fund's just aren't available right now(have yet to purchase the previous circuit I said I'd build, although the design and concepts are as clear as day to me now thanks to your help) That said, I'd like yet more advice from you guys.

I found this excellent resource: http://homepage.cs.uiowa.edu/~jones/step/types.html and concluded that If I was going to build one I'd build a variable reluctance stepper motor because the rotor wouldn't need to be magnetised and the switching would be 'relatively' simple. Unfortunately, I have absolutely no experience whatsoever with micro-controllers and integrated circuits, though I hear alot of good thing's about Arduino.

enter image description here

It come's down to this: As much googling as I do, fundamentally I know nothing(really) about micro-controller's and integrated circuits and such. While one 'guide' or 'tutorial' uses micro-controller XYZ, with specific code N, another could do it with entirely different code on micro-controller UWN. Worse still some just use discrete components (transistors). Even if I were able to follow the guide to the letter (of those that I've found), I wouldn't know much more than when I'd started and disregarding that I wouldn't even know how to begin to program a micro-controller (interpreter? what's this interpreter you speak of? visual studio 2010, right? I kid, I kid. )

I plan to at least purchase a stepper motor and drive it by myself as a gateway into these kind of components. I'd love to just read a comprehensive guide to these components, but of course no such resource exists. I therefore conclude that I should just decide to build something and build up knowledge that way(It's how I learnt to program and as gruelling as it was, It got the job done).

Some thing's to know: I have 3+ years of experience programming in C++. No experience with coding assembly or other such low-level languages. However it goes without saying I'd be fine coding most program's in C with proper documentation.

Finally, the question: What integrated circuits/micro-controllers, etc, etc would you suggest for me to purchase as a (complete) beginner. I've looked into Arduino but It's obviously not the only solution nor necessarily the best. In terms of number of phases, not sure yet, a controller with room to expand would be great. Also, let me know if this is too much as a 'starting' point. Thanks.

\$\endgroup\$
  • \$\begingroup\$ You may be better off dealing with a dedicated motor driver, I'm familiar with AllMotion controllers. These use RS-485 to interface the motors. See: allmotion.com \$\endgroup\$ – Shamtam Aug 18 '12 at 4:59
2
\$\begingroup\$

You can drive a small bipolar stepper motor using an L293, SN754410, or L298

If you find a unipolar stepper motor (not uncommon in the paper advance on cheap printers) you can drive that relatively easily with discrete NPN transistor switches. In theory you can do a bipolar motor that way, but the circuit is a bit trickier (it's easy to get both the high and low transistors on and as a result short out the power supply, making them rather warm). Besides printers (copiers?) floppy drives are another salvage source, but hard drives switched to voice coils ages ago. Lots of surplus outfits will sell you motors; if you aren't looking for something powerful enough to run a machine tool you probably won't have to spend much.

Since you are very new to embedded programming as well, you might want to look at one of the "motor shield" type solutions - not necessarily to buy (though of course that is an option) but to study the plans and example software.

If working with a salvaged motor for which you don't have data, start with low voltage/current until you get movement. One thing that can be interesting to do is to take a <1 amp power supply and work out the series of voltage applications to the winding by hand connnecting them to slowly step the rotor. You can buy chips such as the L297 which generate this sequence to control the power driver chip, or you can do it yourself in software.

Actually making a motor may be fairly tricky, but people do make brushlesss motors which are stepper's lower-pole-count cousins. For early experiments ball bearings are likely not your greatest concern - plastic or oil-impregnated bronze sleeves might serve. But rollerblade wheel bearings are fairly cheap: mounting them is going to be a big part of the challenge (and a challenge which starts to stray from the topic of EE stackexchange)

\$\endgroup\$
0
\$\begingroup\$

Yes, Douglas W. Jones writes good tutorials.

I recommend getting an off-the-shelf motor driver and an off-the-shelf stepper working first, before trying to build some custom motor driver or some custom-wound motor.

The stuff that goes between the pins of the microcontroller and the wires of the motor is called the "motor driver", also called the "electronic speed controller" (ESC). The easiest-to-use motor drivers have a "step" pin and a "direction" pin that connect to the microcontroller.

Many relatively low-cost stepper motors and stepper drivers are listed at http://reprap.org/wiki/stepper_motor .

A few "stepper motor + motor driver + microprocessor" tutorials for beginners (using off-the-shelf stepper motors, stepper driver boards, and microprocessor boards):

A few "wind your own stepper motor" tutorials:

Did you know that the standard way to program Arduino is in C++ (with a bunch of Arduino libraries, also written in C++), compiled with the standard gcc compiler?

I hear that the Robotics Stackexchange is better for questions about the mechanical side of connecting motors up to other stuff; this Electronics Stackexchange is better for questions about the electrical side of interfacing a microprocessor to a motor.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.