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
+
| Ítem | Cant. | Observaciones |
|---|---|---|
| Sensor TCRT5000 | 2 uds | Módulo con salida digital (LOW = línea detectada). |
| Arduino Uno | 1 ud | Microcontrolador principal. |
| Driver L298N | 1 ud | Control dual H-Bridge para motores TT. |
| Motores TT 6 V | 2 uds | ~200 RPM a 6 V; torque 0,8 kg·cm. |
| Ruedas + soporte | 1 juego | Soporte omnidireccional incluido. |
| Pack baterías* | 1 ud | Se recomienda portapilas 6×AA Ni-MH o Li-ion 2S. |
| Cables y tornillería | — | Cables dupont necesarios para conexión. |
3
Esquema de Conexiones
+
| Componente | Pin Arduino | Comentario |
|---|---|---|
| Sensor izquierdo | A0 | digitalRead() |
| Sensor derecho | A1 | digitalRead() |
| L298N ENA | D5 PWM | Velocidad motor A |
| L298N IN1 / IN2 | D2 / D3 | Sentido motor A |
| L298N IN3 / IN4 | D4 / D7 | Sentido motor B |
| L298N ENB | D6 PWM | Velocidad 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
== LOWpor== HIGHpara pistas blancas. - Velocidad: Ajusta
BASE_SPEEDyTURN_FACTOR. - Control: El algoritmo se basa en lógica condicional sencilla.
5
Resolución de problemas comunes
+
| Síntoma | Posible causa | Solución |
|---|---|---|
| Robot se detiene | Batería 9 V agotada | Usa pack AA o Li-ion 7,4 V |
| Gira solo en un sentido | Sensor muy alto | Ajusta altura a ~5 mm |
| Motores no responden | Sin PWM o sin puente | Verifica puente L298N y pines |
| Vibración excesiva | Ejes desalineados | Asegura 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!


