Robotica de Colombia

Seguidor de Línea MultiCarBot

bnr-arrow-1-1.png

Seguidor de Línea MultiCarBot

📅 16 de marzo de 2026 📂 Robótica Educativa
1

Concepto y Funcionamiento

+

El modo “Seguidor de Línea” permite que el Multicarbot detecte y siga trayectorias negras (o blancas) impresas sobre el suelo gracias a dos sensores ópticos TCRT5000 colocados en los extremos delanteros del chasis.

Con esta práctica, los estudiantes comprenderán cómo interactúan sensores de reflexión infrarroja, lógica de decisión y control de motores de corriente continua.

2

Componentes Necesarios

+
ÍtemCant.Observaciones
Sensor TCRT50002 udsMódulo con salida digital (LOW = línea detectada).
Arduino Uno1 udMicrocontrolador principal.
Driver L298N1 udControl dual H-Bridge para motores TT.
Motores TT 6 V2 uds~200 RPM a 6 V; torque 0,8 kg·cm.
Ruedas + soporte1 juegoSoporte omnidireccional incluido.
Pack baterías*1 udSe recomienda portapilas 6×AA Ni-MH o Li-ion 2S.
Cables y tornilleríaCables dupont necesarios para conexión.
3

Esquema de Conexiones

+
ComponentePin ArduinoComentario
Sensor izquierdoA0digitalRead()
Sensor derechoA1digitalRead()
L298N ENAD5 PWMVelocidad motor A
L298N IN1 / IN2D2 / D3Sentido motor A
L298N IN3 / IN4D4 / D7Sentido motor B
L298N ENBD6 PWMVelocidad motor B
💡 Conexión: Conecta VCC de los sensores a +5 V del Arduino y GND común. La salida digital de cada TCRT5000 va a su pin analógico sólo a modo de entrada digital.
4

Código Arduino completo

+
/* Control Bluetooth Turbobot - RDC Robotica de Colombia */

#define ENA 5     // PWM Motor A
#define IN1 2
#define IN2 3
#define IN3 4
#define IN4 7
#define ENB 6     // PWM Motor B
#define SENSOR_LEFT  A0
#define SENSOR_RIGHT A1

const uint8_t BASE_SPEED = 150;
const uint8_t TURN_FACTOR = 75;

void setup() {
  pinMode(ENA, OUTPUT); pinMode(ENB, OUTPUT);
  pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT);
  pinMode(SENSOR_LEFT,  INPUT);
  pinMode(SENSOR_RIGHT, INPUT);
  Serial.begin(9600);
}

void loop() {
  bool left  = digitalRead(SENSOR_LEFT)  == LOW; 
  bool right = digitalRead(SENSOR_RIGHT) == LOW;

  if (left && right) { forward(BASE_SPEED); } 
  else if (left && !right) { turnLeft(); } 
  else if (!left && right) { turnRight(); } 
  else { stopMotors(); }
}

void forward(uint8_t speed) {
  analogWrite(ENA, speed); analogWrite(ENB, speed);
  digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
  digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
}

void turnLeft() {
  analogWrite(ENA, BASE_SPEED - TURN_FACTOR); analogWrite(ENB, BASE_SPEED);
  digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
  digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
}

void turnRight() {
  analogWrite(ENA, BASE_SPEED); analogWrite(ENB, BASE_SPEED - TURN_FACTOR);
  digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
  digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
}

void stopMotors() { analogWrite(ENA, 0); analogWrite(ENB, 0); }

Ajustes opcionales

  • Invertir lógica: Cambia == LOW por == HIGH para pistas blancas.
  • Velocidad: Ajusta BASE_SPEED y TURN_FACTOR.
  • Control: El algoritmo se basa en lógica condicional sencilla.
5

Resolución de problemas comunes

+
SíntomaPosible causaSolución
Robot se detieneBatería 9 V agotadaUsa pack AA o Li-ion 7,4 V
Gira solo en un sentidoSensor muy altoAjusta altura a ~5 mm
Motores no respondenSin PWM o sin puenteVerifica puente L298N y pines
Vibración excesivaEjes desalineadosAsegura transmisiones motores TT
6

Marcadores multimedia

+
<!-- BLOQUE IMAGEN: FotoMontajeSensores -->
<!-- BLOQUE VIDEO: DemoSeguimientoLinea -->
<!-- BLOQUE IMAGEN: EsquemaConexiones -->

Siguientes pasos

Con este tutorial tu Multicarbot ya sigue líneas usando un sistema minimalista de dos sensores. Como reto adicional, implementa un PID para giros más suaves y añade más sensores para mejorar la precisión. ¡Comparte tus resultados!

Tags: