I have an issue with reading battery voltages of three 12 volt batteries using an ESP-01 and an ADS1115. I have been graphing the measurements and the all of the graphs have a temperature component to the readings. As the outside temperature increases, so does the reading from the ADS1115. I have verified that battery voltages do not change with the temperature. I have also recreated the problem by heating up my project case and seeing a great increase in the readings. Both of my voltage divider resistors are made of the same material, so I would have thought that the changes in resistance would affect both components and not change the reading much. I have replaced the LD1117 with a 3.3v buck converter and the problem still exists.

Details of my project are located here: https://hackaday.io/project/167291-rv-battery-monitor

ThingSpeak data graphs: https://thingspeak.com/channels/870224

Any ideas where the temperature component error is originating?

  • 1
    Your resistor values are way too high. The ADS1115 can have (depending on the settings) an input resistance as low as 3MΩ. Your resistors (battery output impedance) needs to be no more than 10% of that. For the impedance of a voltage divider calculate the parallel resistance of the two resistors involved (909kΩ currently). – Majenko Oct 7 at 16:18
  • consider reading the 3.3v at the same time, then using any derivation from 3.3v to calibrate the 12v readings. That said, the ADS should not fluctuate very much from temp, so maybe your resistors are getting hot. – dandavis Oct 7 at 19:25
  • I finally received my resistors in the mail and was able to replace them with smaller values. I decided on using 100k and 10k for the voltage divider and the temperature error component is mush less, .07 volt difference in readings between 30F and 95F. This is sufficient for my needs. Thanks for the recommendation Majenko! – rockfishon Oct 23 at 15:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.