28. Precision voltmeter using ADC

Back To All Submissions
Previous Submission
Next Submission

Solving Approach:

How do you plan to solve it?

Use conditions to check on what reference what values are obtaining. If 1023 is obtained durig vref = 1.1, change the reference to DEFAULT (5 V). And if digital values are less than 226 (226 is equivalent digital value of 1.1 V), then set reference as INTERNAL (1.1V).

 

Code

float vref;
int pot = A0;

void setup(){
  pinMode(pot, INPUT);
  Serial.begin(115200);
  analogReference(INTERNAL); //internal ==> 1.1 V;
  vref = 1.1;
}

void loop(){
  float value = analogRead(pot);
  float voltage = value*vref/1024;
  Serial.println("Digital Value = "+String(value)+" | Voltage = "+String(voltage)+" | V_reference = "+String(vref));
  if(value == 1023 && vref == 1.1){
    analogReference(DEFAULT);
    vref = 5.0;
  }
  if(value < 226 && vref == 5.0){
    analogReference(INTERNAL);
    vref = 1.1;
  }

  delay(500);
}

Output

Digital Value = 409.00 | Voltage = 0.44 | V_reference = 1.10

Digital Value = 618.00 | Voltage = 0.66 | V_reference = 1.10

Digital Value = 777.00 | Voltage = 0.83 | V_reference = 1.10

Digital Value = 1023.00 | Voltage = 1.10 | V_reference = 1.10

Digital Value = 292.00 | Voltage = 1.43 | V_reference = 5.00

Digital Value = 340.00 | Voltage = 1.66 | V_reference = 5.00

Digital Value = 396.00 | Voltage = 1.93 | V_reference = 5.00

Digital Value = 431.00 | Voltage = 2.10 | V_reference = 5.00

Digital Value = 479.00 | Voltage = 2.34 | V_reference = 5.00

Digital Value = 518.00 | Voltage = 2.53 | V_reference = 5.00

Digital Value = 650.00 | Voltage = 3.17 | V_reference = 5.00

Digital Value = 757.00 | Voltage = 3.70 | V_reference = 5.00

Digital Value = 851.00 | Voltage = 4.16 | V_reference = 5.00

Digital Value = 853.00 | Voltage = 4.17 | V_reference = 5.00

Digital Value = 893.00 | Voltage = 4.36 | V_reference = 5.00

Digital Value = 1013.00 | Voltage = 4.95 | V_reference = 5.00

Digital Value = 1019.00 | Voltage = 4.98 | V_reference = 5.00

Digital Value = 1023.00 | Voltage = 5.00 | V_reference = 5.00

Digital Value = 1023.00 | Voltage = 5.00 | V_reference = 5.00

Digital Value = 1023.00 | Voltage = 5.00 | V_reference = 5.00

Digital Value = 1023.00 | Voltage = 5.00 | V_reference = 5.00

Video

Add video of output (know more)

Photo of Output

 

 

 

 

 

Was this helpful?
Upvote
Downvote