Crea, comparte, aprende y disfruta
Hola Mundo: Controlar un Led con Raspberry Pi
Nuestras primeras aventuras cuando nos adentramos con un nuevo lenguaje de programación siempre suelen comenzar un programa al que por costumbre se le da el nombre de «hola mundo» y que hace precisamente, mostrar un mensaje que de alguna forma nos da la bienvenida a ese mundo que acabamos de descubrir. En electrónica, por lo general, es primer mensaje lo producimos haciendo parpadear un Led y eso es precisamente lo que vamos a hacer hoy con Raspberry Pi: Controlar un Led.
Los GPIO de Raspberry son pines que podemos configurar para usarlos bien como entradas de información (a las que podemos conectar todo tipo de sensores: Temperatura, humedad, presión, botones… etc) como salidas a las que podemos conectar actuadores (leds, como en nuestro caso, relés, servomotores… etc), vamos a aprender a controlar estos GPIO para poder manejarlos a nuestro antojo. Lo primero que haremos será montar el circuito con el Led:
A continuación llega el momento de la programación, vamos a realizar un sencillo programa en Python para hacer parpadear el led. Podemos abrir nuestro editor de texto o nuestro entorno de desarrollo favorito y comenzamos a escribir:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(26, GPIO.OUT) ## Configuramos el GPIO26 como salida def parpadeo(): print "Ejecucion iniciada..." repeticiones = 0 while repeticiones < 30: ## veces que haremos parpadear el led GPIO.output(26, False) ## Apagamos el GPIO26 time.sleep(1) ## Esperamos 1 segundo GPIO.output(26, True) ## Enciendemos el GPIO26 time.sleep(1) ## Esperamos 1 segundo repeticiones = repeticiones + 1 ## Incremento la variable de control del bucle print "Programa terminado" GPIO.cleanup() ## Limpiamos los GPIO parpadeo() ## Llamamos a la función para que se ejecute |
Ahora ejecutamos nuestro programa, al que hemos llamado parpadea.py entrando en consola y ejecutando el siguiente comando dentro de la carpeta donde tengamos guardado nuestro programa:
sudo python parpadeo.py
Controlando la intensidad
Podemos hacer ir un paso más allá y controlar la intensidad con la que el LED brilla, para ello emplearemos lo que se conoce como PWM ( si quieres conocer más afondo el PWM puede consultar nuestro tutorial). El circuito que emplearemos será el mismo, únicamente necesitamos modificar nuestro programa para usar el PWM, quedaría de la siguiente forma:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import RPi.GPIO as GPIO # Cargamos la libreria RPi.GPIO from time import sleep # cargamos la función sleep del módulo time GPIO.setmode(GPIO.BCM) # Ponemos la Raspberry en modo BCM GPIO.setup(26, GPIO.OUT) # Declaramos el pin 26 del GPIO como una salida miLed = GPIO.PWM(26, 100) # Creamos el objeto 'miLed' en el pin 26 a 100 Hz miLed.start(0) # Inicializamos 'miLed' a 0 (apagado) # Ahora iremos cambiando los valores de mi led pause_time = 0.02 # Definimos un tiempo de espera para que nos de tiempo a ver el efecto. try: # creamos un bucle que solo acabara cuando se produzca un KeyboardInterrupt while True: # Iniciamos el bucle for i in range(0,101): # De 0 a 101 (en el 101 termian la progresion) miLed.ChangeDutyCycle(i) # Asignamos al led el valor de las vueltas de bucle que llevamos sleep(pause_time) # Pausa para ver el efecto #Si ya tenemos el led al 100% es el momento de comenzar el apagado progresivo for i in range(100,-1,-1): # Vamos bajando de 100 (completamente encendido) a 0 (apagado) miLed.ChangeDutyCycle(i) # Asignamos al led el valor de las vueltas de bucle que llevamos. sleep(pause_time) # Pausa para ver el efecto. except KeyboardInterrupt: # Si el usuario pulsa ctrl + C el bucle se rompe. miLed.stop() # Detenemos el objeto 'miLed' GPIO.cleanup() # Limpiamos los pines GPIO y salimos |
Ya tenemos funcionando nuestro programa Hola Mundo y hemos conseguido hacer parpadear un led e incluso controlar su intensidad. Puede parecer poca cosa pero si somos capaces de hacer parpadear un led significa que hemos aprendido como encender y apagar los GPIO de Raspberry, a partir de aquí con un poco de tiempo y paciencia seremos capaces de todo.
Deja una respuesta