¡Esta es una revisión vieja del documento!
La modulación por ancho de pulso (PWM) permite modificar el valor de voltaje que podemos aplicar a un componente, por ejemplo un led, motor, etc. La variación de este voltaje se logra a través de la modificación del ancho de pulso de una señan cuadrada como aparece en la siguiente figura:
Para trabajar el PWM usaremos el pin (GPIO17) como se muestra en el siguiente esquema:
Para la programación en bloques usaremos los siguientes bloques disponibles en la interfaz del laboratorio remoto:
Bloque | Descripción |
---|---|
Permite configurar el pin seleccionado en modo PWM, por ejemplo, el GPIO17 con una frecuencia de 500 Hz. | |
Permite iniciar el pin configurado previamente en modo PWM, con un ciclo útil. En el caso del ejemplo se inicia el GPIO17 con un ciclo útil del 50%, es decir, 50% de la señal en '1', 5'% de la señal en '0'. | |
Permite cambiar el ciclo útil directamente en código deacuerdo, por ejemplo, al valor de una variable declarada. |
Con estos bloques la idea es crear nuestro primer algortimo para trabajar con GPIOs. Para ello construiremos el siguiente algoritmo gráfico. Los pasos de creación y de explicación del PWM se pueden visualizar en siguiente video.
Instrucción (Sentencia) | Descripción |
---|---|
import RPi.GPIO as GPIO | Permite importar el paquete RPi.GPIO en Python que accede a la configuración y activación de los GPIOs |
import time | Incorpora la librería o paquete time para retrasos en el código en segundos. |
GPIO.setmode(GPIO.BCM) | Configura los pines de la raspberry pi en modo BCM. En este modo el pin se va a llamar “GPIO17”, “GPIO22”, etc. Esta instrucción debe llamarse antes de configurar el GPIO deseado como entrada o salida. |
GPIO.setup(22,GPIO.OUT) | Permite configurar el GPIO en este caso el 22 como “salida”. Si quisieramos el pin como entrada se usaría GPIO.IN. |
pwm17=GPIO.PWM(17,500) | Configura el GPIO17 en modo PWM con una frecuencia de 500Hz. |
pwm17.start(50) | Inicia el modo pwm en el GPIO17 con un ciclo útil del 50%. En este caso el nombre “pwm17” debe estar en declarado en la configuración y en la inicialización del pin en el modo pwm deacuerdo a la sentencia anterior. |
time.sleep(2) | Crea un retraso en tiempo, en este caso de 2 segundos. |