Controlar Led con GPIO Raspberry Pi en Python



Controlar un led mediante los pines GPIO de Raspberry Pi en el lenguaje de programación Python.

Actualmente Raspbian incluye una librería para python llamada GPIO que se encuentra en el namespace RPi, lo primero que tenemos que hacer es montar el led en nuestra Raspberry Pi de la misma forma que en el post "Controlar Led con GPIO Raspberry Pi en consola".

Raspberry Pi Zero conectado a un led

Se tiene que crear un archivo con extensión .py por ejemplo parpadeo.py, este tendrá el código de nuestra aplicación, abrirlo con tu editor de texto preferido, en las primeras lineas se importan las librerías a usar, en este caso importaremos la librería GPIO y la librería time que nos ayudara a controlar los tiempos de encendido y apagador de nuestro led.

import RPi.GPIO as GPIO
import time

Luego le diremos a nuestro GPIO el modo en que se trabajara con los pines sea BOARD o BCM, en este caso BCM, para saber las diferencias entre BOARD y BCM visita nuestro post Que es el modo BOARD y BCM en los pines de Raspberry Pi.

GPIO.setmode(GPIO.BCM)

Indicaremos que el GPIO 17 sera de salida (OUT).

GPIO.setup(17, GPIO.OUT)

Creamos una variable llamada "i" en valor "0" que sera nuestro contador de ciclos.

Después agregamos el ciclo "while" con la condición que "i" sea menor que 30, esto nos hará repetir 30 veces las instrucciones del ciclo.

Le diremos al GPIO 17 que se encienda enviando un "1" con la función "output", luego esperaremos "0.1" segundos y le diremos que se apague enviando un "0", esperando "0.1" segundos para sumar 1 a nuestro variable "i" y el ciclo comenzara de nuevo.

i =0
while (i < 30) :
   GPIO.output(17, 1)
   time.sleep(0.1)
   GPIO.output(17, 0)
   time.sleep(0.1)
   i = i + 1

Finalmente liberaremos los GPIO usados con la sentencia siguiente, esta es similar a "/sys/class/gpio/unexport" que usamos en el post Controlar Led con GPIO Raspberry Pi en consola.

GPIO.cleanup()

Con esto ya podemos comenzar a programar nuestro proyecto usando los pines GPIO con Python, les dejo el código completo.

import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(17, GPIO.OUT) i =0 while (i < 30) : GPIO.output(17, 1) time.sleep(0.1) GPIO.output(17, 0) time.sleep(0.1) i = i + 1 GPIO.cleanup()

Para ejecutar el código solo tienes que ingresar el siguiente comando.

pi@raspberrypi ~ $ python parpadeo.py

Si tienes alguna duda o sugerencia déjanos un comentario.