Ir al contenido principal

Controlar motores de CC con RaspBerry PI (2da Parte)

Usando el “Puente H” L298N

Puente "H" L298N

 Os presento al Driver dual para motores (Full-Bridge) – L298N. Este modulo basado en el chip L298N te permite controlar dos motores de CC o un motor paso a paso de hasta 2 amperios.
Voy a explicar e implementar este Driver, simplemente porque es el que poseo, os aseguro que este tuto sirve para cualquier Driver, solo debemos consultar la ficha técnica del mismo para conocer las correspondientes entradas de control.
Ahora toca conocer las entradas de control de este Driver, mirar la siguiente imagen: 
Pines Driver L298N

    Como podéis ver a izquierda y derecha tenemos las conexiones para los motores A y B, luego abajo a la izquierda tenemos la bornera de alimentación, junto al jumper regulador.
   Explico un poco esto, las bornes Vin y GND son las encargadas de alimentar a los motores y la parte lógica de la placa, cuando tenemos activo el jumper Regulador, podemos alimentar a la placa con una tensión de entre 6V y 12V DC, (tensión necesaria para los motores), de esta manera el regulador estará activo y alimentara la parte lógica del circuito, y el borne V lógico tendrá una salida de 5V y unos 500mA. Si no tenemos conectado el Jumper Regulador, podemos alimentar a la placa con tensiones de entre 12V y 35V DC, pero debemos alimentar el Borne V Lógico con 5V para alimentar a la placa.

Entradas de Control

       Las entradas de control son IN1 a IN4, ENA y ENB, como podemos ver mas claramente en la siguiente imagen: 
Pines de control
IN1 e IN2 Son las entradas de control de giro del motor A, e IN3 e IN4 Son las entradas lógicas de control de giro del motor B.

Si ambos pines In1 e In2 están a LOW a la vez, el motor se para.
Si In1 está a LOW e In2 está a HIGH, el motor gira en una dirección. 
Si In1 está a HIGH e In2 está a LOW, el motor gira en dirección contraria.

Los Pines de Control ENA y ENB estan para activar los motores, si tenemos los jumper conectados lo que hacemos es poner en HIGH (5V) los Pines ENA y ENB

Hasta aquí ya tenemos claro como manejar este Driver con nuestra Raspberry Pi, Arduino o cualquier micro-controlador, vamos a ver un script en Python para usarlo con nuestra Raspberry PI, a continuación os paso una captura de pantalla:

    El programa sola activa el motor A del Driver, conectamos los pines 11 y 13 de la RaspBerry PI (BCM 17 y 27 respectivamente) a los pines del L298N, IN1 e IN2 respectivamente, conectamos un motor de CC en la salida A y alimentamos la placa con 6v. 

Importante!! el pin GND del driver debe estar conectado a un pin GND de la Raspi (Pin 6).

   El programa lo que hará sera hacer girar hacia adelante durante 5 segundos luego girará en sentido contrario durante 5 segundos, luego parará durante 1 segundo y repetirá esta secuencia 5 veces.

    Bien ya podemos y sabemos controlar el arranque, parada y giro de un motor de CC, solo nos queda una sola cosita, controlar la velocidad. Para esto debemos valernos de PWM (Modulación por Ancho de Pulso), y esta es una de las carencia que tiene nuestra Raspi, pero tenemos una opción para poder suplir esta carenia, que es valernos de la la libreria PWM de python, que lo que hace es imitar PWM mediante software revisar el siguiente enlace: 


    Así que simplemente conectamos dos GPIO libres de la raspi,  a los  pines ENA y ENB del driver, y programamos una salida PWM a los pines correspondientes.

De esta manera ya podemos tener un control Total de un par de motores de CC para cualquier tipo de proyecto que querramos hacer.

Nos vemos en la próxima entrada, en la que hablaremos de los servomotores....

Comentarios

Entradas populares de este blog

Servo Driver PCA9685

PCA9685 Servo Driver 16 Canales Adafruit con Raspberry PI     Los servomotores se controlan utilizando las salidas PWM disponibles en la mayoría de las MCU incorporadas. Pero como lamentablemente nuestra Raspi no tiene soporte nativo para PWM... simplemente se nos complica un poco la cosa.  Afortunadamente nuestra Raspi tiene, HW I2C disponible, que podemos usar para comunicarnos con un PWM ¡como el Servo Driver PCA9685,   de 12 canales de Adafruit! (u otras marcas) De esta manera, podemos manejar fácilmente hasta 16 servomotores con nuestra Raspberry Pi utilizando la biblioteca Python de Adafruit y este tutorial. Comprobar si la RaspBerry Pi tiene configurado I2C  Si tiene la Raspberry Pi Original (vendida antes de octubre de 2012), el puerto I2C es 0: sudo i2cdetect -y 0 Si Ud tiene la la segunda revisión de RaspBerry Pi, el Puerto I2C es 1: sudo i2cdetect -y 1 Dependiendo de que tenga una versión u otra esto es lo que debería...

Servomotores con Raspberry Pi

Cómo funcionan los servomotores: Los servomotores son ampliamente utilizados en juguetes controlados por radio (automóviles, aviones, etc.), pero también en aplicaciones industriales donde se necesita una posición de rotación precisa (por ejemplo, en robótica). Una alternativa (y una solución a menudo mejor) para lograr el control de la dirección es el motor paso a paso, pero hoy hablaremos de los Servos Normalmente, un servomotor se construye a partir de un motor estándar de CC con un control interno de re-alimentación (un potenciómetro conectado a un engranaje reductor y algunos componentes electrónicos). Su uso principal es girar el eje del engranaje a una dirección predefinida. El motor tiene 3 terminales de entrada, GND, POWER y SIGNAL. Figura 1 El funcionamiento es el siguiente, aplicamos una señal modulada por ancho de pulso (PWM) a la entrada SIGNAL, y la dirección del eje se determina por la duración del pulso. Tenga en cuenta que la dirección no está de...

Controlar motores de CC con RaspBerry PI (1ra Parte)

Figura 1 Voy a intentar de explicar como controlar un motor de CC “digital-mente”, para poder usarlo con un micro-controlador, una placa Arduino u una RaspBerry Pi. Todo de la manera mas llana posible, para esto intentare asumir que el lector tiene unos conocimientos mínimos de electrónica, principalmente que sabe o tiene noción de como funciona un transistor. Vamos a ello, un Motor de CC, funciona de la siguiente manera, como podemos ver en la figura 1. Dependiendo de la polaridad que le apliquemos éste girara en un sentido o en otro, esto creo que no es ninguna novedad verdad?, si a este circuito añadimos un interruptor pues ya podemos controlar el arranque y la parada del mismo. Pero eso seria "analógico" y dependeríamos de un humano para arrancar y parar el motor. Veamos el siguiente circuito: Figura 2  Ahora si, de esta manera podremos controlar el arranque y la parada de forma digital, en en la entrada PIN, ponemos un 1 lógico el transi...