Raspberry Pi es una placa basada en procesador de arquitectura ARM diseñada para ingenieros electrónicos y aficionados. PI es una de las plataformas de desarrollo de proyectos más confiables que existen en la actualidad. Con una velocidad de procesador más alta y 1 GB de RAM, el PI se puede utilizar para muchos proyectos de alto perfil como procesamiento de imágenes e Internet de las cosas.
Para realizar cualquiera de los proyectos de alto perfil, es necesario comprender las funciones básicas de PI. Cubriremos todas las funcionalidades básicas de Raspberry Pi en estos tutoriales. En cada tutorial discutiremos una de las funciones de PI. Al final de la serie de tutoriales, podrá realizar proyectos de alto perfil por sí mismo. Marque estos para comenzar con la configuración de Raspberry Pi y Raspberry Pi.
Hemos discutido LED Blinky, Button Interfacing y la generación PWM en tutoriales anteriores. En este tutorial controlaremos la velocidad de un motor de CC utilizando la técnica Raspberry Pi y PWM. PWM (Modulación de ancho de pulso) es un método utilizado para obtener voltaje variable de una fuente de energía constante. Hemos hablado de PWM en el tutorial anterior.
Hay 40 pines de salida GPIO en Raspberry Pi 2. Pero de 40, solo se pueden programar 26 pines GPIO (GPIO2 a GPIO27). Algunos de estos pines realizan algunas funciones especiales. Con GPIO especial reservado, nos quedan 17 GPIO. Para saber más sobre los pines GPIO, consulte: LED parpadeando con Raspberry Pi
Cada uno de estos 17 pines GPIO puede entregar un máximo de 15 mA. Y la suma de las corrientes de todos los pines GPIO no puede exceder los 50 mA. Entonces, podemos extraer un máximo de 3 mA en promedio de cada uno de estos pines GPIO. Por lo tanto, uno no debe alterar estas cosas a menos que sepa lo que está haciendo.
Hay pines de salida de potencia de + 5V (Pin 2 y 4) y + 3.3V (Pin 1 y 17) en la placa para conectar otros módulos y sensores. Esta línea de alimentación está conectada en paralelo a la potencia del procesador. Por lo tanto, la extracción de alta corriente de esta línea de alimentación afecta al procesador. Hay un fusible en la placa PI que se disparará una vez que aplique una carga alta. Puede extraer 100 mA de forma segura del riel de + 3,3 V. Estamos hablando de esto aquí porque; estamos conectando el motor DC a + 3.3V. Con el límite de potencia en mente, solo podemos conectar un motor de baja potencia aquí, si desea manejar un motor de alta potencia, considere alimentarlo desde una fuente de energía separada.
Componentes requeridos:
Aquí estamos usando Raspberry Pi 2 Model B con Raspbian Jessie OS. Todos los requisitos básicos de hardware y software se discutieron previamente, puede buscarlos en la Introducción de Raspberry Pi, aparte de lo que necesitamos:
- Pines de conexión
- Resistencia de 220Ω o 1KΩ (3)
- Pequeño motor DC
- Botones (2)
- Transistor 2N2222
- Diodo 1N4007
- Condensador - 1000uF
- Tabla de pan
Explicación del circuito:
Como se dijo anteriormente, no podemos extraer más de 15 mA de los pines GPIO y el motor de CC consume más de 15 mA, por lo que el PWM generado por Raspberry Pi no se puede alimentar directamente al motor de CC. Entonces, si conectamos el motor directamente a PI para el control de velocidad, la placa podría dañarse permanentemente.
Entonces vamos a utilizar un transistor NPN (2N2222) como dispositivo de conmutación. Este transistor acciona el motor de CC de alta potencia tomando la señal PWM de PI. Aquí se debe prestar atención a que una conexión incorrecta del transistor podría cargar mucho la placa.
El motor es una inducción y, por lo tanto, al encenderlo, experimentamos picos inductivos. Este pico calentará mucho el transistor, por lo que usaremos el diodo (1N4007) para proporcionar protección al transistor contra el pico inductivo.
Para reducir las fluctuaciones de voltaje, conectaremos un capacitor de 1000 uF a través de la fuente de alimentación como se muestra en el diagrama del circuito.
Explicación de trabajo:
Una vez que todo está conectado según el diagrama del circuito, podemos encender el PI para escribir el programa en PYHTON.
Hablaremos de algunos comandos que usaremos en el programa PYHTON.
Vamos a importar el archivo GPIO de la biblioteca, la siguiente función nos permite programar los pines GPIO de PI. También estamos cambiando el nombre de “GPIO” a “IO”, por lo que en el programa siempre que queramos referirnos a los pines GPIO usaremos la palabra 'IO'.
importar RPi.GPIO como IO
A veces, cuando los pines GPIO, que estamos tratando de usar, pueden estar realizando otras funciones. En ese caso, recibiremos advertencias mientras ejecutamos el programa. El siguiente comando le dice al PI que ignore las advertencias y continúe con el programa.
IO.setwarnings (falso)
Podemos referir los pines GPIO de PI, ya sea por el número de pin a bordo o por su número de función. Como 'PIN 35' en la placa es 'GPIO19'. Entonces decimos aquí o vamos a representar el pin aquí por '35' o '19'.
IO.setmode (IO.BCM)
Estamos configurando GPIO19 (o PIN35) como pin de salida. Obtendremos salida PWM de este pin.
Configuración IO (19, IO.IN)
Después de configurar el pin como salida, necesitamos configurar el pin como pin de salida PWM, p = IO.PWM (canal de salida, frecuencia de la señal PWM)
El comando anterior es para configurar el canal y también para configurar la frecuencia de la señal PWM. 'p' aquí es una variable, puede ser cualquier cosa. Estamos usando GPIO19 como canal de salida PWM. La ' frecuencia de la señal PWM ' se ha elegido 100, ya que no queremos que el LED parpadee.
El siguiente comando se usa para iniciar la generación de señales PWM, ' DUTYCYCLE ' es para configurar la relación de encendido, 0 significa que el LED estará ENCENDIDO durante el 0% del tiempo, 30 significa que el LED estará ENCENDIDO durante el 30% del tiempo y 100 significa completamente ENCENDIDO.
p.start (DUTYCYCLE)
En caso de que la condición entre llaves sea verdadera, las declaraciones dentro del ciclo se ejecutarán una vez. Entonces, si el pin 26 de GPIO baja, las declaraciones dentro del bucle IF se ejecutarán una vez. Si el pin 26 de GPIO no baja, las declaraciones dentro del bucle IF no se ejecutarán.
si (IO.input (26) == Falso):
Mientras que 1: se usa para bucle infinito. Con este comando, las declaraciones dentro de este bucle se ejecutarán de forma continua.
Tenemos todos los comandos necesarios para lograr el control de velocidad con esto.
Después de escribir el programa y ejecutarlo, todo lo que queda es operar el control. Tenemos dos botones conectados a PI; uno para incrementar el ciclo de trabajo de la señal PWM y otro para disminuir el ciclo de trabajo de la señal PWM. Al presionar un botón, la velocidad del motor de CC aumenta y al presionar el otro botón, la velocidad del motor de CC disminuye. Con esto hemos conseguido el DC Motor Speed Control de Raspberry Pi.
Verifique también:
- Control de velocidad del motor de CC
- Control de motor DC usando Arduino