69. Aumentar salidas digitales en Arduino

Published: Feb. 29, 2016, 6:15 a.m.

Cuando realizamos proyectos de Arduino se nos puede dar el caso que necesitamos m\xe1s salidas digitales de las que nuestra placa de Arduino tiene y se nos presenta el problema de coger otra placa con m\xe1s salidas o de alguna forma aumentar esas salidas digitales. En este capitulo vamos a ver una t\xe9cnica para aumentar las salidas digitales en Arduino y tambi\xe9n un chip que nos sirve para este prop\xf3sito.

Pero antes de continuar tenemos dos razones que celebrar en programarfacil, la primera es que ya tenemos nuestro primer curso disponible para todos vosotros, "Aprende a programar con Arduino". Entra en nuestro campus y echa un vistazo, si tienes alguna duda puedes utilizar los canales que siempre tenemos habilitados para ti , a trav\xe9s del formulario de contacto, en el e-mail info@programarfacil.com, en Twitter (@programarfacilc) o en Facebook. Este curso esta orientado para gente que se quiera iniciar en la programaci\xf3n y en Arduino. Aprenderemos a programar con lenguajes visuales ya que la curva de aprendizaje es pr\xe1cticamente plana y como nuestro lema es aprender con constancia pero divirti\xe9ndose hemos preparado dos juegos (Tres en raya y Twister) para que disfrutes mientras aprendes. Y para los m\xe1s valientes tendremos retos al final de cada modulo.

La segunda raz\xf3n de celebraci\xf3n es que dentro de unas semanas cumplimos nuestro primer a\xf1o publicando este podcast y queremos celebrarlo con todos vosotros. Nos gustar\xeda que nos enviarais mensajes de vuestras impresiones sobre este primer a\xf1o de programa. Mensajes que quer\xe1is compartir con nosotros y con el resto de los oyentes. Lo pod\xe9is hacer de dos formar en redes sociales con el hashtag #AniversarioPF o a trav\xe9s del email info@programarfacil.com. Pod\xe9is enviar mensajes de texto y tambi\xe9n mensajes de audio. Si envi\xe1is mensajes de Audio no olvid\xe9is presentaros en el audio. Gracias a todos por estar con nosotros este a\xf1o y dentro de unas semanas lo celebraremos.

Y ya vamos a por lo que le dedicamos este programa, a aumentar las salidas digitales de Arduino. En muchas ocasiones tenemos pines de sobra pero hay que optimizar ya que siempre es bueno dejar pines para el futuro y no tener que replantearse el dise\xf1o del circuito. Tambi\xe9n hay ocasiones que no tenemos pines suficientes para nuestro proyecto, por ejemplo en el Arduino UNO tenemos 14 salidas digitales y en el Arduino MEGA tenemos 54. Por este motivo no es necesario tener que comprar una Arduino MEGA que es mucho m\xe1s potente que la Arduino UNO, el motivo tiene que ser de mayor peso. Otra cosa a tener en cuenta es el consumo en nuestros circuitos pero para esto tenemos pensado dedicarle un programa.

Todas las caracter\xedsticas de las placas las ten\xe9is disponibles en el segundo PDF que os enviamos a los que os que est\xe1is suscritos a nuestra lista de distribuci\xf3n. Y si no estas suscrito, ya tienes una raz\xf3n m\xe1s para hacerlo y recibir\xe1s varios PDFs con mucha informaci\xf3n sobre Arduino.

T\xe9cnica Charlieplexing

Shift Register o registros de desplazamiento

Con estos chips vamos a poder aumentar a partir de 3 salidas digitales en 8 salidas digitales y no solo vamos a poder controlar LEDs sino cualquier elemento que queramos conectar a una salida digital. En particular os hablamos del chip 74HC595 cuyo valor es inferior a 1\u20ac y suele estar en cualquier kit de iniciaci\xf3n de Arduino.

Estos chips se pueden poner en serie para seguir aumentando el n\xfamero de salidas digitales y siempre a partir de 3 salidas digitales de nuestra placa de Arduino. Por ejemplo, si queremos en una placa Arduino UNO con 14 salidas digitales tener las 54 salidas que tenemos en la placa de Arduino MEGA necesitaremos 54 / 8 = 6,75 \u2245 7 chips.

Estas tres salidas de Arduino ir\xe1n a tres entradas del chip y cada una tendr\xe1 una funci\xf3n, una sera la se\xf1al de reloj, otra sera los datos que queremos enviar y la tercera la utilizamos como disparador, para pasar los datos a las 8 salidas del chip.

Para facilitar el uso de este tipos de chips tenemos una funci\xf3n nativa en Arduino. shiftOut que realiza una comunicaci\xf3n s\xedncrona con el chip. En esta funci\xf3n le enviamos la se\xf1al de reloj y los datos que al final son las salidas que queremos que entes activas o no (HIGH o LOW) en las salidas del chip.

Para el que quiera profundizar un poco m\xe1s sobre este chip y esta funci\xf3n, aqu\xed ten\xe9is un articulo donde lo explica con detalle.

Existen otros chips que hacen funciones parecidas. Tenemos el 74F675A que muy parecido al anterior pero nos saca 16 salidas digitales. Aunque la diferencia de precio tambi\xe9n es mayor. Sale m\xe1s barato comprar dos de los anteriores que uno de estos.

Hay otro chip que realiza la funci\xf3n "contraria", aumentar las entradas digitales que es el 74HC165 pero ya dedicaremos otro programa o articulo para cont\xe1roslo.

Como ejemplo de uso el m\xe1s t\xedpico es el de las luces del coche fant\xe1stico pero con 8 LEDs y con m\xfaltiples posibilidades como encender las luces de las posiciones pares o impares, solo las n primeras... lo que tu imaginaci\xf3n quiera.

El recurso del d\xeda

Instructables

Proyecto creado por personas pertenecientes al MIT Media Lab y parte de los fundadores del Squid Labs. En este sitio web encontrar\xe1s miles de proyectos orientados al mundo Maker y al DIY (Doit Yourself). La gente puede compartir libremente sus proyectos y su trabajo creando una comunidad de grandes personas y oportunidades. Probablemente, una fuente de inspiraci\xf3n, que te puede ayudar y orientar a conseguir tus objetivos.

Muchas gracias a todos por los comentarios y valoraciones que nos hac\xe9is en iVoox, iTunes y en Spreaker, nos dan mucho \xe1nimo para seguir con este proyecto.