1. Introducción
Esta es una serie de articulo para elaborar un carro seguidor de línea optimizado, que lo vamos a elaborar paso a paso, en este capitulo vamos a realizar el montaje básico y realizaremos pruebas de funcionamiento para obtener datos para análisis y mejoras.
Antes de instalar los sensores de línea y programar la lógica de seguimiento, es fundamental comprobar que la parte mecánica y el sistema de potencia funcionen correctamente. En este primer paso construiremos la base móvil del proyecto y verificaremos las funciones básicas: avanzar, retroceder, girar a la derecha, girar a la izquierda y operar los motores a velocidad mínima y máxima.
El objetivo no es seguir una línea todavía. En esta etapa nos aseguraremos de que el Arduino Nano se comunique correctamente con el driver L298N y que ambos motores respondan en el sentido esperado.
te invito a ver el articulo : Ventajas de trabajar con Arduino Nano y una base de conexiones
2. Materiales necesarios
- 1 Arduino Nano.
- 1 módulo controlador de motores L298N.
- Sensor Infrarrojo Qtr-8a Seguidor De Línea.
- 2 motores DC con caja reductora.
- 2 ruedas compatibles con los motores.
- 1 rueda loca o rueda giratoria.
- 1 chasis para robot móvil.
- 1 batería compatible con el voltaje de los motores.
- Cables.
- Interruptor, recomendado para desconectar la alimentación de los motores.
Importante: todos los módulos deben compartir tierra. Une el GND del Arduino Nano, el GND del L298N y el negativo de la batería.
mi recomendación si es la primera vez que lo vas a realizar, es comprar un kit de carro seguidor de líneas:
https://s.click.aliexpress.com/e/_c4bgAsMT
Nota: Este es un enlace de afiliado. Si compras a través de él, puedo recibir una pequeña comisión sin costo adicional para ti. Solo recomiendo productos que consideraría útiles para mis estudiantes.
el kit comercial es aproximadamente este :

kit seguidor de linea
Te invito a inventar y sonar, este es mi kit todo de materiales de reciclaje

kit seguidor de línea casero

