Motores con Arduino y puente H L293D

Clase 33 de 38Curso Fundamentos de Desarrollo de Hardware con Arduino

Resumen

Aprende a controlar motores DC con Arduino de forma segura y eficiente. Aquí verás cómo evitar dañar tu placa, cómo cablear un puente H L293D/L298 y cómo programar PWM para regular la velocidad. Todo con pasos claros, buenas prácticas y fragmentos de código listos para adaptar.

¿Por qué no conectar motores directo al Arduino?

Conectar un motor a 5 V y GND del Arduino parece fácil, pero es una mala idea. Los pines no entregan el amperaje que el motor necesita y puedes dañar la placa.

  • A mayor voltaje, mayor velocidad en motores DC. Pero cada motor tiene un voltaje nominal. Si un motor para 6 V recibe 12 V, puede quemarse.
  • A mayor amperaje, mayor torque. Pero la fuente debe ser más robusta.
  • No uses cables muy delgados: pueden calentarse o quemarse.
  • Evita probar motores directo desde el Arduino: puedes fundir un fusible o inutilizar la tarjeta.

¿Cómo cablear y usar un puente H L293D/L298 con Arduino?

Para dar corriente suficiente al motor y controlar sentido/velocidad, usa un puente H como L293D o L298. El Arduino ordena; el puente H entrega corriente al motor.

¿Qué es un puente H y para qué sirve?

  • Es un circuito integrado que conmuta y entrega corriente al motor.
  • Permite cambiar el sentido de giro invirtiendo la polaridad.
  • El L293D es doble (dos canales). Puedes controlar dos motores; en el ejemplo se usa uno.

¿Cómo identificar el pin 1 y leer el pinout?

  • Ubica la muesca en forma de “U” del circuito integrado. Indica la parte superior.
  • La numeración se lee en forma de U: 1 a 8 por un lado, 9 a 16 por el otro.
  • Ten a la vista el pinout del L293D para no confundir entradas, salidas y alimentación.

¿Cómo alimentar VS, VCC y unir tierras?

  • Conecta VS (a veces rotulado como VS o Voltage Source) a la fuente del motor, por ejemplo 12 V.
  • Conecta VCC a 5 V lógicos del Arduino.
  • Une las tierras (GND de 12 V y GND del Arduino) para tener referencia común.
  • Salidas del puente H: OUTPUT1 y OUTPUT2 al motor.

Conexión típica usada en el ejemplo:

  • Canal A habilitado con Enable al pin PWM del Arduino (por ejemplo, pin 3).
  • Input1 al pin digital 2 del Arduino.
  • Input2 al pin digital 4 del Arduino.
  • Output1/Output2 al motor.
  • VS a 12 V externo. VCC a 5 V del Arduino. GNDs comunes.

Tip de comprobación rápida: probar el motor con una batería para verificar que gira y que el cambio de polaridad invierte el sentido.

¿Cómo programar PWM y sentido de giro en Arduino?

La lógica es simple: con digitalWrite fijas el sentido de giro (entradas del puente H) y con analogWrite sobre el pin Enable regulas la velocidad por PWM.

¿Qué variables y pines definir?

// Pines (ajusta según tu cableado real) const int MOTOR1_A = 2; // Input 1 del L293D. const int MOTOR1_B = 4; // Input 2 del L293D. const int PWM1 = 3; // Enable del canal A (pin con PWM). int velocidad = 255; // 0–255 (0 = apagado, 255 = máximo) void setup() { pinMode(MOTOR1_A, OUTPUT); pinMode(MOTOR1_B, OUTPUT); }

¿Cómo fijar el sentido y variar la velocidad con PWM?

void loop() { // Sentido de giro 1. digitalWrite(MOTOR1_A, HIGH); digitalWrite(MOTOR1_B, LOW); // Velocidad máxima. velocidad = 255; analogWrite(PWM1, velocidad); delay(300); // Velocidad media. velocidad = 150; analogWrite(PWM1, velocidad); delay(300); // Velocidad baja. velocidad = 50; analogWrite(PWM1, velocidad); delay(300); }

Puntos clave:

  • analogWrite acepta valores de 0 a 255. 255 es velocidad máxima.
  • Si pones ambas entradas del puente H en HIGH, el motor frena (cortocircuito interno controlado). Úsalo con criterio: consume mucha corriente y agota baterías.

¿Cómo depurar sketches y evitar interferencias?

  • Carga un sketch simple (por ejemplo, Blink) para limpiar estados anteriores.
  • Verifica placa y puerto en Tools > Boards y el COM correcto.
  • Evita reusar pines ya ocupados por otros módulos (ej.: LCD) que metan ruido al motor.

¿Te gustaría que el mismo montaje controle dos motores o probar perfiles de velocidad distintos? Cuéntame en los comentarios qué proyecto quieres automatizar y qué sketch quisieras adaptar.

      Motores con Arduino y puente H L293D