It means my motors will be at least four times more accurate !Īfter more testing, I found that boosting the voltage near to the maximum allowed for my motor (so it gets its 500mAmps per winding), results were much more accurate. Still, I'm pretty happy with my results! It means I can use my motors at least in 16 steps microstepping, maybe 24 or 32. It's a bit trial and error and only meaningful up to 32 steps in my setup. So a 25% duty cycle corresponds to a movement of 40 or 50%. In fact, in the video I already adjusted some values to correspond to actual movement of the light. In fact, I'm now assuming that a 25% duty cycle in the waveform correponds to a 25% movement between the steps and that's just not true. I boosted it up to 64 steps, but that's not really useful. That's the only way to notice these small changes. I used a mirror on the motor and a powerful LED flashlight to see the refection on the wall. Step 6 is actually a fast alternation between step 5 and 7.Ĭheck out this video where I tried to check how far I could go with this motor. What it actually means is that my Arduino code switches at a high frequency between two half stepping steps, creating these thick vertical lines on the scope. In microstepping, eight new steps are introduced which have columns marked '½' for convenience. This means that only one winding is activated in these steps. Half stepping introduces four extra steps (2,4,6,8) where only one of the four wires is connected to Vcc (the plus side of the power source of the motor), the other three are connected to ground. Just switch polarity on channels (A,B) and (C,D). ![]() This is what it looks like:įull stepping is pretty straight-forward. Now, just imagine channel two (C,D) showing the exact same picture, only with a 90° phase shift. Actually, I had to make the mistake first to find out that the motor stopped and things got hot very fast when connecting channel two -) I use a very old machine as you can see, hooking up two channels to the four wires of the motor would shortwire the driver chip because the scope uses a common ground between the channels. Note that this is only half of the story, meaning the pictures only show one winding (A,B). I hooked it up to an oscilloscope to see what waves come out in the different methods. Full stepping would be the best choice if you want maximum torque, half stepping and microstepping are more useful if you need accuracy. The Arduino code I wrote can now drive the stepper motor in full stepping, half stepping and microstepping. ![]() I chose the latter method, since my L293D driver chips support 0.5 Amps current per winding, which is exactly what the supplier claims to be the working current of the motor. That's te reason why I tried to write some new Arduino code to make them more accurate using microstepping.Īs you can see on the picture, the motor comes with six wires, so I could choose to drive it like a unipolar or a bipolar stepper motor. ![]() That's not very accurate as steppers go, so for my purpose they may not be suitable. These motors were cheap for a reason: the step angle is 3.75°, making 96 steps in one revolution. Torque is not a big deal, since I won't be cutting hard materials. The main issue for this purpose will be accuracy in the stepper motors that drive the X- and Y-axis. I'm trying to build a small CNC machine to cut and drill in light materials such as plastic housings or PCBs. I bought these stepper motors online for a project I'm working on.
0 Comments
Leave a Reply. |