![]() ![]() That means there are 32 steps per revolution (360°/11.25° = 32). The 28BYJ-48 motor runs in full step mode, each step corresponds to a rotation of 11.25°. unfortunately many of the easily obtainable joysticks just use on/off microswitches to crudely detect position, the high accuracy joysticks (from electric wheelchairs and industrial diggers) cost a fortune, so I'm really just left with making something - hence the reason for this post.The maximum speed for a 28byj-48 stepper motor is roughly 10-15 rpm at 5 V. Ideally I'd like a lightweight, high accuracy joystick. I know, at least I they're cheap and I didn't waste too much money finding out how bad they are! That SparkFun 'joy stick' pot is pretty much garbage as far as resolution and repeatability goes I believe the problem stems from the fact that most joysticks use a carbon track pot that only sweeps through only a few degrees, making repeat-ability very hard to achieve. Yes, I've actually played with some of these in my earlier experiments and they do produce the desired results, but a 20 turn pot can't easily be incorporated into a aircraft style control column (not that you knew what I wanted to do with it on my first post)! My experiments so far indicate that an arduino can easily control a servo to this level, the problem is finding a human input device that allows me to control the arduino equally accurately.Īt the moment I recon I'm lucky if I can manage an accuracy of 10 degrees. a repeatable accuracy of about 2 degrees). I'd like to achieve a resolution/repeatability of about 90 discrete positions in a 180 degree sweep of a servo arm (i.e. If you're trying to set the servo to specific fixed position, you may find it's more repeatable if you replace the pot with something like a rotary switch, and use preset resistors to define the servo position corresponding to each switch position. I don't know what you're trying to do with the original solution, but I suspect you may not have been setting the pot to the same physical position every time - that would cause the servo position to be off by a corresponding amount. How many positions do you need to support? Will they be fixed for all time, or do you need some way to adjust them? There are 20 turn precision pots that would work well if that would work as a user input device. That SparkFun 'joy stick' pot is pretty much garbage as far as resolution and repeatability goes, it just is not a precision device, the one I played with had really poor 'return to center' properties so it would be the limiting device in your servo control loop. So that leaves us with the pot to deal with. The Arduino analog input pin is a 10 bit ADC conversion, so that gives one 1024 steps of resolution, so that is a close match to the output resolution of the servo library. Well there are two issues you are dealing with, resolution and repeatablity of the servo output command from the arduino and resolution and repeatablity of the arduino analog input ADC converter and any kind of pot you might be using to generate the analog voltage.Īs far as the first part I would state that using the arduino standard servo library functions and using the servo.writeMicroseconds() command gives you a more resolution then most servos are capable of, but check your servo datasheet if you are in doubt. ![]() To summarize my question, what’s the best (smallest and lightest) way to accurately control a couple of servos using an arduino? In an ideal world I’d like to be able control the servos with a mini-joystick like this one Thumb Joystick - COM-09032 - SparkFun Electronics? but having played with this on other projects I know that it also suffers a lack of precision. I’ve looked at various rotary encoders, but from what I can tell they generate pulses when the knob gets turned, so you can’t actually get an accurate position when it’s not moving, also, I understand that if the encoder gets turned too quickly then pulses can get missed. If I try to use a pot, then I’m still likely to have similar problems with a lack of accuracy. Assuming that the arduino can accurately control the servo, I still need to accurately control the arduino itself. I’m planning to use an arduino to generate the PWM (pulse width modulated) signal that controls the servo. What I want to achieve is to be able to reliably move my input device (rotary pot, linear pot or anything else) to a pre-determined position and be confident that the servo itself will move to exactly the same position that it moved to before. I think the lack of accuracy comes from a lack of precision in the potentiometer (despite what it may say in the catalogue) ![]() At the moment the project uses a 555 timer circuit and a potentiometer to move the servos. I’ve got a servo/robotics project that currently suffers from a lack of repeatability and precision.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |