DIRECCIONES

64 I/O o 32 ANALOGICAS

c1525 (82K) c1525 (82K)

down-rojo-flecha

Veremos aquí cómo conectar tanto el PCF8574 como el PCF8591 para lograr 64 I/O (entradas o salidas) en el primer caso o 32 sensores analógicos en el segundo. Aprovecharemos para clarificar la (liosa) nomenclatura a veces de las direccines. Para ello, me permitirás un símil un poco tonto, pero que espero que nos ayude a entenderlo.


LOS NOMBRES


La imágen que quería usar para entender el tema de las direcciones es la de un colegio. Tiene 8 aulas. Y en cada clase hay 8 escolares. No contamos al profesorado para no liar. En total habrá en el cole 64 personas. Y todas juntas bajan al patio al menos una vez al día.


¿Cómo se pueden organizar actividades en el patio para realizar tareas cuando queramos y con la persona que queramos?. Una forma posible es llamar a cualquiera citando primero la clase a la que va y luego su nombre: de la clase 5ºA, que venga Ana. Esta sería una opción. Y pueden haber varios colegios.


Vamos a traducirlo a nuestro caso. Tenemos 2 colegios. Uno se llama PCF8574. El otro PCF8591. Entre ellos no tienen nada que ver. Cada colegio tiene su propia forma de nombrar las aulas y su número máximo de personas por clase.


EL PRIMER COLEGIO: PCF8574


Este colegio nombra las aulas por números. A la primera clase le llama 64. A la segunda le llama 66. Así, de 2 en 2 hasta 78, que es la última clase. Este colegio tiene una peculiaridad: en cada clase hay exactamente los mismos 8 nombres y además se sientan exactamente igual en clase.


Es decir, hay una "Ana" en la clase 64, otra en la 66, etc y siempre se sienta en la primera silla. También hay un "Pedro" en cada aula,que se sienta el segundo, detrás de Ana. Así que habrá que numerarlos para cuando estén en el patio, ya que en el cole hay 8 "Anas", 8 "Pedros", etc. y es un lío.


Para numerar, van a clase y se sientan en fila. Ana, Pedro, etc. Todas las Ana del cole se las llamará 254. A todos los Pedro, 253, etc. Y así podremos llamar a cualquiera: 64-254 será Ana de la primera clase (aunque más bien parece el nombre de una reclusa). 70-253será Pedro de la 4ª clase.


Por si no lo habías visto aún, cada alumna o alumno es un LED. Cada silla es un pin . Cada aula es un circuito. Así podremos crear nuestro cole con hasta 8 circuitos (cosa que no he probado). Otra cosa. Para decirle algo a alguien (encender un LED), usa "WRITE".


Para escuchar lo que dice alguien, usa READ (ver el estado pulsado o no de un interruptor). Aunque sólo oirás ceros y unos.


pcf-valores-pines

Hemos escrito también en binario los números que estamos manejando, separados por un guión para que se lea mejor. Para obtener ese número, recuerda que puedes usar la calculadora del escritorio de tu PC, seleccionar Ver/Científica, escribir 254 y darle a continuación a "Bin".


En la columna Bin (binario), puedes ver a Ana sentada en primera posición. Es el 0 a la derecha de todo. Pedro se sienta el segundo de la fila. Puedes ver el 0 en esa posición.


Si quisieras llamar a los dos, tendrás que poner un 0 en las dos posiciones: 1111-1100. Con la calculadora puedes ver que ese número es el 252.


Los pasillos del cole PCF8574: conexiones.


Ya sabemos cómo llamar a cualquier alumn@ del colegio. Vamos a ver ahora la arquitectura. Cómo está construido. Dicho de otra forma, las conexiones de los circuitos. Recordemos cómo es el PCF8574.


PCF8574 (45K)

Los pines 1, 2 y 3 son los que cuentan para todo esto que estamos explicando. Si te fijas en cualquiera de los circuitos que hemos construido, A0, A1 y A2 están conectados directamente al cable negro del NXT. Cuando un circuito lo conectas así, estás llamándole "Aula 64". Y un LED que esté conectado en el pin 4, en P0, se encenderá escribiendo 64-254.


write-i2c-64-254

circuito-pcf-un-led

Si ahora conectases el primer pin, A0 con el cable verde del NXT, el aula cambiará de nombre y ahora será "Aula 66". Los otros 2 se mantienen conectados directamente al negro. En esta aula para encender ses LED deberás escribir ahora 66-254.


write-i2c-64-254

circuito-pcf-un-led-66

Si conectases los 3 pines (A0, A1 y A2) directamente al cable verde, la dirección sería 78. Resumiendo, sería esto.


