Different battery measurement value with power USB cable/Battery with ESP32

I'm doing IOT project and need measure battery voltage. Using lipo battery 4.2v Max. run voltage divider 100k-->measure here-->27k-->Ground. ~097v at measure point. then i use internal 1.1v reference ADC.
1st) i powered up by usb cable, ground to ground. The voltage in monitor is nearly my currently battery volage ~~3.6V.

2nd) i powerd up by battery, connect esp32's pin 3.3V to +battery, GND to GND., then it's 3.4V.

Why is it different 0.2V error? Could anyone help me. in 2 cases voltage between *measure here and ground is 0.75v

The battery idle voltage seems to be 3.6V, while with a load it drops to 3.4V. If you have a DMM at hand, measure the battery voltage also with the DMM in both cases.

DrDiettrich:
The battery idle voltage seems to be 3.6V, while with a load it drops to 3.4V. If you have a DMM at hand, measure the battery voltage also with the DMM in both cases.

~3600 is the voltage i measure when i powered by usb cable. ~3400 is when i use same battery to powered esp32 by 3.3V pin

So you see that the Arduino ADC gives exactly the voltage that you also can measure with the DMM.

DrDiettrich:
So you see that the Arduino ADC gives exactly the voltage that you also can measure with the DMM.

Yes battery is ~3.60v now ( i measured with the DMM). ESP32 adc give exactly value when i powerd by USB cable (3612.44 mV).
But when i powerd esp32 by battery. it is 341x mV. my question is why it is so different. My project actually run on battery too

Almost all kinds of batteries have a higher idle voltage than under load, that's normal. Really characteristic is the voltage under load.