Domina el Driver L293D para control de Motor: Velocidad y Giro

Driver L293D para control de motor DC

La electrónica y la robótica están en constante evolución, y el uso de componentes como el L293D para controlar motores es fundamental en muchos proyectos. En este artículo, exploraremos cómo usar el L293D como driver de motor en un proyecto de puente H, proporcionando un ejemplo práctico que puedes implementar con tu Arduino.

¿Qué es el L293D?

El L293D es un driver de motor que permite controlar la dirección y la velocidad de un motor de corriente continua (DC) o un motor paso a paso. Este componente es ideal para proyectos donde se requiere controlar motores de manera eficiente y sencilla. Además, su capacidad para manejar dos motores simultáneamente lo hace muy versátil.

Componentes Necesarios

Para este proyecto, necesitarás los siguientes componentes:

  • Arduino UNO
  • Driver L293D
  • Motor de corriente continua
  • Potenciómetro
  • Botón
  • Resistencias (si es necesario)
  • Cables de conexión
  • Protoboard
  • Fuente de alimentación adecuada para el motor

Esquema de Conexiones

A continuación, se presenta un esquema básico de conexiones utilizando el Driver L293D:

  1. Conecta los pines de salida del Driver L293D al motor.
  2. Conecta el pin de habilitación (Enable) al pin PWM del Arduino.
  3. Conecta los pines de dirección a los pines digitales del Arduino.
  4. Conecta el potenciómetro a un pin analógico del Arduino.
  5. Conecta el botón a un pin digital del Arduino.
PINOUT driver L293D

Resumen de Conexiones del Proyecto

A continuación se detallan las conexiones entre los pines del Arduino UNO, el Driver L293D, el potenciómetro, el botón y el motor:

  1. Pin 13 (Arduino) → Botón de dirección. Se conecta a un pin digital del Arduino para controlar la dirección del motor.
  2. Pin A0 (Arduino) → Potenciómetro. Se conecta a un pin analógico para leer la posición del potenciómetro.
  3. Pin 3 (Arduino, PWM)Pin 1 (Enable 1,2 del L293D). Controla la velocidad del motor a través de PWM.
  4. Pin 4 (Arduino)Pin 2 (Input 1 del L293D). Controla la dirección del motor (Motor A) junto con el pin 7.
  5. Pin 7 (Arduino)Pin 7 (Input 2 del L293D). Junto con el pin 4 del Arduino, controla la dirección del motor.
  6. Motor APin 3 (Output 1 del L293D) y Pin 6 (Output 2 del L293D). Estos pines envían corriente al motor para girar en la dirección deseada.
  7. Pin 8 (Vcc2 del L293D) → Fuente de alimentación externa (entre 4.5V y 36V, según el motor).
  8. Pin 16 (Vcc1 del L293D) → Pin 5V del Arduino. Alimentación lógica para el L293D.
  9. Pin GND (Arduino)Pin 4 y 5 (GND del L293D). Conecta a tierra para cerrar el circuito.
  10. Pin GND (Arduino) → Tierra del potenciómetro y del botón. Ambos deben conectarse a la misma referencia de tierra que el Arduino.

Diagrama de Conexiones

L293D como Driver de Motor

Código para Controlar el Motor

A continuación, se presenta un ejemplo de código que utiliza el Driver L293D para controlar un motor basado en la posición de un potenciómetro y la dirección de un botón:

#define BTN_DIR 13 // Pin para el botón de dirección
#define POT 0 // Pin para el potenciómetro
#define EN1 3 // Pin para la velocidad del motor (PWM)
#define M1A 4 // Pin para la dirección del motor A
#define M1B 7 // Pin para la dirección del motor B

int pos, veloc, oldpos = -1;

void setup() {
pinMode(M1A, OUTPUT); // Configurar pin M1A como salida
pinMode(M1B, OUTPUT); // Configurar pin M1B como salida
pinMode(BTN_DIR, INPUT); // Configurar pin BTN_DIR como entrada
}

void loop() {
pos = analogRead(POT); // Leer valor del potenciómetro
if (pos != oldpos) {
veloc = map(pos, 0, 1023, 0, 255); // Mapear valor del potenciómetro a rango de velocidad PWM (0-255)
analogWrite(EN1, veloc); // Ajustar la velocidad del motor con PWM
oldpos = pos; // Actualizar la posición anterior
}
if (digitalRead(BTN_DIR) == LOW) { // Leer estado del botón de dirección
digitalWrite(M1A, HIGH); // Configurar motor para girar en una dirección
digitalWrite(M1B, LOW);
} else {
digitalWrite(M1A, LOW); // Configurar motor para girar en la dirección opuesta
digitalWrite(M1B, HIGH);
}
delay(200); // Pequeña pausa para evitar lecturas erráticas
}

Explicación del Código

Este código se usa para controlar la velocidad y la dirección de un motor de corriente continua (DC) utilizando un potenciómetro y un botón. Se aprovecha el driver L293D para manejar el motor con señales de control desde un Arduino.

delay(200): Esta pequeña pausa de 200 milisegundos evita que el Arduino lea el botón o el potenciómetro de manera muy rápida, lo que podría causar errores en el control del motor.

