Raspberry (20): Usar un display de un dígito y 7 segmentos.

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *