En este capítulo vamos a ver como conectar un “Display” numérico con un dígito y 7 segmentos. Esto nos permitirá mostrar números, del 0 al 9 para mostrar información de la Raspberry, como por ejemplo, un contador de cuenta atrás que nos avise de cualquier evento.











Contenido de los ficheros para que puedas “copiar/pegar“:
Fichero “contador2.py”:
#Fichero “contador2.py”:
# Importamos la librerias necesarias
import RPi.GPIO as GPIO
import time
# Inicializaciones
GPIO.setmode(GPIO.BCM)
# Segmentos del DISPLAY: sustituir aquí cada uno por los que use.
Seg1=16
Seg2=20
Seg4=21
Seg6=18
Seg7=23
Seg9=24
Seg10=25
# Asigno los segmentos a los GPIO:
GPIO.setup(Seg1, GPIO.OUT) # Segmento 1.
GPIO.setup(Seg2, GPIO.OUT) # Segmento 2.
GPIO.setup(Seg4, GPIO.OUT) # Segmento 4.
GPIO.setup(Seg6, GPIO.OUT) # Segmento 6.
GPIO.setup(Seg7, GPIO.OUT) # Segmento 7.
GPIO.setup(Seg9, GPIO.OUT) # Segmento 9.
GPIO.setup(Seg10, GPIO.OUT) # Segmento 10.
# Funciones del programa:
def Encender(): # ENCIENDE todos los segmentos.
GPIO.output(Seg1, False) # Segmento 1.
GPIO.output(Seg2, False) # Segmento 2.
GPIO.output(Seg4, False) # Segmento 4.
GPIO.output(Seg6, False) # Segmento 6.
GPIO.output(Seg7, False) # Segmento 7.
GPIO.output(Seg9, False) # Segmento 9.
GPIO.output(Seg10, False) # Segmento 10.
def Apagar(): # APAGA todos los segmentos.
GPIO.output(Seg1, True) # Segmento 1.
GPIO.output(Seg2, True) # Segmento 2.
GPIO.output(Seg4, True) # Segmento 4.
GPIO.output(Seg6, True) # Segmento 6.
GPIO.output(Seg7, True) # Segmento 7.
GPIO.output(Seg9, True) # Segmento 9.
GPIO.output(Seg10, True) # Segmento 10.
def Numero(num): # Pone el número que se le envía
if num == 0:
GPIO.output(Seg1, False) # Segmento 1.
GPIO.output(Seg2, False) # Segmento 2.
GPIO.output(Seg4, False) # Segmento 4.
GPIO.output(Seg6, False) # Segmento 6.
GPIO.output(Seg7, False) # Segmento 7.
GPIO.output(Seg9, False) # Segmento 9.
GPIO.output(Seg10, True) # Segmento 10.
elif num == 1:
GPIO.output(Seg1, True) # Segmento 1.
GPIO.output(Seg2, True) # Segmento 2.
GPIO.output(Seg4, False) # Segmento 4.
GPIO.output(Seg6, False) # Segmento 6.
GPIO.output(Seg7, True) # Segmento 7.
GPIO.output(Seg9, True) # Segmento 9.
GPIO.output(Seg10, True) # Segmento 10.
elif num == 2:
GPIO.output(Seg1, False) # Segmento 1.
GPIO.output(Seg2, False) # Segmento 2.
GPIO.output(Seg4, True) # Segmento 4.
GPIO.output(Seg6, False) # Segmento 6.
GPIO.output(Seg7, False) # Segmento 7.
GPIO.output(Seg9, True) # Segmento 9.
GPIO.output(Seg10, False) # Segmento 10.
elif num == 3:
GPIO.output(Seg1, True) # Segmento 1.
GPIO.output(Seg2, False) # Segmento 2.
GPIO.output(Seg4, False) # Segmento 4.
GPIO.output(Seg6, False) # Segmento 6.
GPIO.output(Seg7, False) # Segmento 7.
GPIO.output(Seg9, True) # Segmento 9.
GPIO.output(Seg10, False) # Segmento 10.
elif num == 4:
GPIO.output(Seg1, True) # Segmento 1.
GPIO.output(Seg2, True) # Segmento 2.
GPIO.output(Seg4, False ) # Segmento 4.
GPIO.output(Seg6, False) # Segmento 6.
GPIO.output(Seg7, True) # Segmento 7.
GPIO.output(Seg9, False) # Segmento 9.
GPIO.output(Seg10, False) # Segmento 10.
elif num == 5:
GPIO.output(Seg1, True) # Segmento 1.
GPIO.output(Seg2, False) # Segmento 2.
GPIO.output(Seg4, False) # Segmento 4.
GPIO.output(Seg6, True) # Segmento 6.
GPIO.output(Seg7, False) # Segmento 7.
GPIO.output(Seg9, False) # Segmento 9.
GPIO.output(Seg10, False) # Segmento 10.
elif num == 6:
GPIO.output(Seg1, False) # Segmento 1.
GPIO.output(Seg2, False) # Segmento 2.
GPIO.output(Seg4, False) # Segmento 4.
GPIO.output(Seg6, True) # Segmento 6.
GPIO.output(Seg7, False) # Segmento 7.
GPIO.output(Seg9, False) # Segmento 9.
GPIO.output(Seg10, False) # Segmento 10.
elif num == 7:
GPIO.output(Seg1, True) # Segmento 1.
GPIO.output(Seg2, True) # Segmento 2.
GPIO.output(Seg4, False) # Segmento 4.
GPIO.output(Seg6, False) # Segmento 6.
GPIO.output(Seg7, False) # Segmento 7.
GPIO.output(Seg9, True) # Segmento 9.
GPIO.output(Seg10, True) # Segmento 10.
elif num == 8:
GPIO.output(Seg1, False) # Segmento 1.
GPIO.output(Seg2, False) # Segmento 2.
GPIO.output(Seg4, False) # Segmento 4.
GPIO.output(Seg6, False) # Segmento 6.
GPIO.output(Seg7, False) # Segmento 7.
GPIO.output(Seg9, False) # Segmento 9.
GPIO.output(Seg10, False) # Segmento 10.
elif num == 9:
GPIO.output(Seg1, True) # Segmento 1.
GPIO.output(Seg2, False) # Segmento 2.
GPIO.output(Seg4, False) # Segmento 4.
GPIO.output(Seg6, False) # Segmento 6.
GPIO.output(Seg7, False) # Segmento 7.
GPIO.output(Seg9, False) # Segmento 9.
GPIO.output(Seg10, False) # Segmento 10.
else:
Apagar()
####################################################
### Código principal de la página:
####################################################
try:
while True:
for x in range(10):
Numero(x)
time.sleep(1)
# Atrapa la pulsación de teclado: CTRL+C para acabar
except KeyboardInterrupt:
print('Apago todo para terminar')
Apagar()
GPIO.cleanup()
| Capítulo Anterior | Capítulo Siguiente |
