Está en la página 1de 5

Shields que incorporan displays “7-segmentos”

Un display de 7 segmentos no es otra cosa que 7 LEDs conectados


entre sí de manera que encendiendo algunos de ellos y apagando otros
podemos mostrar la forma de diferentes números. Tal vez su uso pueda
parecer redundante al lado de una LCD, pero si en nuestro proyecto
solamente deseamos mostrar números o se necesita una visibilidad
realmente grande, los 7-segmentos son la mejor opción. Además,
consumen mucha menos corriente que un LCD con luz de fondo.

Podríamos utilizar 7-segmentos individuales (como por ejemplo el


producto nº 8546 de Sparkfun), o incluso conjuntos de 4 7-segmentos
(como por ejemplo el producto nº 9480), pero ciertamente, el cableado
necesario para ponerlos en marcha (y los sketches resultantes) son algo
engorrosos, ya que por cada 7-segmentos debemos controlar 7 LEDs
individualmente. Pero no solo eso: de hecho, si observamos la cantidad
de pines que tiene un 7- segmentos, veremos que suelen tener diez,
ubicados en dos filas de cinco: siete de estos pines sirven para iluminar
cada segmento, pero hay otro más para iluminar el punto decimal y hay
otros dos pines más (generalmente, los situados en el centro de cada
fila y numerados con la posiciones 3 y 8), que se han de conectar
ambos a tierra (si el 7-segmentos es de tipo “cátodo común”) o bien
ambos a 5 V (si el 7-segmentos es de tipo “ánodo común”). Resumiendo:
es necesario utilizar más de 8 pines-hembra de nuestra placa Arduino
para manejar un solo 7-segmentos. Por tanto (aunque existen otras
soluciones), lo más cómodo para nosotros será utilizar shields que ya
tengan incorporado un conjunto de 4 dígitos 7-segmentos y que
permitan un uso mucho más eficiente (y una programación más fácil)
de nuestra placa Arduino.

Por ejemplo, NootropicDesign ofrece su “Digit Shield” listo para acoplar


a nuestra placa Arduino, la cual solo monopoliza cuatro pines de
entrada/salida digital (los nº 2,3,4 y 5). Este shield puede ser
programado por una librería descargable de su propia web muy sencilla
y flexible, la cual contiene diferentes funciones (del tipo
mipantalla.setValue() o mipantalla.setDigit(), entre otras) para mostrar
los valores numéricos de varias maneras.

Otro shield similar es el “7-segment shield” de Gravitech, que además


de 4 dígitos de 7-segmentos también incorpora “de regalo” un sensor
de temperatura, un LED multicolor y una memoria EEPROM extra de
128 KBytes. Todo ello monopoliza 4 pines de la placa Arduino.
Desgraciadamente, para programarla en nuestro sketch Arduino,
debemos utilizar directamente la librería “Wire” oficial de Arduino, ya
que no hay ninguna librería que nos oculte la complejidad de la
comunicación I2 C requerida. De todas formas, nos ofrecen un código
de ejemplo para que veamos cómo se ha de hacer.

También podemos encontrar útil la placa LEDuino de Cal-Eng, que no


es un shield sino una placa propiamente dicha, capaz de sustituir a la
placa Arduino oficial. Incorpora el chip ATmega328P funcionando con el
bootloader de Arduino y es programable a través de FTDI mediante el
entorno de desarrollo oficial de Arduino, pero tiene la particularidad de
incorporar 4 dígitos 7-segmentos de forma totalmente integrada.

Importante: Si no queremos usar ningún shield o placa con los 7-


segmentos integrados, podemos usar módulos con 4 dígitos de 7-
segmentos de una forma relativamente cómoda. Por ejemplo, Gravitech
distribuye su “I2 C 4 digit 7-segment display”, con cuatro pines
acoplables en una breadboard, que tal como su nombre indica, se
comunica mediante I2 C con la placa Arduino y se ha de programar
igualmente con la librería oficial “Wire” (se proporciona código de
ejemplo).

Otro módulo interesante de 4 dígitos es el “7-segment serial display”


(producto nº 9764 de Sparkfun), el cual incorpora un chip ATmega168
que puede comunicarse con el receptor/transmisor TTL-UART de la
placa Arduino. Para ello, se ha de conectar el pin del módulo etiquetado
como “RX” al pin TX de la placa, además de conectarlo a tierra y a
alimentación (de entre 2,6 V y 5,5 V). Si se desea, podemos hacer que el
módulo utilice el protocolo SPI en vez del canal serie para comunicarse:
en ese caso debemos conectar sus pines etiquetados como “MOSI”,
“SCK” y “CSN” a los pines “MOSI”, “SCK” y “SS” de la placa Arduino
(además de conectarlo a tierra y la alimentación). Sea cual sea el
método de comunicación, este módulo es controlado mediante
comandos hexadecimales enviados vía Serial.write() y los números a
mostrar son especificados mediante una línea Serial.print() por cada
segmento individual uno tras otro, de izquierda a derecha.
Si usamos el módulo anterior y necesitamos transformar un número de
varias cifras en dígitos individuales para poderlos manipular mejor (por
ejemplo, para mostrar un valor obtenido de un sensor, o el número de
pulsaciones realizadas sobre un botón, o una simple cuenta atrás que
finalice en 0), una buena idea es convertir ese número en un objeto
String, para así utilizar funciones como micadena.length() (para saber de
cuántas cifras es ese número) y sobre todo micadena.charAt() (para
seleccionar un dígito individual concreto de entre los cuatro posibles, y
entonces imprimirlo con Serial.print()). Se deja como ejercicio.

Otro módulo de 4 dígitos 7-segmentos es el “TWI 7-seg Display” de


Akafugu. Tal como su nombre indica, ha de ser controlado mediante el
protocolo I2 C, por lo que solo necesita cuatro cables para conectarse a
una placa Arduino: alimentación (puede ser tanto 3,3 V como 5 V), tierra,
línea SDA y línea SCL. Para trabajar con él se ha de utilizar la librería
descargable de https://github.com/akafugu/twidisplay . Esta misma
librería es la que también se necesita para poder utilizar otro producto
de Akafugu, el “TWIDisplay 8-digit LCD”, el cual es una pantalla de 8
dígitos 14-segmentos (controlable también vía I2 C mediante los
mismos 4 cables: alimentación -3,3 V o 5 V-, tierra, SDA y SCL). Los 14-
segmentos son capaces de formar todas las figuras del alfabeto, tanto
en minúsculas como en mayúsculas.

Otro módulo de 4 dígitos 7-segmentos es el producto nº 878 de


Adafruit (y otros similares con diferentes colores). También se comunica
con la placa Arduino mediante I2 C, por lo que tiene 4 pines: el
etiquetado como “CLK” se ha de conectar al pin SCL de la placa (el pin
de entrada analógico nº 5) y el etiquetado como “DAT” al pin SDA de la
placa (el pin de entrada analógico nº 4). Además, está el pin de tierra y
el de alimentación (a 5 V). Para trabajar con él cómodamente nos
podemos descargar de https://github.com/adafruit/Adafruit-LED-
Backpack-Library la librería “Adafruit LED Backpack” e instalarla de la
forma habitual (aunque recordemos que esta librería necesita tener
instalada también la librería “Adafruit GFX”).

También podría gustarte