La parte principal del circuito es un multiplexor/demultiplexor 16:1 de la serie 4067, el que uso es un HCF 4067 BE, hay otros modelos, como el que usan en este interesante proyecto del que he fusilado la idea, o entre los foros de Arduino, básicamente todos se comportan igual, y nos permiten usar sin problemas los pines analógicos para nuestros propósitos. El que he usado es bastante ancho (600 mil), y un conector DIP normal no llegaba, por lo que usé unas tiras de pines redondos.
La idea es que conectando los cuatro pines de control del multiplexor (4 bit), podemos decirle de qué pin va a darnos la lectura, y usando un pin analógico conectado a la salida común del multiplexor leamos los datos que hayamos seleccionado. También se puede usar en modo de escritura. Para saber que pin vamos a usar debemos mirar la tabla de verdad del IC, luego pasamos el número a binario y averiguamos qué bit corresponde a cada pin. El 7 es 0111, luego el pin A debe ser 1 a, el B 1, el C1 y el D 0 (van al revés).
Para conectar los aparatos que vayamos a usar (yo he puesto distintos tipos de sensores, y en cuanto haga un "paperteclado" analógico lo probaré) se pueden poner los conectores que vayamos a usar, como no tengo preferencias en esto, me he basado en la cantidad disponible de tiras de pines que tenía y los he puesto en proporción.
Para soldar los pines, he soldado primero los redondos, luego los hembra cuadrados y por ultimo los pines macho. Estos dos últimos los sujetaba entre sí con pines contrarios para que no se separaran al soldar y luego no se pudieran encajar bien los conectores de los sensores.

(Los colores de la foto responden a que la impresora está en las últimas y ya no me sale tinta cyan, el amarillo ya se atascó hace tiempo y no he podido limpiar el cabezal.)
Conviene a su vez lijar bastante ajustados los bordes de las tiras de pines hembra cuadradas, pues pueden tropezar con los redondos y después encajar mal al soldar.
He hecho dos "shields", uno espejo del otro, para que se puedan ir apilando sin estrorbar a los sensores, quizá fuea buena idea encontrar un modo sencillo de pasar tornillos de sujección entre los "shields". También, en los esquemas adjuntos he puesto un esquema del shield con alimentación externa, que no he probado por falta de material y que garantizo aún menos que el resto.




Hardware necesario.
- Un multiplexor 4067 por cada 16 señales analógicas que queramos añadir.
- Perfboard 26x16 agujeros. Puede ser 25x15, pero me gusta andar un poquito holgado.
- Tiras de pines redondos, 3 de 4 pines, 1x13 y 1x12.
- Tiras de pines hembra 4x4, 1x6, 1x8 y 1x14.
- Tiras de pines macho, 3x8.
- Cables de colores, estaño un soldador (mirada de rayos láser en su defecto), papel, cinta de dos caras, celo, si queremos alimentar el multiplexor externamente, una clema o borna, y liquidos hidratantes para nosotros.
Software necesario.
Entorno Arduino o similar, lector o editor de .SVG, PDF, PNG o Postcript para imprimir la paperetiqueta y se puede usar el sketch que adjunto más abajo como ejemplo para leer los pines. También este es un buen ejemplo.
Para leer los datos se puede usar el puerto serie, y pasarlos a fichero si se necesitan, usar matrices donde almacenarlos, teniendo en cuenta que la memoria del ATMega es bastante limitada, o también pasarlos por el LCD, como he hecho yo, usando el Papershield LCD.

El sketch usa tres bucles, cada uno incluído dentro del anterior. El primero es para decidir qué pin se usa, es mejor alternarlos ya que si no el pin analógico del ATMega puede no refrescarse bien, el segundo decide que pin del multiplexor leemos, y en el tercero hacemos un ciclo de relecturas para mostrar por pantalla y que se pueda ver. Los tiempos se pueden alterar, pero es siempre recomendable dejar un lapso entre la lectura de un shield y el otro para que el pin se estabilice. En la pantalla se refleja el número de pin del sensor, el número de pin analógico que recibe la lectura y la tabla de verdad de los pines de control del multiplexor, con el bit más significativo a la izquierda. En la segunda línea aparece el valor que da el dispositivo conectado a ese pin, entre 0 y 1023 en pasos de 0,47V, y si no tiene nada puede dar un valor cualquiera por diversas inducciones, o hasta por acercar las manos al circuito.
Para el montaje, como siempre, os remito a la página de Txapuzas, que explica muy bien el "método paper".
Este es el archivo donde se encuentran los gráficos imprimibles, y el sketch a usar.
Datasheet e info del IC HCF 4067.
Proyecto donde usan el 4067 para leer 64 sensores y moldear una escultura virtual.
Usando el LCD mas el multiplexor me quedo sin pines digitales libres, cosa que intentaré solucionar en la próxima entrega usando un 595, y más tarde quizá me anime a multiplexar los PWM. Pero antes debo también hacerme un "shield" de interconexión para el Arduino, por si el ATMega16 se me va quedando sin memoria con tanta cosa que le voy metiendo.
Revisión 1
La guía aquí presentada es a modo informativo, manejar y modificar aparatos electrónicos conlleva riesgos que aquel que repita los pasos aquí mostrados debe asumir por sí mismo, no siendo el autor ni el publicante del documento responsables de los accidentes o daños materiales o personales ocasionados por la perpetración de las modificaciones descritas.
Powered by Zoundry Raven
No hay comentarios:
Publicar un comentario