Conectar Motor Control Shield L293D Arduino

Echemos un vistazo a una extensión muy útil para la placa Arduino Uno, el Motor Control Shield L293D. Veamos el diagrama de conexión de servomotores, motores paso a paso y motores de corriente continua al shield de motores. También puedes leer los comandos utilizados en la librería AFMotor.h y probar diferentes programas para controlar motores paso a paso, servomotores y motores DC desde el microcontrolador Arduino Uno.

Para esta actividad necesitaremos:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • shield de motores L293D
  • motor de corriente continua
  • servomotor
  • motor paso a paso
  • libreria AFMotor.h

Motor Control Shield L293D datasheet, pinout

Motor Control Shield L293D pinout, datasheet
Motor Control Shield L293D pinout, datasheet

Características Motor Shield L293D:

  • Alimentación: 4,5 – 24 V
  • Compatible: Arduino Uno, Mega, Due
  • Corriente DC por canal: 600mA
  • Corriente pico por canal: 1.2A
  • LED Power y pulsador Reset
  • Hasta 4 motores sencillos de corriente directa con control de velocidad
  • Hasta 2 motores a pasos (unipolares o bipolares)
  • Dos conectores independientes para controlar 2 servos pequeños de 5V

Cuando se conectan servomotores y motores al Arduino a través del L293D, se utilizan diferentes puertos a los que no se pueden conectar otros periféricos. Por ejemplo, los puertos digitales 9 y 10 se utilizan para servos, y los puertos 3 a 8 y 12 se utilizan para motores paso a paso y motores. Si quieres conectar algo más, utiliza los puertos 0 y 1, 2 y 13 y las entradas analógicas (A0-A5 se pueden utilizar como salidas digitales).

Conectar shield de motores L293D Arduino

Conectar Motor Control Shield L293D Arduino
Conectar Motor Control Shield L293D Arduino

El Motor Shield es sencillo de conectar – se monta encima de la placa Uno (Mega). Tenga en cuenta que sin una fuente de alimentación externa conectada al Motor Shield, la lógica y los motores funcionarán con 5 voltios, que no siempre es suficiente. Por lo tanto, la velocidad de los motores de corriente continua será significativamente diferente cuando la placa Arduino esté conectada desde un ordenador o fuente de alimentación.

Programa Arduino para control del motor desde L293D

#include "AFMotor.h"
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);

void setup() {
  motor1.setSpeed(255);
  motor1.run(RELEASE);
  motor2.setSpeed(255);
  motor2.run(RELEASE);
}

void loop() {
  motor1.run(FORWARD);
  motor2.run(FORWARD);
  motor1.setSpeed(255);
  motor2.setSpeed(255);

  delay(2000);

  motor1.run(RELEASE);
  motor2.run(RELEASE);

  motor1.run(BACKWARD);
  motor2.run(BACKWARD);
  motor1.setSpeed(255);
  motor2.setSpeed(255);

  delay(2000);

  motor1.run(RELEASE);
  motor2.run(RELEASE);
}

Explicación del código para control del motor desde L293D:

  1. para cada motor debe asignarse un nombre diferente a AF_DCMotor motor1(1);
  2. la velocidad máxima de rotación de motor1.setSpeed(255); es 255.

La librería estándar Servo.h se utiliza para controlar los servos, los propios servos están conectados a las salidas digitales 9 y 10 a través de pines en el borde de la placa. Sólo se pueden conectar dos servos y dos motores paso a paso al l239d. El primer motor paso a paso se conecta a los terminales M1 y M2 y el segundo a los terminales M3 y M4. En el diagrama anterior se muestra un esquema de la conexión del servo al módulo L293D.

Control del servo desde shield de motores L293D
Control del servo desde shield de motores L293D

Programa Arduino para control del servo desde L293D

#include "Servo.h"
Servo servo;

void setup() {
   servo.attach(9);
}

void loop() {
   servo.write(0);
   delay(1000);

   servo.write(90);
   delay(1000);

   servo.write(180);
   delay(1000);
}

Explicación del código para control del servo desde L293D:

  1. el comando servo.attach(9); enlaza el servo a la salida digital 9 del Arduino;
  2. en la función void loop() giramos el servomotor de 0-90-180 grados.
Control del motor paso a paso desde shield L293D
Control del motor paso a paso desde shield L293D

Compatible con las placas Uno y Mega, el shield se coloca directamente sobre la placa Arduino. Los motores paso a paso se conectan a las regletas M1 a M4. Para accionar los motores paso a paso usaremos la clase AF_Stepper cuyas funciones a conocer son: motor.setSpeed(speed) para fijar la velocidad y motor.step(number of steps, direction, algorithm) para girar un número de pasos en una dirección u otra.

Programa Arduino control del motor paso a paso desde L293D

#include "AFMotor.h"
AF_Stepper stepper(48, 1);

void setup() {
 
}

void loop() {
  for (byte i = 0; i <= 48; i++) {
    stepper.step(1, FORWARD, DOUBLE);
    delay(30);
  }
  
  for (byte i = 48; i >= 0; i--) {
    stepper.step(1, BACKWARD, DOUBLE);
    delay(30);
  }
}

Explicación del código control del motor paso a paso desde L293D:

  1. el motor paso a paso es hoy en día el accionamiento ideal en impresoras 3D, máquinas CNC y otros equipos industriales.

Conclusión. El microcontrolador Arduino hace posible que cualquier aficionado principiante pueda construir complejos dispositivos y proyectos de automatización. El uso del Motor Control Shield L293D puede ser un complemento útil para muchos proyectos Arduino, ya que permite conectar 2 servoaccionamientos, 2 motores paso a paso y hasta 4 motores de corriente continua (con inversión del sentido del rotor) a la vez.


2 Replies to “Conectar L293D Arduino Motor Shield, datasheet”

Deja una respuesta

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