Guía para manejo de GPIO en raspberry pi con Python
José Guillermo Villamizar Castillo
Juan Camilo Sanchez Castro
Jhonattan Gerardo Sandoval Ramírez
Diana Milena Torres Rondón
ING. Luis Evelio Prado Pérez
Universidad de pamplona
Villa del Rosario
Norte De Santander
2019
Disposición de los GPIO en los diferentes modelos
Lo primero a saber es que existen dos esquemas de disposición de pines, uno
externo y uno interno, que debe tenerse en cuanta al momento de programar
Disposición externa de los GPIO
Disposicion interna
Ahora para programar, y elegir entre una opcion u otra, la instrucción en
phyton seria:
Donde:
gpio.setmode(gpio.BOARD) nos permite
trabajar la raspberry en modo externo
gpio.setmode(gpio.BCM) nos permite
trabajar la raspberry en modo interno o
numeracion del chip
Configurar un GPIO como entrada o salida digital
La instrucción “gpio.setup()” nos da la opcion de elegir si es entrada o salida
Donde:
“gpio.out” lo declara como salida
“gpio.in” lo declara como entrada.
Ademas los pines de entrada se les pueden activar resistencias pull-up o pull-
down que se encuentran disponibles en raspberry, la instrucción para activarla
es:
Esta opción nos permitira ahorrar espacio y tiempo al momento de hacer
pruebas con entradas
Manejo de salidas PWM
La modulación por ancho de pulsos o PWM (pulse-width modulation) de una señal es una técnica
en la que se modifica el ciclo de trabajo de una señal periódica para controlar la cantidad de
energía que se envía, o, dicho de otro modo, modificamos el tiempo de la señal para simular una
señal analógica.
Como base para mostrar la función del pwm usaremos el ejemplo típico de un led, y variaremos su
intensidad
Para el uso de pwm se hace necesario crear un objeto en el programa, que en este caso es llamado
“led”, al cual se le asignará el pin a usar y la frecuencia de trabajo, que para el caso es 100 Hz
La instrucción “led. start” inicia el objeto
La instrucción “led.ChangeDutyCycle()” será la encargada de modificar y asignar el porcentaje de
pwm a usar, el cual varia de 0-100.