Motor Raspberry

Como se dijo anteriormente, no podemos extraer más de 15 mA de ningún pin GPIO y el motor de CC consume más de 15 mA, por lo que el PWM generado por la Raspberry Pi no se puede alimentar directamente al motor de CC. Entonces, si conectamos el motor directamente a PI para controlar la velocidad, la placa podría dañarse permanentemente. Así que vamos a utilizar un transistor NPN (2N2222) como dispositivo de conmutación. Este transistor aquí acciona el motor de CC de alta potencia al tomar la señal PWM de PI. Aquí se debe prestar atención a que la conexión incorrecta del transistor podría cargar la placa en gran medida.   El motor es una inducción y, por lo tanto, al cambiar el motor, experimentamos picos inductivos. Este pico calentará el transistor en gran medida, por lo que utilizaremos Diode (1N4007) para proporcionar protección al transistor contra el Spiking inductivo. Para reducir las fluctuaciones de voltaje, conectaremos un capacitor de 1000uF a través de la fuente de alimentación como se muestra en el Diagrama de circuitos.   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 vamos a utilizar en el programa PYHTON. Vamos a importar un archivo GPIO desde 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 cada vez que queremos referirnos a los pines GPIO usaremos la palabra "IO". import RPi.GPIO as IO   A veces, cuando los pines GPIO, que estamos tratando de usar, pueden estar haciendo 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(False)   Podemos referir los pines GPIO de PI, ya sea por número de pin a bordo o por su número de función. Como 'PIN 35' en el tablero es 'GPIO19'. Así que decimos que aquí vamos a representar el pin aquí por "35" o "19". IO.setmode(IO.BCM)   Estamos configurando GPIO19 (o PIN35) como pin de salida. Obtendremos la salida PWM de este pin. IO.setup(19, IO.IN)   Después de configurar el pin como salida, debemos 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 que puede ser cualquier cosa. Estamos utilizando GPIO19 como el canal de salida PWM. "Frecuencia de la señal PWM" se ha elegido 100, ya que no queremos que el LED parpadee.   El comando de abajo se usa para iniciar la generación de la señal PWM, 'DUTYCYCLE' es para configurar la relación de activación, 0 significa que el LED estará encendido durante 0% de 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 en las llaves sea verdadera, las declaraciones dentro del bucle se ejecutarán una vez. Entonces, si el pin GPIO 26 baja, entonces las declaraciones dentro del bucle IF se ejecutarán una vez. Si el pin GPIO 26 no baja, entonces las instrucciones dentro del bucle IF no se ejecutarán. if(IO.input(26) == False):   Mientras que 1: se usa para bucle infinito. Con este comando, las instrucciones dentro de este bucle se ejecutarán continuamente. 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 aumentar 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 logrado el control de velocidad del motor DC de Raspberry Pi. También verifique: Control de velocidad del motor DC Control de motor DC usando Arduino Código DC Motor Speed Control DC Motor Control using Arduino Code import RPi.GPIO as IO # calling header file which helps us use GPIO’s of PI import time # calling time to provide delays in program IO.setwarnings(False) #do not show any warnings x=0 #integer for storing the duty cycle value IO.setmode (IO.BCM) #we are programming the GPIO by BCM pin numbers. (PIN35 as‘GPIO19’) IO.setup(13,IO.OUT) # initialize GPIO13 as an output. IO.setup(19,IO.IN) # initialize GPIO19 as an input. IO.setup(26,IO.IN) # initialize GPIO26 as an input. p = IO.PWM(13,100) #GPIO13 as PWM output, with 100Hz frequency p.start(0) #generate PWM signal with 0% duty cycle while 1: #execute loop forever p.ChangeDutyCycle(x) #change duty cycle for changing the brightness of LED. if(IO.input(26) == False): #if button1 is pressed if(x<50): x=x+1 #increment x by one if x<50 time.sleep(0.2) #sleep for 200ms if(IO.input(19) == False): #if button2 is pressed if(x>0): x=x-1 #decrement x by one if x>0 time.sleep(0.2)

Comments

  1. import RPi.GPIO as IO

    import time

    IO.setwarnings(False)

    x=0

    IO.setmode (IO.BCM)

    IO.setup(13,IO.OUT)
    IO.setup(19,IO.IN)
    IO.setup(26,IO.IN)

    p = IO.PWM(13,100)
    p.start(0)

    while 1:
    p.ChangeDutyCycle(x)
    if(IO.input(26) == False):
    if(x<50):
    x=x+1
    time.sleep(0.2)
    if(IO.input(19) == False):
    if(x>0):
    x=x-1
    time.sleep(0.2)

    ReplyDelete

Post a Comment

Popular posts from this blog

Sesión 1: Llavero 3D

Sesión 2: Sensor de temperatura

Sesión 1: Introducción a Raspberry Pi