PCF8591:
4 ENTRADAS ANALOGICAS
Cambiamos aquí de Circuito Integrado. Abandonamos el PCF8574 y pasamos a este. El primero nos permitía ampliar 8 entradas o salidas digitales. Este nos permitirá conectar hasta 4 entradas analógicas.
Para refrescar la memoria, estas entradas son las que pueden tomar múltiples valores entre 0 y 1. Es el caso de un potenciómetro; de un termómetro; un sensor de luz ambiente; un sensor de distancias SHARP...
Por cierto, el ultrasonidos, pese a ser de este tipo, usa por configuración interna el bus I2C (digital), por lo que creo que no seria posible conectarlo aquí.
Las utilidades pueden ser muchas. Una muy clara sería fabricar un joystic con 2 potenciómetros. Usando este circuito, podremos conectar ambos en un solo puerto y aún nos sobran pines. Es decir podríamos conectar 4 potenciómetros en el Puerto 1, para hacer 2 joystics para dos jugadores.
Aquí, las entradas analógicas son AIN0, AIN1, AIN2 y AIN3. Es el equivalente de las "P" del otro circuito, solo que aquí sólo son entradas. Pines 1 al 4.
A0, A1 y A2 es exactamente igual que en el otro circuito. Según como las conectemos, el circito tendrá una dirección u otra, es decir, lo identificaremos con un número u otro. Pines 5, 6 y 7.
SDA (pin 9) y SCL (pin 10) coinciden exactamente con el otro. Son respectivamente tierra, datos del bus I2C y reloj del I2C.
Vss (pin 8) es tierra, cable negro del NXT.
Vdd (pin 16) alimentación, cable verde del NXT.
AOut (pin 15): el circuito dispone de una salida analógica adicional.
Dos resistencias de 82K ohm.
A los componentes habituales que ya hemos usado (conectores, cables, etc), añadiremos elementos analógicos. Los más fáciles de visualizar y explicar serán los potenciómetros, así que nos basaremos en ellos para entender el circuito.
Un integrado PCF8591P. Puedes consultar su hoja técnica pinchando aqui.
Para este nuevo circuito, necesitaremos un nuevo icono para poder leer los valores que nos va aportando. Es este. Y puedes encontrar el enlace a la página para descargarlo en Software.
El panel de configuración del icono está dividido en dos partes. Selecciona "Four single-ended inputs" en el "Mode" para disponer de la configuración que se indica en la imagen:
Lo primero que debemos seleccionar, como siempre, es el puerto al que lo vamos a conectar. En nuestro caso el 1. Ten cuidado porque me parece que hay un error y no aparece en el icono el puerto que selccionas en el panel, sino un número menos, salvo que lo hayan corregido. Así que para el puerto 1, aparecerá un 0 en el icono.
Lo siguiente a seleccionar es la dirección. Si no me equivoco, hay hasta 7 configuraciones distintas para conectar el CI, según conects los pines A0, A1 y A2. Tal como haremos nuestro circuito, la dirección para leerlo será la x90. Por cierto, este número, aunque no lo parezca, está en hexadecimal. Con la calculadora veríamos que se trata del 144 en decimal. Pero bueno, hay que poner 90 en la casilla.
A continuación viene el modo, que ya está seleccionado. Con esta modalidad, podrás leer las 4 entradas sin problemas.
Ahora viene la casilla más importante: "Read Channel". Según el número que pongas, podrás leer el valor del sensor conectado a AIN 0, AIN 1, AIN 2 o AIN 3. Es decir, de los sensores conectados a los pines 1 al 4. Si conectas el sensor al pin 2, seleccionas el canal 1 para leerlo. Es justamente lo que tienes en el dibujito del panel de configuración.
Esta vez deberemos montar lo siguiente. Fíjate que hay dos cables que pasan por encima del circuito a modo de puentes. Simplemente lo que hacen es conectar los pines 12 y 13 al cable negro del NXT, tierra. Podrías conectarlo también directamente allí, pero así queda más limpio el montaje.
PRECAUCION
Si cambias las conexiones de A0, A1 o A2 para darle otras direcciones al circuito, recuerda que los pines 12 y 13 van conectados al cable negro.
Ya está, este es el circuito básico. Como puedes ver, nos quedan libres las 4 entradas analógicas AIN 0 hasta AIN 3 (pines 1 al 4). Vamos a ver ahora cómo conectar ahí los dos potenciómetros.
1. Dos potenciómetros de 10K
2. Dos resistencias de 10K
Los potenciómetros (en amarillo en la imagen) tienen tres patas. La pata central es la que va conectada al circuito (cable rojo en la imagen). De los otros dos extremos, uno al cable negro y otro al verde.
Hay dos pines del circuito a los que no vamos a conectar potenciómetro. Para evitar que se queden sueltos, conectamos resistencias de 10K y lo conectamos al cable verde del NXT.
Si quisieras conectar 2 potenciómetros más, quitas esas resistencias y los conectas como los otros.
En esta primera foto se puede ver cómo añadimos las 2 resistencias de 10K al circuito básico. Son las de bajo a la derecha.
Y ahora añadimos los 2 potenciómetros en las entradas correspondientes.
La configuración ya está prácticamente explicada, pero la ponemos de nuevo. Para visualizar el valor del potenciómetro, debes seleccionar el cable "Vin" en el icono, como se ve en la imagen.
Tienes la configuración de ambos canales, el 0 y el 1. Cada uno lee un potenciómetro. Recuerda poner un display en la línea 2 y el otro en la 4, para ver ambos valores. Y sólo uno de los Displays debe llevar activada la pestaña "Clear".
Este primer programa nos servirá para ver si todo va bien y los valores que e obtienen para poder programar a continuación.
Y vemos que los valores varían entre 0 y 255, como era de esperar. Ahora ya podemos programar algo que se parezca a un joystick. Como otras veces, he pintado en rojo un cable para que se vea mejor, concretamente el que entra en la "Y" del Display. La configuración del icono PCF8591-NX es exactamente la misma que tienes arriba.
Ahora que ya hemos entendido el funcionamiento, conectaremos una LDR, que es el sensor que ya utilizamos en el Sensor de Luz Ambiente Analógico. Para su montaje, usaremos resistencias de 10K.
A partir del circuito base es muy sencillo, aunque si lo ponemos todo junto, la imagen es bastante farragosa. En realidad, sólo hemos añadido la conexión de más a la izquierda del todo, la que conecta a AIN 0.
Las 4 resistencias que aparecen a mano izquierda en el esquema y a la derecha en la foto, son todas de 10K (las he montado ahí por comodidad, ya que el otro extremo acaba en el cable verde. Esta imagen reúne tanto el circuito básico como las resistencias de protección de los pines 1, 2 y 3 y el propio sensor LDR. O sea, el circuito completo.
Si quieres añadir más LDRs, ya sabes. Quitas una resistencia de protección y lo añades. Cada resistencia se leería con un bloque PCF8591-NX, cada uno en un canal. Puedes añadir hasta 4. Y recuerda que aún tienes el cable blanco libre, por lo que podrías añadir otro LDR o potenciómetro entre cable blanco y negro. Se leería con el RAW del sensor de contacto.
En lugar de un LDR (o al lado), puedes añadir otros sensores de dos hilos, como un sensor de temperatura por ejemplo. Se hace de la misma forma. El cable que viene de la entrada analógica AIN 0 debe ponerse entre la resistencia de 10K y la LDR. Y las que no se usen, protegerlas como en la imagen con las resistencias de 10K y luego al verde del NXT.