Introducción

Aprenda cómo conectar motores DC, sensores IR y controladores de motor con un Arduino para hacer un robot que evite obstáculos.

Un robot que evita los obstáculos de Arduino detecta cualquier obstrucción en su camino y lo evita al desviarse. La misma acción se puede obtener con mayor precisión utilizando módulos de sensores ultrasónicos y algoritmos basados en PID (proporcional-integral-derivada).
Este concepto incluso se ha utilizado en aspiradoras automáticas.

Lista de materiales

  • Arduino
  • Controlador de motor (motor driver) L293D
  • x2 motores DC (corriente continua)
  • Chasis y ruedas del robot
  • Rueda giratoria
  • Protoboard
  • Cinta adhesiva doble-faz
  • Jumper Macho-Macho y Hembra-Macho
  • Batería de 9V

¿Cómo funciona?

El robot Arduino lee la entrada de los módulos IR a través de los pines analógicos. Dependiendo de los valores recibidos del módulo IR, el Arduino controla los dos motores por separado. De este modo, el robot gira a la izquierda o a la derecha para evitar obstáculos.

¿Cómo funciona?

Controlador de motor L293 (motor driver)

El controlador tiene 2 entradas para alimentación, 4 puntos para las entradas de control del motor y 4 puntos para las salidas de control del motor. Es un conjunto de 2 entradas y 2 salidas para cada motor.

Para controlar los motores, conecte los cuatro puntos de control al Arduino y los 4 puntos de salida a los motores. La batería de 9V se puede conectar al controlador mediante los pines de entrada de alimentación. Los puntos de potencia de entrada y salida se indican en la placa.

Módulo IR

IR significa infrarrojo, que es una longitud de onda de luz no visible para el ojo humano (pero se puede ver con nuestras cámaras de teléfonos inteligentes). Estos módulos constan de un par de LEDs IR de receptor y transmisor.

Cuando un objeto se pone frente al sensor de infrarrojos, la superficie del objeto refleja una parte de la luz infrarroja hacia el receptor, luego el receptor emite una señal LOW que notifica que un objeto está frente al sensor.

Módulo IR

Este robot Arduino utiliza dos módulos de sensores IR que pueden detectar objetos dentro de un rango de 5-6 cm. Este sensor emite una señal digital LOW (0V) cuando hay un objeto dentro de su rango y, de lo contrario, emite una señal digital HIGH (5V).

Conexiones

El controlador de motor L293D IC se utiliza para controlar los dos motores. Se usa un controlador de motor porque un Arduino no puede suministrar suficiente corriente para impulsar el motor. Los pines 2, 3, 4 y 5 en el Arduino entran en la entrada del L293D IC.

Los pines 2 y 3 son las señales de control para el motor derecho y 4 y 5 son las señales de control para el motor izquierdo. Una batería de 9V está conectada al L293D IC para impulsar el motor.

Se conectan +5V y GND (tierra) a ambos sensores IR del Arduino. Las salidas del sensor IR izquierdo y derecho se dan a los pines analógicos 3 y 4 en el Arduino respectivamente. Las lecturas del sensor IR serán valores analógicos.

Cuando un obstáculo obstruya el sensor, el valor analógico de salida será digital LOW. La salida del controlador del motor (L293D) se entrega a los dos motores como se ve en el diagrama.

¿Cómo funciona?

Checkeo de los módulos IR y motores DC

Compruebe que los sensores IR conectados están funcionando con el Arduino. Para hacer esto, conecte el módulo IR a los pines analógicos de Arduino y verifique los valores recibidos en el monitor de serie. Luego encuentre los valores correspondientes cuando un objeto esté frente al sensor IR.

Puede utilizar este código para verificar los módulos IR y los motores DC:

		
int value;

void setup(){
Serial.begin(9600);
}

void loop(){
value = analogRead(3);
Serial.print(" Sensor Left = ");   // printing the values of both sensors into
Serial.print(value);               // serial monitor for inspection
value = analogRead(4);
Serial.print(" Sensor Right = ");
Serial.println(value);
delay(100);
}

Los dos terminales en los motores están conectados a los cuatro terminales de salida en el tablero. Los motores entonces, basados en el comando del Arduino son alimentados por la batería de 9V.

Lógica para controlar los motores desde el Arduino

HIGH significa señal de 5V o digital 1 y LOW es señal de 0V o digital 0.

Por ejemplo: digitalWrite (5, HIGH), este comando envía una señal HIGH (digital 1) al pin 5 en el Arduino. Por lo tanto, la dirección de cada motor se puede controlar escribiendo señales HIGH/LOW a través de dos pines digitales en el Arduino.

Código

Realice las conexiones que se muestran en el diagrama de circuito de arriba. Puede intentar crear su propio código o simplemente usar el código que creamos: tutorial de Arduino Robot. Aquí se incluye un código que maneja los obstáculos directamente en frente del robot Arduino y también las esquinas hasta cierto punto.