Voltage Divider

Here is an example by Darrel Taylor for a voltage divider circuit. This makes it possible for a PIC to give an analog measurement for voltage that is more than 5v.

This example divides a 25 volt source into about 4.38 volts for the PIC's A/D converter to handle.

The ratio of the voltage divider is (R1+R2)/R2. To scale up the A/D reading you just multiply the value times the total resistance of the divider (R1+R2) then divide that number by R2.

If the input is 25Vdc then the output voltage will be 25v/((R1+R2)/R2) or 25v / ((4700+1000)/1000)) = about 4.38 Vdc. With 10-bit A/D you should get an ADCin of around 898. If you first scale that A/D value up to match the voltage divider ratio, you can then calculate the voltage the same way you would if you were reading 0-5 V.

898 * 5700 / 1000 = 5118 This is what the A/D would be if it could actually read 0-25 volts directly.

Now then, for 1 decimal place, multiply that by 50 and divide by 1023. For 2 decimal places, multiply by 500 instead.

5118 * 50 / 1023 = 250 or 25.0Vdc

The program below is one way to do it in PBP.

HTH, Darrel

Res1   Var Word
Res2   Var Word
Rt     Var Word
Volts  Var Word
AD     Var Word

GetReadings:
   ADCin  0, AD
   Res1 = 4700          ' Change these to match your Voltage divider
   Res2 = 1000          ' resistor values for the Solar Cell
   Gosub CalcVoltage
   LCDout $FE,2,"Solar= ",DEC Volts/10,".",DEC1 Volts Dig 0," Vdc"

   ADCin  1, AD
   Res1 = 2200          ' Change these to match your Voltage divider
   Res2 = 1000          ' resistor values for the Battery
   Gosub CalcVoltage
   LCDout $FE,$C0,"Batt = ",DEC Volts/10,".",DEC1 Volts Dig 0," Vdc"

goto GetReadings

CalcVoltage:
    Rt = Res1 + Res2        ' Total resistance of Voltage Divider
    Volts = AD * Rt         ' Scale the AD reading accordingly
    Volts = DIV32 Res2
    Volts = Volts * 50      ' Convert AD to Voltage
    Volts = DIV32 1023
Return

This article was originally published in forum thread: Using the A/D for Monitoring a Solor Cell and Battery started by chuck.sieveking

Page last modified on March 02, 2018, at 10:22 PM