pcf-direcciones

Estas direcciones son válidas tanto si el montaje consta de 1 circuito integrado como si conectas 4 seguidos. La forma de conectar varios circuitos juntos simplemente es hacerles compartir ls resistencias de 82K y conectar las A (pines 1, 2 y 3) tal como hemos explicado.


dos-pcf-basico (774K)

Debería quedar como en la siguiente foto. Cuidado, que a veces la imagen engaña y hay cables que parece que estén conectados a otro sitio. El mejor lugar para verlo es en el esquema.


c1610 (75K)

EL SEGUNDO COLEGIO: PCF8591


Este colegio tiene algunas diferencias y parecidos con el primero. En este colegio también hay 8 aulas, pero solo puede asistir 4 personas. Así que será algo más fácil nombrarlos. O sea, podríamos conectar hasta 8 circuitos de este tipo, pero en cada uno solo podemos conectar 4 entradas analógicas. Es decir, con este no podemos encender LEDs.


La forma de conectar los pines a los cables verde o negro es exactamente la misma que acabamos de ver, pero los nombres que recibe (las direcciones) son otras. Además, ya sabes que para leer este circuito (no se puede escribir nada) hay que usar el icono PCF8591 que ya vimos en software.


L@s 4 alumn@s de las 8 aulas también se llaman igual. En cada clase hay un AIN 0, AIN 1, AIN 2 y AIN 3, de forma que en el patio hay 8 que se llaman AIN 0, 8 AIN1, etc... Y la forma de nombrarlos la tienes en el panel de control: channel 0...


Recordemos el CI:


pcfan

Si lo conectamos como hasta ahora, tendremos A0, A1 y A2 conectados al cable negro del NXT y el nombre del aula (la dirección) será 90.


pcfan-circuito-basico

Si ahora añadimos un LDR en el pin 1 (AIN 0) y lo queremos llamar para ver su valor, seleccionaremos el canal 0 (como nos recuerda el panel). Sería así:


icono-PCF8591

pcfan-config

pcfan-circuito-un-ldr

Por cierto, que en este circuito se nombran las direcciones en hexadecimal y no en binario como el otro. No haré bromas fáciles con el sistema educativo. O sea, que la dirección x90 (en hexadecimal se escribe así) son 144 en decimal, tal como puedes comprobar con tu calculadora. Así que con la configuración que hemos puesto en las imágenes de arriba, leerás esa entrada analógica.


Y si ahora conectamos A0 al cable verde del NXT sin tocar nada de lo demás, para leer el mismo LDR tendremos que poner en el Address 92 (que es 146 en decimal). Pero la mecánica es la misma que en el caso del otro circuito.


Habrán así 8 formas distintas de conectar los pines A0, A1 y A2 a los cables (negro y verde) del NXT, lo que permite enlazar 8 circuitos con 4 sensores analógicos cada uno, 32 en total.


pcfan-direcciones

COMBINANDO EL PCF8574 Y EL PCF8591


La siguiente pregunta lógica es si es posible combinar un circuito y el otro. Y la respuesta es que si. Desconozco cuántos se pueden conectar entre sí. He hecho la prueba con uno de cada, conectando un el al primero y un LDR al segundo, y funcionan perfectamente ambos.


Así que todo este follón que sigue para montar un LDR y un LED, pero bueno podrías añadir muchas cosas. Y sobre todo, expone cómo conectar casi tantos como necesite tu robot. No creo que te los acabes.


PCF74-91

Para encender el LED y leer simultaneamente la LDR bastaría con este programa:


nxt-74-91

Para seguir añadiendo circuitos y por tanto conexiones adicionales, solo hay que cambiar las direcciones de los cables A0, A1 y A2 (en rojo) tal como hemos explicado y seguir ampliando. Para ello no olvides (entre otras cosas):


1. Compartir las resistencias de 82K

2. No olvides conectar a tierra los pines 12 y 13 del PCF8591.

3. No dejes sin proteger las entradas analógicas AIN0, 1, 2 y 3 que no uses. Conecta las resistencias de 10K correspondientes y al cable verde del NXT.


Y por cierto, no desesperes si no funciona a la primera. Repasa las conexiones. O incluso vuelve a empezar. Muchas veces hay conexiones que no hacen buen contacto, etc. Y antes de deshacer el circuito si no te funciona, desconecta el cable del puerto 1 del NXT y vuelve a probar. A veces el circuito se queda "memorizando" lo último que hizo (como dejar un LED encendido) y no va.


Es una especie de "reset" que a veces funciona.


up-rojo-flecha
PCF8591: 4 entradas analógicas
Display digital de 7 segmentos
.