Utiliza dos pines GPIO, alterna entre el modo de entrada y el de salida
Pasos:
Descargar el condensador
Cargar una resistencia conocida
Condensador de descarga
Cargar la resistencia UNKNOWN (el sensor)
http://www.doctormonk.com/2013/12/analog-sensors-without-analog-inputs-on.html
Utiliza el GPIO como modo de entrada para detectar la carga hasta alcanzar el umbral (aproximadamente el punto medio de tensión)
Esta técnica permite que un simple MCU de bajo coste sin ADC incorporado lea un sensor analógico (de resistencia variable dependiendo de la calidad detectada), incluyendo la temperatura (termistor), la humedad, la luz (CdS), la fuerza, etc.
Buena precisión absoluta si la resistencia conocida es de alta precisión. La tolerancia del condensador se anula.
Ampliamente utilizado en dispositivos de electrónica de consumo. Tienen una excelente resolución, que puede llegar a ser de 16 a 20 bits aproximadamente. El tiempo de conversión típico es de 100 ms. Se puede negociar una conversión más rápida con una resolución menor. Puede utilizar el temporizador de hardware de la MCU.
Raspberry Pi (frente a Arduino) no tiene un ADC incorporado y esta técnica se utiliza a menudo.
Versión de una clavija, menor precisión absoluta al verse afectada por la tolerancia del condensador. http://www.raspberrypi-spy.co.uk/2012/08/reading-analogue-sensors-with-one-gpio-pin/
Además, la versión de tres pines, utiliza un pin para la detección (modo de entrada) y la descarga rápida (salida), para un tiempo de conversión más rápido.