¿Cómo hacer que dos LED de la Raspberry Pi parpadeen alternativamente?
También puedes conectar los componentes electrónicos en la protoboard sin un T-cobbler. En este caso, sin embargo, necesitas un cable puente del tipo hembra - macho para la conexión a la regleta de conectores J6 de la Raspberry Pi, es decir, enchufe para la Raspberry Pi y clavija para la protoboard.
El código del programa (LED parpadeando alternativamente en la Raspberry Pi)
# Desde aquí se puede copiar el código directamente en el software Python.
# Negro, coloreado = código y gris = explicaciones
# Empezamos importando los módulos del programa
import RPI.GPIO as GPIO
importar tiempo
GPIO.setmode(GPIO.BCM) #Ajustamos el modo a BCM
GPIO.setup(23,GPIO.OUT) #El pin 23 es una salida.
GPIO.setup(24,GPIO.OUT) #El pin 24 es una salida .
# El bucle comienza aquí
prueba:
while True: #Bucle while para que el programa se ejecute continuamente
GPIO.output(23,GPIO.HIGH) # Enciende el LED en el pin 23.
GPIO.output(24,GPIO.LOW) # Apaga el LED de la patilla24.
time.sleep(1) # Espera 1 segundo
GPIO.output(23,GPIO.LOW) # Apaga elLED de la patilla 23.
GPIO.output(24,GPIO.HIGH) # Enciende elLED en el pin 24.
time.sleep(1)
# Aquí al final el programa salta al inicio de la parte del bucle. Entonces..
# ...enciende el LED en la patilla 23.
# ... etc... etc... etc..
except InterrupciónTeclado: # Con CTRL+C interrumpimos el programa
print ("Finalizado") # Escribe "Finalizado" en la ventana del intérprete de comandos
GPIO.cleanup() # Finaliza el programa
En el ejemplo nº 01 LED parpadeante habíamos realizado el bucle infinito con while True y la sangría de las siguientes líneas de código. Si has cancelado este bucle infinito con la combinación de teclas Ctrl-C, te habrás dado cuenta de que, en primer lugar, recibes un mensaje de error y, en segundo lugar, el LED puede seguir encendiéndose. Para evitar estos dos efectos indeseables, se han añadido algunas líneas de código a este ejemplo. La línea try: se inserta antes del bucle while true. Los dos puntos llevan a la sangría de todo el bucle. Si se produce un error en este bucle mientras se ejecuta el programa, no aparece ningún mensaje de error, sino que el programa continúa en except KeyboardInterrupt:. Con el comando print, se imprime el final del programa en el shell de Python (ventana inferior en Thonny), con GPIO.cleanup(), se apagan los GPIOs (es decir, nuestros LEDs) y se liberan para otros fines.
Ejemplo: Ciclo de semáforos en la Raspberry Pi
Aquí tienes una propuesta de solución para un ciclo de semáforos utilizando el módulo gpiozero: