Arduino Due Strange AnalogRead Values

Hi there,

im a bit desperade.. i have a Temperature Sensor that gives a clear 0-3,3V Signal onto the Analog In Ports of my Arduino Due. I tested this signal with a multimeter.

The Problem is, that i get too low Values.. The Voltage Signal input is aprox 1V, the correlating values that are shown when i read out the port are around 12/13. When i change the resolution to 12 bit i get a Value of around 96. More sense would make a Value around 1300, what do you think?

Is my arduino Due broken or is this a result of messing with bit-operators? Is there a way to reset the board to factory default? I tried the two buttons already..

pls help, thanks

Is my arduino Due broken or is this a result of messing with bit-operators?

Who knows? You didn't post any code.

here is the code for to test:

double e;

void setup() {

Serial.begin(9600);
analogReadResolution(12);

}

void loop() {
// read the value from the sensor:
e=analogRead(A0);
delay(1000);

Serial.println(e);

}

i dont know why the values are so low.. monday i will try it with another arduino due..

corsair_ wrote:

i have a Temperature Sensor

Nice, but what sensor is that from all the thousands that are available?

The Problem is, that i get too low Values

On what, where, be specific?

when i read out the port are around 12/13

What does 12/13 mean?

is this a result of messing with bit-operators?

You don't have bit operators in your code, do you?

Is there a way to reset the board to factory default? I tried the two buttons already

You need to read more carefully, the details about the Arduino DUE.

Why do I notice you are always writing the word 'Value' with a capital V when there is no need and then write 'arduino' with a lower case a when it is correctly 'A' for Arduino?


Paul

the sensor is not the problem, because the signal is coming clear to the arduino. but it is an industrial pt100.

i get appearently too low values when i read the analog in of the board, in comes a voltage of 1V and i get values of around 96 with a resolution set of 12 bits. normally i would expect values around 1300 because the valuerange with this resolution goes from 0 to ~4090. this is the main problem.

i dont have any bitoperators in the code, right. i thought maybe they can change something once and forall, but that seems to be impossible, right..

"Why do I notice you are always writing the word 'Value' with a capital V when there is no need and then write 'arduino' with a lower case a when it is correctly 'A' for Arduino?"

sry but my english is not native. i thought this is a technical discussion and not an emotional :wink:

OK, a quick Google shows that a PT100 is some kind of RTD = resistive temperature sensor. There's a lot of ways of wiring them up. You need to tell us exactly which model you have and how you have wired it.

Resistance Temperature Detectors (RTDs) have a linear increase in resistance as temperature rises. RTDs come in 2-wire, 3-wire or 4-wire versions. A 2-wire RTD signal is affected by the distance to the controller. 3-wire or 4-wire RTDs can compensate for line losses.

I suspect that you are trying to measure a voltage from something which is only a resistor.

Measuring with a multimeter is not always going to work as the multimeter itself will load down the circuit. Do you get better values from the Arduino when you put the multimeter probes in the circuit?

Thanks Morgan, I was going write something like what you have. I use RTD's in industrial automation, and so what you say is exactly correct, an RTD is a resistor that is effected by temperature that very much more linear than other temperature sensors.

There are two types of pt100 typically used, with slightly different 0ºC points, but this will not be your problem here.

With an RTD, you need to have excitation across it to be of any use and typically, RTD's are used with 4-20mA signal systems, and many come complete with the 4-20mA transmitter in the RTD housing, where the excitation voltage is supplied from the 4-20mA loop.

What you can also try is to use a simulator, either a voltage calibrator or make up a resistor circuit that will give you a voltage within the ADC range and try your program.

corsair_, can you please spend more time detailing exactly what you have, or all it will be is a guessing game.
Detail clearly what sort of RTD you have and exactly how you have it wired up to the analog input.

The program as you have it should work fine as you presented it, so I can only assume you have an issue with your hardware setup.


Paul

thanks for the replies guys, i wasnt going into detail, because for me the main problem was how the arduino due gives for a 1V input such low values.

The setup is like that: A PT100 resistance temperature sensor connected to a transmitter that delivers a signal of 0-10V. Then comes another transmitter that turns the 0-10V into a 0-3.3V signal. For a temperature of aproximately 50 degrees celsius i receive a voltage of aproximately 1V which go to the analog input of the arduino. I dont know the exact name of the sensor.

the whole thing is closed-loop-controlling a flowseve valve which also is via transmitters connected to the arduino and this part also works.

i now just wanted to calibrate the temperature sensor and see that the arduino values are way too low for the voltage that is directly going inside to the analog input. the voltage of 1V itself makes sense and is as expectet correlating to the transmitter voltages of around 3V which again make sense because the first transmitter is designed for a temperature range of 0-150°C/0-10V output and i measured with an analog temperature sensor a temperature of aproximately 50°C.

i will exchange the microcontroller on monday because i think it is broken or sth.. i will report after doing so :slight_smile:

best regards

How long are the 3.3v wires? Is it anywhere near an electric motor? You might have interference or you may even have spikes strong enough to damage the Due. Do you have any input protection components?

This 3.3v "transmitter", Can you give us more detail? What is its output impedance?

Do you have access to an oscilloscope?

corsair_:
Hi there,

im a bit desperade.. i have a Temperature Sensor that gives a clear 0-3,3V Signal onto the Analog In Ports of my Arduino Due. I tested this signal with a multimeter.

pls help, thanks

What is the output impedance of the sensor? It needs to be 10k or lower.

Have you connected ground to the sensor?

Have you tested that analog pin any other way (say connecting it to 0V and 3.3V
to ensure its working)?

Did you measure the voltage with multimeter from the sensor when it was actually
connected to the Due?

Is the sensor powered separated?

problem solved, it was a ground soldering mistake on the voltage divider..

thanks for the tips, i thought it had to do with the arduino itselve.

works perfect now : )