¿Cómo se hace parpadear un LED en la Raspberry Pi?
A diferencia del Arduino, en la Raspberry Pi no tienes acceso a los LED integrados. Sólo indican la alimentación y el acceso a la tarjeta µSD.
Para hacer que un LED parpadee, necesitas un LED externo con una resistencia en serie adecuada y cables de puente. La forma más sensata de montar el circuito es en una protoboard con un T-cobbler. Este tipo de disposición también facilita los experimentos posteriores con varios LED, botones y sensores. La programación se realiza en el lenguaje de programación Python.
El esquema del circuito (LED parpadeante en la Raspberry Pi)
¿Qué es un LED?
LED significa Diodo Emisor de Luz. La última palabra indica las propiedades electrónicas. Un diodo es un semiconductor que sólo deja pasar la corriente en un sentido y la bloquea en el otro. Las dos "patas" se llaman ánodo y cátodo. Si te fijas bien, verás que las patas tienen longitudes diferentes. La tensión positiva se aplica a la pata más larga, el ánodo; la pata más corta, el cátodo, está conectada a masa mediante una resistencia. La resistencia es necesaria debido a otra propiedad de los diodos. En primer lugar, se necesita una tensión mínima para que pueda fluir la corriente: Esto se denomina tensión directa. A tensiones más altas, el diodo se vuelve totalmente conductor. Por eso necesitas una resistencia en serie para limitar la corriente, porque los pines del microcontrolador y también de la Raspberry Pi deben cargarse con un máximo de 15 a 20 mA. Utilizamos resistencias en serie en el rango de 100 a 330 Ω (Ohm).
El lenguaje de programación Python puede ampliarse mediante módulos de programa, de forma similar a C/C++ con las bibliotecas. Para nuestro LED parpadeante, necesitamos dos de estos módulos: en primer lugar, "tiempo" para definir la duración del parpadeo. Y en segundo lugar, un módulo para acceder a los GPIOs (General Purpose Input/Output).
¿Cómo controlo un LED con una Raspberry Pi?
La importación de los módulos se hace al principio del programa Python; tienes varias opciones para hacerlo. Ejemplos:
La siguiente línea importa el módulo tiempo:
import tiempo
Cuando llames al método dormir , el nombre del módulo tiempo debe ir precedido de un punto:
time.sleep(1)
A diferencia de delay(), donde el intervalo de tiempo se da como argumento en milisegundos, con time. sleep() los valores se dan en segundos, si es necesario con un punto decimal.
importar RPi.GPIO como GPIO
Esto simplifica las llamadas a los métodos del programa, por ejemplo
GPIO.setmode(GPIO.BCM)
Tercer ejemplo para otro módulo de acceso GPIO:
from gpiozero import LED
Sólo se importa la clase LED del módulo gpiozero. Con este método de importación, ya no se antepone el nombre del módulo cuando se llama al método/función.
Programas de ejemplo para controlar un LED con un microcontrolador Raspberry Pi
Primer ejemplo con el módulo RPi.GPIO:
import RPi.GPIO as GPIO
importar tiempo
GPIO.setmode(GPIO.BCM)# Nombre del pin para el procesador Broadcomm
GPIO.setup(26,GPIO.OUT)# GPIO26 (=pin 37) se convierte en salida
while True:# Bucle sin fin, cancelar con Ctrl-C
GPIO.output(26,1) # GPIO 26 se pone en ALTO
time.sleep(1)
GPIO.salida(26,0) # GPIO26 pasa a BAJO
time.sleep(1)
Segundo ejemplo con el módulo gpiozero. Sólo se importan LED y sleep.
from gpiozero import LED
from tiempo import sueño
redLED = LED(26)# redLED se instancia en el GPIO 26
mientras sea True:
redLED.on() # redLED se enciende
dormir(1)
redLED.off() # redLED está apagado
dormir(1)
Reto: Ampliar el circuito y programarlo para un ciclo de semáforo, por ejemplo, rojo(3s), rojo/amarillo(1s), verde(3s), amarillo(1s), reiniciar con rojo.
Solución sugerida ver nº 02 El intermitente alterno