Hasta con un PIC pequeño se pueden hacer grandes cosas.
Eso gracias al bus I2C interno del PIC12F1840 y usando expansores PCF8574.
Yo, en un pequeño juguete que diseñé hace tiempo, utilizaba un simple PIC10F206 para medir la temperatura del agua. El juguete era pequeño y el pic iba encapsulado en SOT23-6, así que solo tenía 3 puertos bidireccionales. Debía accionar 3 leds a modo de semáforo para indicar si la temperatura era menor de 30, estaba entre 30 y 40, o era superior a 40 grados. Usé charlieplexing para combinar la medida de la temperatura con las mismas líneas de los leds.
El sensor que iba a usar era una PTC tipo KTY81/210, la idea era hacer un sencillo ADC usando el comparador interno del PIC. El procedimiento era muy sencillo. Conectaba en la gpio del comparador el sensor resistivo en paralelo con un condensador. Entonces durante unos milisegundos, esa GPIO era una salida digital a 4.7V (era el voltaje del LDO que usaba) que cargan el condensador. Después cambiaba a entrada analógica del comparador, y contaba el número de ciclos de la CPU hasta que el condensador se descargaba a través de la resistencia sensora hasta los 0.6V que era la referencia interna del comparador que al activarse terminaba la cuenta. Después a través de una tabla convertía los ciclos a temperatura y así decidía que leds encender, repitiendo el ciclo cada medio segundo.
La anécdota viene cuando al probar por primera vez el programa, me di cuenta que el micro estaba leyendo la temperatura sin haber conectado el sensor, puesto que estaba usando un potenciómetro para simular cambios en la temperatura. Pero algo pasó que al tocar un rato el circuito el color del led cambió, y al soltar se mantuvo durante 10 segundos hasta que volvió al color de antes.
Resulta que usé el primer condensador que encontré del valor calculado, que creo que era de 100nF. Puse un condensador cerámico y resultó ser que tenía más variación y más rapidez de respuesta a la temperatura, que la propia PTC, resultando ser mejor sensor, y haciendo que el juguete bajara bastante de precio de coste en materiales (el ajuste de 0 había que hacerlo igual para la PTC que para el condensador)