ADC without ADC.

Here is a example how to read analog values without an Analog-to-Digital converter. Any Microchip PIC microcontroller without ADC can be used. (10/1/2006)


Digital electronics and Analog electronics doesn't mix easily. A Microcontroller can't get analog values unless an Analog-to-Digital converter is used, however, you may find a little complicated the use of an ADC and it need lots of Input/Output ports.


Some Microcontrollers, like the small 8-pin Microchip PIC 12F675, do have an ADC integrated, but it is expensier than a PIC without ADC. A simple solution is to use a RC circuit to measure the resistance or capacitance.


Basically, a RC circuit is just a capacitor and a resistor. The circuit labeled A shows the most common RC circuit used. I like to use the B circuit, I get better results.


RC circuit


You can replace the resistor and use a thermistor to measure temperature (PTC or NTC), also a photoresistor can be used to measure light. Any kind of resistive sensor can replace the resistor. If you are using a capacitive sensor, just replace the capacitor instead of the resistor.


How it works:


Just connect the RC circuit directly to an I/O pin of the microcontroller. You can use a 33pf capacitor and 1k resistor.


  • First, make the I/O pin as OUTPUT.
  • Second, make the pin POSITIVE (+) for one milisecond. (Using a PIC at 4mhz, a 255-cycles loop will be enough).
  • Third, Make the I/O pin as INPUT and measure how long stays as POSITIVE (+).


    An good application of this technique is my "One wire keypad":


    one wire keypad


    The PIC will measure the RC value of the I/O pin. If the time measured is too long, that means; there is no key pressed. Precision resistors and Mylar capacitor is required to get exact values.


    You can see my " Security Keypad " uses a similar technique.



    Instead of using a single I/O pin, I used an I/O pin for each row.


    Note: Measuring capacitance or resistance usign this technique is affected by the voltage.



     < Getting Started with PICs.Homepage
    howto Index
    Beakman Motor> 


    If any information, data, picture or design infringes a copyrighted material, please send me an e-mail asking to remove it along with the supporting data.
    Some features may not work with Google Chrome. © 2006-2010 Jose Pino - Powered by JPC Alpha