Background:
I'm are building an airplane simulator with old components from a cockpit that I hook into the simulator. In this model I have a couple of steering controls for the throttle, nose wheel and the breaks.
First I tried to solve these controls with simple potentiometers but the accuracy was worthless, for example the throttle became was really jittery and the nose wheel felt nervous! Then I got to lend some really expensive digital rotary encoders stuff that needs a whole new computer together with a extreamly expensive PCI card ($2000+). This works of course perfectly but in some weeks I need to return the hardware.
So now I need to do something simular (with almost the same precision).
Questions:
Can a newer analog potentiometer have the same accuracy (in "steps" of 0.5 deg)?
Is there any cheap (max $200) absolute rotary encoders that is compatible with the arduino? (something like 1000 steps per rotation)
Can I do this in a whole new way using gyros or something else?
Isn't that an incremental type and not an absolut rotary encoder? Or could I somehow deduct the absolute position (without the need to calibrate each time I use it)?
Pots will be your cheapest bet... absolute encoders are usually very expensive and a lot harder to interface with, and you won't be able to use a non-absolute encoder in this situation.
Potentiometers are analog, so your angle resolution will depend on the resolution of your A/D converter. I'm assuming you are using an analog input on an Arduino to read the voltage across the pot?
If you are experiencing jitter, make a low pass or moving average filter in your Arduino code. Just be careful not to introduce too much delay that it becomes noticeable in the controls.
pcdangio:
Pots will be your cheapest bet... absolute encoders are usually very expensive and a lot harder to interface with, and you won't be able to use a non-absolute encoder in this situation.
That's a pitty, I think I was looking for a cheap version of an absolute rotary encoder.
pcdangio:
Potentiometers are analog, so your angle resolution will depend on the resolution of your A/D converter. I'm assuming you are using an analog input on an Arduino to read the voltage across the pot?
Do they only depend on the A/D? Can I find "better" (e.g. more expensive) versions of pots that doesn't jitter and doesn't degrade (that fast) over time?
I would like to minimize the filtering on the arduino...
dacwe:
Do they only depend on the A/D? Can I find "better" (e.g. more expensive) versions of pots that doesn't jitter and doesn't degrade (that fast) over time?
I just want to point one thing out. I have an Tektronix 2465B 400MHz scope from the 80s, considered a very good scope in its day, and every rotary control (except one) is a pot. It seems that all scopes from that period use pots. I have a new model 2000 Agilent scope and every rotary control is an encoder. It seems that all scopes now, even cheap Rigols, use rotary encoders. It requires no thinking to know there is a very good reason for this fact.
What is wrong with calibrating each control when you switch on? It only requires moving each control in turn from stop to stop until the dashboard says "OK".
I could be wrong, but I thought that was actually part of aviation protocol anyway.
Paul__B:
What is wrong with an incremental encoder?
What is wrong with calibrating each control when you switch on? It only requires moving each control in turn from stop to stop until the dashboard says "OK".
I could be wrong, but I thought that was actually part of aviation protocol anyway.
You could maybe combine one with a pot. Read the pot at startup to get a rough idea of where the wheel is then use the incremental encoder from then on.
fungus:
You could maybe combine one with a pot. Read the pot at startup to get a rough idea of where the wheel is then use the incremental encoder from then on.
Maybe for certain applications that would work, but in my opinion it eliminates one of the best features of the encoder, which is that there is no limit to the number of turns that the encoder can make.
While on the subject if you want only 128 steps/revolution this
mechanical encoder is quite interesting, its absolute:
8 data pins needed though, and a lookup table to back-convert the particular
Gray code it uses (note not reflected Gray code). I've bought one and it has
a very nice feel (it feels expensive, aptly enough). I checked, no missed codes,
no invalid codes (8 pins gives one bit of redundancy/error checking I suppose)
A: Do you realy need 10 bit resolution 1024 different trottle steps (different motor sounds and acceleration)
B: you can use a incremental encoder and a micro switch (pushbutton) in the min trottle position. At start up all analog controls must be put in the min position so the uC knows what to start with (min)
Edit: you need 2 optocoupler i 90° phase.
C: You can make your own encoder of a disk (perhaps a CD) with holes and an slotted optocoupler. Not so many bits but look at A:
Pelleplutt:
A: Do you realy need 10 bit resolution 1024 different trottle steps (different motor sounds and acceleration)
Well if you read the OP the answer is yes, 0.5 degree or better, and good reliability
B: you can use a incremental encoder and a micro switch (pushbutton) in the min trottle position. At start up all analog controls must be put in the min position so the uC knows what to start with (min)
Edit: you need 2 optocoupler i 90° phase.
C: You can make your own encoder of a disk (perhaps a CD) with holes and an slotted optocoupler. Not so many bits but look at A: