NEW: Learning electronics? Ask your questions on the new Electronics Questions & Answers site hosted by CircuitLab.
Basic Electronics » angular position sensors and multiplexing
November 28, 2010 by d3adl0ck3 |
Hello all, I am just getting started with electronics and have a project in mind that requires the measurement of a number of changing angles at the same time. In my naivete I assume I need a bag full of sensors that measure an angle (rotation about one that is) and some way to multiplex them together. That is about as far as I can get on my own. Does anyone have a suggestion as to what kind of parts might be used for this? Picture a crane or something where I need to know the angle of the arm and it's rotation relative to the ground but with a lot more points of measurement required. More details can easily be supplied once I know what sorts of questions there might be. Thanks in advance for any help! |
---|---|
November 28, 2010 by bretm |
How many degrees of angular precision do you need in the measurements? For angular position measurement you can use a rotary encoder. You can pay big bucks for encoders with 1-degree precision, but you can hack together a single-track encoder to get 6-degree precision. You just need a disc and five optical sensors. Instead of a rotary encoder you might be able to translate the rotational movement into linear movement and then follow the digital calipers tutorial to get a precise measurement. |
November 28, 2010 by d3adl0ck3 |
Thanks for the quick reply! The measurements I need probably fall into to 6 to 10 degree range. For the application I am looking at I don't think I require the exactness provided by the rotary encoder, I was thinking of just using a bunch of linear potentiometers with a multiplexer. I found this tutorial multiplex force sensors that does a similar thing. I would probably be fine with a single 16 way multiplexer to start but quickly searching for MC14067BCP (the multiplexer they used) didn't turn up anything obvious to the uninitiated. Can anyone recommend a tutorial that uses the nerdkit with a multiplexer in a similar fashion (to measure multiple resistances)? I found this link based on another post and it seems a bag full of one of these guys might work though I don't know which to pick regarding the resistance range of the potentiometer. I am pretty sure single linear is appropriate. |
November 28, 2010 by Rick_S |
Another thing you can use are accelerometers or gyros. You could see the Wii Nunchuck thread where there is full sample code. You can see the different readouts when the nunchuck is tilted, these could be translated to angular positions. These are nice because they communicate via a single interface (in the case of the nuchuck I2C). The type of encoder / sensor you need will primarily be dictated by your programming ability, your circuit building ability, and the method of mechanical connections available in your project. Just offering another idea. Rick |
November 28, 2010 by d3adl0ck3 |
Thanks for the suggestion, I had looked a little into accelerometers and gyros and I think given the number of points of measurement I am looking at it may be impractical. Regarding the encoder, my circuit building ability is minimal but I am good at small detailed work. My programming ability is very good but I am an application programmer, not an electrical engineer and this is a learning experience for me. I am more than proficient at C, C++, Java, Python and more. As per options for mechanical connections the sky is pretty much the limit. If any of that narrows down the options for the encoder I'd love a recommendation. Thanks! |
November 28, 2010 by hevans (NerdKits Staff) |
Hi d3adl0ck3, It looks like you have quite a bit of freedom when it comes to how you physically attach your sensors to your project, so this will give you some room to experiment to find out what works best. My suggestion is if you can make a digital rotary encoder work for you, go with it. The advantage with a digital rotary encoder is the digital nature makes them easier to work with in terms of noise and circuitry required. With digital rotary encoders you can hook them up directly to the digital I/O pins on your MCU and use pin change interrupts to capture the transitions and interpret the angles. If you only need to sense relative position, as in you only need to know how much it has moved then a normal quadrature output rotary encoder will do just fine. If you need know the absolute position then you would need an absolute encoder, look for Gray code encoders. A quadrature rotary encoder will use up 2 of your digital pins to read it, the absolute encoders will require more. If you choose to go with a more analogue approach with potentiometers and changing resistances you will definitely get better angular resolution but you will have to deal with wiring up the circuit, cleaning up the noise, and multiplexing your sensors. Note that you can use the ADMUX on the chip to multiplex 6 different analog inputs into the ADC, so if you only need 6 sensors you won't need an separate multiplexer. Hope that gets you going, feel free to ask more questions as they come up. Humbeto |
November 28, 2010 by d3adl0ck3 |
Thanks Humberto, |
November 28, 2010 by esoderberg |
d3adl0ck3 , Sparkfun has 74HC4052 mux/demux for under a dollar that may work for you. Data sheet on link: https://docs.google.com/leaf?id=1YrdzQOF3nTD5Q0atgHZGZaizo7ted5QjMa3we_fO9tOZGF_2n2qGGefUHMKy&hl=en&authkey=CICr9a8O Eric |
November 29, 2010 by d3adl0ck3 |
Thanks for the link! I now have a handful of muxs and potentiometers on the way. Christmas is coming early this year ;-) |
Please log in to post a reply.
Did you know that interrupts can cause problems if you're not careful about timing and memory access? Learn more...
|