Software
The firmware for this project was developed in mikroC Pro for PIC compiler. The equations to derive the input voltage from the 10-bit ADC output (Digital Number, DN) are described below.
VBattery = VADC, IN * (R1 + R2/R2 = 4.13 * VADC, IN
Resolution of ADC = 4.096/1024 = 4 mV/DN
VADC, IN = DN * 4 (mV)
=> VBattery = 4.13 * 4* DN (mV) = 0.0165*DN (V)
The use of internal reference voltage for A/D conversion requires configuration of FVRCON and ADCON1 registers. The mikroC Pro for PIC compiler provides a library for A/D conversion, but that uses the supply voltage, VDD , by default as the positive reference for the conversion. So the built-in ADC library of mikroC Pro for PIC is not useful for our case and we need to write our own ADC subroutine. The complete source code for this project can be downloaded from the link provided below.
Output
Plug in the device into the car’s cigarette lighter receptacle and turn in the car key to on position (don’t start the engine). This will display the car battery terminal voltage (about 12 V). Once the engine is turned on, the battery starts receiving the charging voltage from the alternator. This voltage should be higher (about 13.8 V) than the actual voltage produced by the battery itself.
Recommendation
An additional LED or a buzzer can also be added to the circuit to alarm under (say < 11.8) or over (say >14.0 V) voltage conditions.