# Transducer signal voltage changes when instrument connected, why? How can I measure it?

Discussion in 'The Projects Forum' started by skyflyer, Jun 14, 2016.

1. ### skyflyer Thread Starter New Member

Jun 14, 2016
5
0
I have a rotary encoder (basically a wind vane) that comprises a rotary potentiometer with phased off takes to produce - for any given position of the vane - 3 discrete voltages down the three signal wires. The unit is nominally 12v and the voltages down the signal line vary between nominal 12v and 0v depending on the position of the vane.

In practice the measured voltages are less, with a maximum of maybe 8 or 9v, due probably to the age (20 years) of the transducer and presumably wear and dirt over the contacts etc.

The 3 signal wires are connected to a display instrument that has a needle showing the wind direction. Obviously there are no stops on the display, the needle is free to rotate through 360 degrees in either direction.

The instrument requires no external power supply of it's own to work, the needle is driven by the three signal wires.

I wish to tap those voltages and process them using the ADC element of an Arduino to produce a digital output of wind direction. I have a working set-up based on the transducer alone, i.e. the Arduino reads analog voltages (via a voltage divider, of course!) from 0 to 9v on each signal wire and outputs a digital wind direction. (the algorithm is based upon a ration of (highest voltage - middle voltage)/ (highest voltage-lowest voltage))

The problem is that I have no idea how the display instrument actually works,(bear in mind, it is 20 years old and was probably designed years before that) but what happens is that when you connect it, the voltages on the signal wires all trend towards a similar value. The differences become extremely small. So for example, the open circuit voltages of (say) 8v, 2v, 3v, will - once the display is connected, become something like 2.3v, 2.1v, 2.0v.

The differences (especially after voltage division) are now so small that the Arduino cannot measure accuatrely enough and the calculations to extract the wind direction become very inaccurate.

So I amftersome general guidance as to a way to either (a) measure the open circuit voltage in a way that the connected instrument will not influence it. Suggestions have been to introduce analog optocouplers in the signal lines so that the arduino lies 'upstream' of the o/c or (b) measure the residual voltages with sufficient accuracy to calculate a valid direction.

At this point I need to explain that my knowledge of electronics is pretty much confined to DC, resistors, capacitors and thats it. Semiconductors are a black art to me, so I regret that devices like Op-amps and so on, if needed, will require me to be pointed in a direction where I can also find out the details of any necessary supporting components etc.

Graetful for any pointers. Even if I could just understand how the display 'changes' the voltages, I'd be a lot clearer in my own mind!

Graeme

2. ### Marley Member

Apr 4, 2016
171
46
What generates the voltage? Is there a wind speed indicator as well with some kind of generator?
Are you sure its a potentiometer?

3. ### skyflyer Thread Starter New Member

Jun 14, 2016
5
0
Sorry i should have been clearer - there is a 12v DC supply to the transducer. (There is indeed a windspeed anemometer but its an entirely independent circuit, generating a 5v pulse per rotation via simple magnetic switch, I think. I have that part of it working fine)

4. ### skyflyer Thread Starter New Member

Jun 14, 2016
5
0
sorry meant to answer the last part of your question: yes it is a potentiometer of sorts rather than a hall effect sensor. Later models produced by the same manufacturer moved to Hall effect with (i think) just two signal lines as a consequence - does that make sense?
Having said that, there are a lot of components on a small PCB in the transducer housing so its more complex that just one pot!

5. ### Marley Member

Apr 4, 2016
171
46
OK so it is a potentiometer, then. There may be other resistances in the circuit as well, We don't really know what is in the indicator either. It may actually be measuring current.

Not familiar with the ADC in the Arduino. Has the Arduino got more than 1 ADC? One way to overcome the lack of voltage might be to measure all 3 voltages simultaneously and mathematically, in software, calculate the ratio between the voltages. In this way, the actual voltages will not matter.

Also, what is the input voltage range of the ADCs? What is the input impedance? needs to be high so that the signals are not loaded.

6. ### skyflyer Thread Starter New Member

Jun 14, 2016
5
0
Arduino has multiple ADCs. Depending on model max voltage that can be applied to a pin is 3.3v or 5v hence need for voltage divider circuit between it and the input! It measures 1024 discreet steps either between 0v and that 3.3v or 5v, OR you can give it a ref voltage o another pin and it will measure 1024 steps between ov and that ref voltage.
Th set up I have at the moment measure ass 3 voltages simultaneously, lets call them Vx (highest value) Vd (mid value) and Vl (lowest value). The angle is 60 * (Vx-Vd)/Vx-Vl). Which 60 degree sextant is determined by which lines are High and Low respectively.
So you are correct that the actual voltage is irrelevant - a neat way that cancels out any line voltage losses and so on (bear in mind there is about 40m of cabling between display and transducer)
The problem is that when the instrument is connected the reduction of voltages mean that the accuracy becomes questionable. Bear in mind that at some angles one or more of the voltages will be near zero, so when you have then divided that through the voltage divider and used a near zero value for a mathematical calculation involving division, the results can rapidly become very inaccurate - and they do!

7. ### skyflyer Thread Starter New Member

Jun 14, 2016
5
0
also found this regarding input impedance
"The datasheet says it's 100Mohms typical. However, that's not the whole story, because when you switch the multiplexer to select the analog input you want, the sample capacitor has to charge up. The code for analogRead() allows no time for this (stupidly, IMO) which is why you often see advice to read from the port twice and discard the first reading. My own measurements indicate that a 10us delay between switching the mux and starting the ADC conversion gives reliable results with up to 100K source resistance. The conversion itself takes around 100us, so an extra 10us isn't very significant."

almost greek to me i'm afraid