I intend to amplify 0-1V signal using an operational amplifier circuit to 0-3.3V signal.
Why I need it ?
Ans: I am reading a temperature signal which is 0-1V using an arduino DUE for a very wide range of temperatures (specifically 0-650 °C), which means 0V for 0°C and 1V for 650°C. Therefore for room temperature, the signal is millivolts and although using a multimeter I measure the right voltage on the pins but when I plug those pins in the arduino, the voltage drops significantly such that in the serial monitor I see a value which is way off my desired value. Now, I have decided to amplify the signal to 0-3.3V signal (3.3 being the reference voltage of Arduino DUE) hoping that the deviation in the signal might be reduced. I do not have electrical or electronics background therefore I am looking for ready-made modules. Could somebody please advise any product which meets my requirements.
Thanks !!
Please, give a ink to your temperature sensor. I would suggest to use an external 16-bit ADC like: ADS1115 to avoid the use of extra amplifier.
Manual_GMH3251_EN.pdf (1,0 MB)
This is a device which comes with a precision thermocouple. The device generates an output signal depending on the set DAC.0 (minimum temperature value) and DAC.1 (maximum temperature value) and scale it between 0 and 1V signal. The signal is read using a stereo cable which can be plugged into the arduino Analog input pin and GND pin.
Page 15 of the pdf is the most relevant.
"I would suggest to use an external 16-bit ADC like: ADS1115 to avoid the use of extra amplifier".
++
40°C would be 61.54mV, the ADS1115 with 4x gain would give you 1969 ADC counts from 0 to 61.54mV, 25°C would be about 1230 counts.
https://www.adafruit.com/product/1085
Know nothing of arduino due, but this post says that impedance of analog pins varies with the adc clock, so set your adc clock to 1MHz and you should have an impedance of 270Kohm ( the pdf you linked says your thermometer output should do fine with input impedances > 10Kohm ), so you should have not problems.
Also consider that having a 0-650°C -> 0-1V you'll have a resolution of 0.5°C with the due a/d converter ( which is 12 bit I read )
Look at the spec of your processor- can it use an internal reference to make full scale of the ADC to be 1volt ?
There are lots of thermocouple amps about , some with digital outputs which may be a better choice .
Thermocouple are not great at lower temperatures close to ambient
1. With gain 4x, the full scale range is: -1.24V to +1.024V
2. For +ve signa, the count range is: 0 to 32768
3. Resoultion: 1.024/62768 = 31.25 uV
I was going by this:
// ADS1015 ADS1115
// ------- -------
// ads.setGain(GAIN_TWOTHIRDS); // 2/3x gain +/- 6.144V 1 bit = 3mV 0.1875mV (default)
// ads.setGain(GAIN_ONE); // 1x gain +/- 4.096V 1 bit = 2mV 0.125mV
// ads.setGain(GAIN_TWO); // 2x gain +/- 2.048V 1 bit = 1mV 0.0625mV
--------------------------------------------------------------------------------------------------
// ads.setGain(GAIN_FOUR); // 4x gain +/- 1.024V 1 bit = 0.5mV 0.03125mV
--------------------------------------------------------------------------------------------------
// ads.setGain(GAIN_EIGHT); // 8x gain +/- 0.512V 1 bit = 0.25mV 0.015625mV
// ads.setGain(GAIN_SIXTEEN); // 16x gain +/- 0.256V 1 bit = 0.125mV 0.0078125mV
No could not change the reference voltage with DUE. It has only one reference and that is 3.3 V. The option to use AREF pin is also not available directly. There is tiny resistor soldered onto the board which fixes the AREF to 3.3 V. One option is remove it but considering the size of that sensor, it is nearly impossible.
===>
ads.setGain(GAIN_FOUR); // 4x gain +/- 1.024V weight/LSB = 1.042V/32768 = 0.03125mV