Trastejant

Crea, comparte, aprende y disfruta

Hola Mundo: Controlar un Led con Raspberry Pi

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:

Control de un 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.


También te puede interesar...

No hay temas relacionados

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.