Overview

We've already covered how to use an Analog-to-Digital Converter chip with a Pi. These chips are the best way to read analog voltages from the Pi. However, there's a way to read many sensors without an ADC! By measuring the sensor as a resistor that is used to 'fill up' a capacitor, we can count how long it takes. It's not nearly as precise as an ADC and its a little flakey (since it depends on the Pi timing itself which can vary based on how 'busy' the computer is)

The way we do this is by taking advantage of a basic electronic property of resistors and capacitors. It turns out that if you take a capacitor that is initially storing no voltage, and then connect it to power (like 3.3V) through a resistor, it will charge up to the power voltage slowly. The bigger the resistor, the slower it is. 

This technique only works with sensors that act like resistors. however, there are quite a few fun sensors that act this way: photocells, thermistors (temperature sensors), flex sensors, force-sensitive resistors, and many more.

It cannot be used with sensors that have a pure analog output like IR distance sensors or analog accelerometers.
This guide was first published on Jul 29, 2012. It was last updated on Oct 16, 2018. This page (Overview) was last updated on May 04, 2015.