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ás salidas digitales de las que nuestra placa de Arduino tiene y se nos presenta el problema de coger otra placa con más salidas o de alguna forma aumentar esas salidas digitales. En este capitulo vamos a ver una técnica para aumentar las salidas digitales en Arduino y también un chip que nos sirve para este propósito.

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és 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ón y en Arduino. Aprenderemos a programar con lenguajes visuales ya que la curva de aprendizaje es prácticamente plana y como nuestro lema es aprender con constancia pero divirtiéndose hemos preparado dos juegos (Tres en raya y Twister) para que disfrutes mientras aprendes. Y para los más valientes tendremos retos al final de cada modulo.

La segunda razón de celebración es que dentro de unas semanas cumplimos nuestro primer año publicando este podcast y queremos celebrarlo con todos vosotros. Nos gustaría que nos enviarais mensajes de vuestras impresiones sobre este primer año de programa. Mensajes que queráis compartir con nosotros y con el resto de los oyentes. Lo podéis hacer de dos formar en redes sociales con el hashtag #AniversarioPF o a través del email info@programarfacil.com. Podéis enviar mensajes de texto y también mensajes de audio. Si enviáis mensajes de Audio no olvidéis presentaros en el audio. Gracias a todos por estar con nosotros este año 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ño del circuito. También 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ás 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ísticas de las placas las tenéis disponibles en el segundo PDF que os enviamos a los que os que estáis suscritos a nuestra lista de distribución. Y si no estas suscrito, ya tienes una razón más para hacerlo y recibirás varios PDFs con mucha información sobre Arduino.

Técnica 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€ y suele estar en cualquier kit de iniciación de Arduino.

Estos chips se pueden poner en serie para seguir aumentando el número 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 ≅ 7 chips.

Estas tres salidas de Arduino irán a tres entradas del chip y cada una tendrá una función, una sera la señal 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ón nativa en Arduino. shiftOut que realiza una comunicación síncrona con el chip. En esta función le enviamos la señal 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ás sobre este chip y esta función, aquí tenéis 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én es mayor. Sale más barato comprar dos de los anteriores que uno de estos.

Hay otro chip que realiza la función "contraria", aumentar las entradas digitales que es el 74HC165 pero ya dedicaremos otro programa o articulo para contároslo.

Como ejemplo de uso el más típico es el de las luces del coche fantástico pero con 8 LEDs y con múltiples posibilidades como encender las luces de las posiciones pares o impares, solo las n primeras... lo que tu imaginación quiera.

El recurso del día

Instructables

Proyecto creado por personas pertenecientes al MIT Media Lab y parte de los fundadores del Squid Labs. En este sitio web encontrarás 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ón, que te puede ayudar y orientar a conseguir tus objetivos.

Muchas gracias a todos por los comentarios y valoraciones que nos hacéis en iVoox, iTunes y en Spreaker, nos dan mucho ánimo para seguir con este proyecto.