Definición de Pines:

#define BTN_DIR 13: Este define el pin 13 del Arduino como el que se conectará al botón que controlará la dirección del motor.

#define POT 0: El pin A0 se conecta al potenciómetro, un dispositivo que cambia su resistencia dependiendo de cómo lo gires, lo que permite controlar la velocidad del motor.

#define EN1 3: El pin 3 del Arduino, que es un pin PWM (modulación por ancho de pulso), se conecta al pin de habilitación del Driver L293D para controlar la velocidad del motor.

#define M1A 4 y #define M1B 7: Estos pines del Arduino (4 y 7) controlan las entradas del Driver L293D para cambiar la dirección del motor.

Función setup():

Esta parte del código configura los pines del Arduino para que funcionen correctamente. Los pines del motor (M1A y M1B) se configuran como salidas para controlar el motor, y el pin del botón (BTN_DIR) se configura como entrada para leer el estado del botón.

Función loop():

Lectura del potenciómetro: Se usa analogRead(POT) para leer la posición del potenciómetro. Esto devuelve un valor entre 0 y 1023. Luego, ese valor se convierte en un rango entre 0 y 255 con la función map(), que es lo que necesita el pin PWM para controlar la velocidad del motor.

Ajustar la velocidad: El valor ajustado del potenciómetro se envía al pin 3 con analogWrite(EN1, veloc), que ajusta la velocidad del motor.

Cambiar la dirección: La dirección del motor se controla leyendo el botón (digitalRead(BTN_DIR)). Si el botón está presionado, el motor gira en una dirección. Si no está presionado, el motor gira en la dirección opuesta. Esto se hace configurando los pines M1A y M1B para enviar corriente en la dirección adecuada.

Simulación en Tinkercad

El circuito y el código para usar el Driver L293D como driver de motor en un proyecto de puente H ya están listos para ser analizados en Tinkercad. Solo necesitas seguir estos pasos:

Simula el funcionamiento: Simplemente haz clic en «Simular» para poner en marcha el circuito. Gira el potenciómetro para ajustar la velocidad del motor y presiona el botón para cambiar la dirección del giro.

Explora el circuito: Observa el esquema de conexiones y los componentes utilizados. Puedes ver cómo están conectados el potenciómetro, el botón y el driver L293D.

Analiza el código: Revisa el código que controla el motor. Está diseñado para ajustar la velocidad con el potenciómetro y cambiar la dirección con el botón.

Si no puedes ver la simulación da click aquí.

Conclusión

Usar el Driver L293D para control de Motor: Velocidad y Giro es una excelente manera de aprender sobre control de motores en electrónica y robótica. Este tipo de proyectos no solo te ayuda a entender mejor cómo funcionan los drivers de motor, sino que también te brinda la oportunidad de aplicar tus conocimientos en situaciones prácticas.

Al implementar este proyecto, asegúrate de experimentar con diferentes configuraciones de potenciómetro y botones para ver cómo afectan el rendimiento del motor. ¡Diviértete creando y aprendiendo!

Si has probado este proyecto, ¡comparte tu experiencia en los comentarios! ¿Tienes alguna pregunta sobre el uso del Driver L293D? No dudes en preguntar.

Si requieres material para tus proyectos, visita nuestra tienda de electrónica Proveedora Cano.

Ligas externas:

Ficha técnica L293D datasheet

Related Posts

¿Qué Son las Compuertas Lógicas? La Base de la Electrónica Digital

Aprende los distintos tipos de compuertas lógicas y domina la innovación en cada circuito. Con técnicas avanzadas impulsa tu creatividad y optimiza soluciones en electrónica digital.

🔌 Aprende a Medir Corriente con el Sensor ZMCT103C y Arduino 💡

Aprende a medir corriente alterna con precisión usando el sensor ZMCT103C y Arduino. Guía completa con materiales, código y ventajas del sensor

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You Missed

¿Qué Son las Compuertas Lógicas? La Base de la Electrónica Digital

¿Qué Son las Compuertas Lógicas? La Base de la Electrónica Digital

¡Controla Arduino desde tu PC con HTML y JavaScript! 🚀

¡Controla Arduino desde tu PC con HTML y JavaScript! 🚀

Transforma Tu Proyecto con el Sensor de Voltaje 0-25V para Arduino 🚀🔋

Transforma Tu Proyecto con el Sensor de Voltaje 0-25V para Arduino 🚀🔋

Guía Definitiva: Aprende a Usar un Termopar Tipo K con Módulo MAX6675

Guía Definitiva: Aprende a Usar un Termopar Tipo K con Módulo MAX6675

🛠️ Todo sobre Resistencias: Tipos, Usos y Cómo Leerlas Eficazmente ⚡

🛠️ Todo sobre Resistencias: Tipos, Usos y Cómo Leerlas Eficazmente ⚡

¡Domina el Divisor de Tensión! ⚡️ Aprende a Calcularlo Fácilmente

¡Domina el Divisor de Tensión! ⚡️ Aprende a Calcularlo Fácilmente