circuito seguidor de línea
3. Funciones que probaremos:
En esta primera prueba, el carro debe realizar los siguientes movimientos:
| Función | Acción del carro |
|---|---|
| Avanzar | Los dos motores giran hacia adelante |
| Retroceder | Los dos motores giran hacia atrás |
| Girar a la izquierda | El carro rota hacia la izquierda |
| Girar a la derecha | El carro rota hacia la derecha |
| Velocidad mínima | Los motores reciben un valor PWM bajo |
| Velocidad máxima | Los motores reciben el máximo valor PWM |
| Detener | Los motores dejan de girar |
4. Conexiones del L298N
El L298N permite controlar dos motores DC de forma independiente. Las entradas IN1 IN2 controlan el motor izquierdo, mientras que IN3 IN4 controlan el motor derecho. Los pines ENA ENB permiten regular la velocidad mediante PWM.
| L298N | Arduino Nano | Función |
|---|---|---|
| ENA | D12 | Control de velocidad del motor izquierdo |
| IN1 | D11 | Sentido de giro del motor izquierdo |
| IN2 | D10 | Sentido de giro del motor izquierdo |
| ENB | D7 | Control de velocidad del motor derecho |
| IN3 | D9 | Sentido de giro del motor derecho |
| IN4 | D8 | Sentido de giro del motor derecho |
| GND | GND | Tierra común |
Conecta el motor izquierdo a las terminales OUT1 y OUT2 del L298N. Conecta el motor derecho a OUT3 y OUT4.
La batería debe conectarse a la entrada de alimentación del L298N. No alimentes los motores desde el pin de 5 V del Arduino Nano: los motores pueden demandar una corriente superior a la que la placa puede suministrar.
Para controlar la velocidad por PWM, retira los jumpers de ENA y ENB del módulo L298N, si tu versión los incluye.
la conexion del Sensor Infrarrojo Qtr-8a Seguidor De Línea es opcional (no se va a usar en esta etapa
5. Código de prueba:
El siguiente programa ejecuta una secuencia automática de movimientos. Cada acción dura dos segundos y luego el carro se detiene brevemente antes de continuar con la siguiente prueba.
// Carro Seguidor de Línea (Paso 1)
// Pruebas básicas de motores con Arduino Nano y L298N
// Pines del L298N para el motor izquierdo
const int ENA = 12;
const int IN1 = 11;
const int IN2 = 10;
// Pines del L298N para el motor derecho
const int ENB = 7;
const int IN3 = 9;
const int IN4 = 8;
// Valores PWM: rango válido entre 0 y 255
const int VELOCIDAD_MINIMA = 80;
const int VELOCIDAD_MAXIMA = 255;
const int VELOCIDAD_GIRO = 150;
void setup() {
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
Serial.begin(9600);
detener();
}
void loop() {
Serial.println("Avance a velocidad minima");
adelante(VELOCIDAD_MINIMA);
delay(2000);
detenerPausa();
Serial.println("Avance a velocidad maxima");
adelante(VELOCIDAD_MAXIMA);
delay(2000);
detenerPausa();
Serial.println("Retroceso");
atras(VELOCIDAD_GIRO);
delay(2000);
detenerPausa();
Serial.println("Giro a la izquierda");
izquierda(VELOCIDAD_GIRO);
delay(1500);
detenerPausa();
Serial.println("Giro a la derecha");
derecha(VELOCIDAD_GIRO);
delay(1500);
detenerPausa();
Serial.println("Fin de la secuencia. Nueva prueba en 3 segundos.");
delay(3000);
}
// Función para avanzar
void adelante(int velocidad) {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENA, velocidad);
analogWrite(ENB, velocidad);
}
// Función para retroceder
void atras(int velocidad) {
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(ENA, velocidad);
analogWrite(ENB, velocidad);
}
// Función para girar a la izquierda
void izquierda(int velocidad) {
// Motor izquierdo hacia atrás
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
// Motor derecho hacia adelante
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENA, velocidad);
analogWrite(ENB, velocidad);
}
// Función para girar a la derecha
void derecha(int velocidad) {
// Motor izquierdo hacia adelante
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
// Motor derecho hacia atrás
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(ENA, velocidad);
analogWrite(ENB, velocidad);
}
6. Cómo realizar la prueba:
- Antes de colocar el carro en el suelo, levanta el chasis para que las ruedas queden libres. Esto permite verificar el sentido de giro de cada motor de forma segura.
- Carga el programa en el Arduino Nano.
- Conecta la batería al L298N y enciende el sistema.
- Abre el monitor serial a una velocidad de 9600 baudios para identificar la función que se está ejecutando.
- Verifica la secuencia: avance lento, avance rápido, retroceso, giro a la izquierda y giro a la derecha.
- Cuando confirmes que el sentido de giro es correcto, realiza pruebas cortas sobre el suelo.
7. Ajuste de velocidad:
El Arduino controla la velocidad de los motores mediante PWM usando valores entre 0 y 255.
| Valor PWM | Resultado esperado |
|---|---|
| 0 | Motor detenido |
| 60 a 100 | Velocidad baja, dependiendo del motor y la batería |
| 120 a 180 | Velocidad media para pruebas iniciales |
| 200 a 255 | Velocidad alta |
El valor VELOCIDAD_MINIMA debe ser suficiente para vencer la fricción y poner en marcha ambos motores. Si uno de los motores no comienza a girar con 80, aumenta gradualmente este valor hasta conseguir un movimiento estable.
8. Solución de problemas
El carro avanza hacia atrás
Si al ejecutar la función adelante() el carro se desplaza hacia atrás, intercambia los dos cables del motor correspondiente en las salidas del L298N. También puedes invertir la lógica de sus pines IN en el programa, pero intercambiar los cables suele simplificar el código.
El carro gira en lugar de avanzar recto
Comprueba que ambos motores estén conectados con el mismo criterio de polaridad. Si las ruedas giran en sentidos opuestos durante el avance, invierte los cables de uno de los motores.
Un motor no gira a velocidad baja
Aumenta el valor de VELOCIDAD_MINIMA. Cada motor tiene un umbral diferente para comenzar a girar, especialmente cuando el chasis ya está apoyado sobre el suelo.
El Arduino se reinicia al mover los motores
Revisa la alimentación. Los motores deben recibir energía desde una batería conectada al L298N y no desde el Arduino. Asegúrate además de que todos los GND estén conectados en común.
9. Próximo paso
Una vez verificadas las funciones básicas de desplazamiento, el chasis estará listo para incorporar los cinco sensores infrarrojos. En el siguiente paso se realizará la conexión, calibración y lectura de los sensores para comenzar a detectar la línea negra sobre la pista.
![]()






Comentarios recientes