Hi,
I am using a simple resistor ladder to measure the voltage accross one resistor with the ADC. But, the measured voltage has 100mV offset from the real measured voltage accross the resistor with the multimeter. I thoght that it might take some current to the ADC and added a large resistor in series to the input of the ADC but the measured voltage changed a lot, so it highly depends on that (technically it should not have any dependacy to the series big resistor). Could you please help me on that how to measure it accurately.
Regards,
Mehdi
ADC Voltage measurement is not right!!!
Re: ADC Voltage measurement is not right!!!
Was the voltage in the linear range ?
Would you please give some details of the real voltage and the read value ?
And what settings did you use to initialize and to read the voltage ?
Here are some application examples of ADC module.
https://docs.espressif.com/projects/esp ... n-examples
Would you please give some details of the real voltage and the read value ?
And what settings did you use to initialize and to read the voltage ?
Here are some application examples of ADC module.
https://docs.espressif.com/projects/esp ... n-examples
-
- Posts: 10
- Joined: Mon Jun 17, 2019 4:04 pm
Re: ADC Voltage measurement is not right!!!
Thanks for your reply. I have used 0 value as the initial point and the value that I am reading is in the linear region and also tried different regions but got the same issue. Here is my code:
/*Program to control LED (ON/OFF) from ESP32 using Serial Bluetooth
* Thanks to Neil Kolbans for his efoorts in adding the support to Arduino IDE
* Turotial on: www.circuitdigest.com
*/
#include "BluetoothSerial.h" //Header File for Serial Bluetooth, will be added by default into Arduino
BluetoothSerial ESP_BT; //Object for Bluetooth
int incoming;
const int Analog_channel_pin= 33;
int ADC_VALUE = 0;
int voltage_value = 0;
int i = 0;
void setup() {
Serial.begin(115200); //Start Serial monitor in 9600
ESP_BT.begin("ESP32_LED_Control"); //Name of your Bluetooth Signal
Serial.println("Bluetooth Device is Ready to Pair");
}
void loop() {
if (ESP_BT.available()) //Check if we receive anything from Bluetooth
{
incoming = ESP_BT.read(); //Read what we recevive
Serial.print("Received:"); Serial.println(incoming);
delay(1000);
if (incoming == 49)
{
ESP_BT.println("System turned ON");
int i;
for(i=0; i<10; i++)
{
ADC_VALUE = analogRead(Analog_channel_pin);
Serial.print("ADC VALUE = ");
Serial.println(ADC_VALUE);
delay(1000);
voltage_value = (ADC_VALUE * 3.3 ) / (4095);
Serial.print("Voltage = ");
Serial.print((ADC_VALUE * 3.3 ) / (4095));
Serial.print(" volts");
Serial.print("Resistance = ");
Serial.print((((ADC_VALUE * 3.3 ) / (4095)/3.3) * 2412)/(1-((ADC_VALUE * 3.3 ) / (4095)/3.3)));
Serial.print(" ohms ");
}
}
if (incoming == 48)
{
ESP_BT.println("System turned OFF");
}
}
delay(1000);
}
/*Program to control LED (ON/OFF) from ESP32 using Serial Bluetooth
* Thanks to Neil Kolbans for his efoorts in adding the support to Arduino IDE
* Turotial on: www.circuitdigest.com
*/
#include "BluetoothSerial.h" //Header File for Serial Bluetooth, will be added by default into Arduino
BluetoothSerial ESP_BT; //Object for Bluetooth
int incoming;
const int Analog_channel_pin= 33;
int ADC_VALUE = 0;
int voltage_value = 0;
int i = 0;
void setup() {
Serial.begin(115200); //Start Serial monitor in 9600
ESP_BT.begin("ESP32_LED_Control"); //Name of your Bluetooth Signal
Serial.println("Bluetooth Device is Ready to Pair");
}
void loop() {
if (ESP_BT.available()) //Check if we receive anything from Bluetooth
{
incoming = ESP_BT.read(); //Read what we recevive
Serial.print("Received:"); Serial.println(incoming);
delay(1000);
if (incoming == 49)
{
ESP_BT.println("System turned ON");
int i;
for(i=0; i<10; i++)
{
ADC_VALUE = analogRead(Analog_channel_pin);
Serial.print("ADC VALUE = ");
Serial.println(ADC_VALUE);
delay(1000);
voltage_value = (ADC_VALUE * 3.3 ) / (4095);
Serial.print("Voltage = ");
Serial.print((ADC_VALUE * 3.3 ) / (4095));
Serial.print(" volts");
Serial.print("Resistance = ");
Serial.print((((ADC_VALUE * 3.3 ) / (4095)/3.3) * 2412)/(1-((ADC_VALUE * 3.3 ) / (4095)/3.3)));
Serial.print(" ohms ");
}
}
if (incoming == 48)
{
ESP_BT.println("System turned OFF");
}
}
delay(1000);
}
Who is online
Users browsing this forum: Baidu [Spider] and 144 guests