Raspberry Pi 4

Display 7 segmentos con Raspberry Pi y GPIO

A través de este tutorial veremos cómo trabajar con el display de siete segmentos para dibujar un número, usando la Raspberry Pi y comandos gpio, sin ningún otro lenguaje.

Más adelante veremos cómo usar un lenguaje de programación, pero me gusta comenzar con las bases.

Display de 7 segmentos: ánodo y cátodo

Es importante recordar que hay 2 tipos de displays, unos son de ánodo común y otros son de cátodo común.

Si es de ánodo común, entonces debes escribir un 0 sobre la entrada que quieres encender. Y en caso de que sea de cátodo común debes escribir un 1 sobre la entrada.

Además, para ánodo común debes conectar el común a 5 volts, y para cátodo común debes conectar el común a tierra.

Para guiarme siempre me ha servido la siguiente imagen (que no es mía):

Puertos GPIO

Me voy a referir a cada puerto por su número GPIO, y no por su número consecutivo.  En la siguiente imagen puedes ver que el GPIO 25 es el puerto número 22; pues en los comandos me referiré al GPIO, en este caso sería el 25.

El circuito

Vamos a conectar un GPIO a cada letra del display. La relación queda así:

G=12
F=14
A=15
B=18
C=23
D=17
E=27

Mis displays son de cátodo común así que el común va conectado a GND. Si, en tu caso, son de ánodo común, entonces el común iría al 5 v.

No olvides que debes usar una resistencia  (de 220 o 47 ohm) por cada letra del display. Al final el circuito queda así:

Display 7 Segmentos Con Raspberry

¿Cómo encender cada letra del display?

Para encender y apagar vamos a usar comandos gpio, por ejemplo, para encender la letra A que está conectada al pin GPIO 15 primero lo ponemos en modo out:

gpio -g mode 15 out

Más tarde, le escribimos un 1 (esto en caso de que tu display sea de cátodo común) o un 0 si es de ánodo común, así:

gpio -g write 15 1

De nuevo lo digo, yo le escribo un 1 porque mi display es de cátodo común.

Así hay que hacer por cada letra que hay. Pero también podemos crear un script

Script para simplificar cosas

Podemos usar bash como lenguaje para trabajar con los display de 7 segmentos y la Raspberry Pi. En mi caso he escrito este script:

#    Programado por Luis Cabrera Benito
#  ____          _____               _ _           _
# |  _ \        |  __ \             (_) |         | |
# | |_) |_   _  | |__) |_ _ _ __ _____| |__  _   _| |_ ___
# |  _ <| | | | |  ___/ _` | '__|_  / | '_ \| | | | __/ _ \
# | |_) | |_| | | |  | (_| | |   / /| | |_) | |_| | ||  __/
# |____/ \__, | |_|   \__,_|_|  /___|_|_.__/ \__, |\__\___|
#         __/ |                               __/ |
#        |___/                               |___/
#
#
#    Blog:       https://parzibyte.me/blog
#    Ayuda:      https://parzibyte.me/blog/contrataciones-ayuda/
#    Contacto:   https://parzibyte.me/blog/contacto/
G=12
F=14
A=15
B=18
C=23
D=17
E=27
for NUMERO in $A $B $C $D $E $F $G; do
    echo "Colocando modo out a $NUMERO ... OK :)"
    gpio -g mode $NUMERO out
    gpio -g write $NUMERO 0
done

# Un ejemplo para dibujar el número 6, que sería:
# 1011111

for NUMERO in $A $C $D $E $F $G; do
    gpio -g write $NUMERO 1
done

echo "Terminado"

Comenzamos definiendo las letras y su respectivo valor en el GPIO. En el primer ciclo establecemos que ese número de pin será de salida, apagamos a todas (esto para “reiniciar”)

Después podemos encender solo algunas de ellas. En el ejemplo puedes ver cómo se dibuja el número 6 estableciendo en 1 el valor de A,C,D,E,F,G.

En el caso de B no se enciende porque para que el 6 se dibuje, el B debe estar apagado, y se apaga en el primer ciclo del código.

Nota: recuerda que yo uso un 1 porque es de cátodo común.

Display 7 segmentos con Raspberry

Si ejecutas el script que mencioné, o escribes cada comando por separado, se dibujará el número en el display. Yo ejecuté el script con bash leds.sh así:

Script bash para encender display de 7 segmentos con Raspberry y GPIO

Con el siguiente resultado:

Probando display 7 segmentos con GPIO y Raspberry Pi

Así puedes hacer cualquier número; comienza definiendo cuáles debes encender y apagar para dibujarlo. Además, también puedes dibujar letras o cualquier cosa que se te ocurra y sea posible para el display.

Ahora que menciono esto, recuerdo que hice un tutorial de leds con Arduino.

Te invito a leer más sobre Raspberry Pi en mi blog.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

3 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

4 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

3 semanas hace

Esta web usa cookies.