Módulo Sensor de Linea 8 Canales
- Canales
- 8 pares de LED infrarrojo y fototransistor
- Salida
- Digital por tiempo de descarga: poco tiempo sobre blanco, mucho sobre negro
- Alimentación
- 3,3 a 5 V, unos 100 mA
- Distancia
- Ideal a 3 mm de la superficie; máximo unos 9 mm
Características
Regleta con 8 sensores infrarrojos (LED emisor y fototransistor) en fila, para robots seguidores de línea. Cada sensor distingue si tiene debajo una superficie clara o una línea oscura, y con los 8 juntos el robot sabe qué tan centrado va sobre la línea.
Es de salida digital (tipo QTR-8RC): cada canal se lee con un pin digital midiendo cuánto tarda en descargarse, así que no ocupa entradas analógicas.
| Canales | 8 pares de LED infrarrojo y fototransistor |
|---|---|
| Salida | Digital por tiempo de descarga: poco tiempo sobre blanco, mucho sobre negro |
| Alimentación | 3,3 a 5 V, unos 100 mA |
| Distancia | Ideal a 3 mm de la superficie; máximo unos 9 mm |
| Separación | Unos 9,5 mm entre sensores |
| Pin IR (LEDON) | Con LOW apaga los LED; sin conectar quedan encendidos |
¿Para qué sirve?
- Robots seguidores de línea y velocistas
- Detectar bordes o marcas en el piso
- Contar marcas oscuras en una banda o rueda
Diagrama de conexión de prueba
Placa usada: Arduino UNO
| Cable | Módulo | Arduino UNO | Nota |
|---|---|---|---|
| rojo | VCC | 5V | |
| negro | GND | GND | |
| gris | 1 | D2 | Sensor del extremo izquierdo |
| amarillo | 2 | D3 | |
| azul | 3 | D4 | |
| verde | 4 | D5 | |
| naranja | 5 | D6 | |
| morado | 6 | D7 | |
| cafe | 7 | D8 | |
| blanco | 8 | D9 | Sensor del extremo derecho |
Código de prueba
// Prueba del sensor de línea de 8 canales (digital, tipo QTR-8RC).
// Cada canal se lee por tiempo: se carga y se mide cuánto tarda en bajar a LOW.
// Poco tiempo = superficie blanca; mucho tiempo = línea negra.
const byte PINES[8] = {2, 3, 4, 5, 6, 7, 8, 9};
const unsigned int TIEMPO_MAX = 2500; // microsegundos: más que esto cuenta como negro
const unsigned int UMBRAL = 1000; // ajústalo según tu pista
unsigned int tiempos[8];
void leerSensores() {
for (byte i = 0; i < 8; i++) { // carga los 8 canales a la vez
pinMode(PINES[i], OUTPUT);
digitalWrite(PINES[i], HIGH);
}
delayMicroseconds(10);
for (byte i = 0; i < 8; i++) {
pinMode(PINES[i], INPUT); // sin pull-up, para que se descargue solo
tiempos[i] = TIEMPO_MAX;
}
unsigned long inicio = micros();
unsigned long t;
while ((t = micros() - inicio) < TIEMPO_MAX) {
for (byte i = 0; i < 8; i++) {
if (tiempos[i] == TIEMPO_MAX && digitalRead(PINES[i]) == LOW) tiempos[i] = t;
}
}
}
void setup() {
Serial.begin(9600);
}
void loop() {
leerSensores();
for (byte i = 0; i < 8; i++) {
Serial.print(tiempos[i]);
Serial.print('\t');
}
Serial.print("| ");
for (byte i = 0; i < 8; i++) Serial.print(tiempos[i] > UMBRAL ? '#' : '.'); // # = ve la línea
Serial.println();
delay(200);
}
Abre el Monitor serie a 9600 baudios y pasa el sensor a unos 3 mm sobre una hoja blanca con una línea negra: sobre blanco los tiempos son bajos y sobre negro suben hasta 2500. Cada # marca un sensor que ve la línea; ajusta UMBRAL según tu pista. El pin IR (LEDON) puede quedar sin conectar.
Precauciones
- Las salidas pueden venir marcadas 1 a 8 o D1 a D8: revisa las etiquetas impresas en la placa.
- Aliméntalo del pin 5V del Arduino, no de un pin digital: los LED consumen unos 100 mA.
- La luz del sol o un foco fuerte alteran las lecturas: prueba bajo techo o tapa los sensores.
- A más de 1 cm del piso ya no distingue bien el blanco del negro.
Fuentes consultadas: Pololu: QTR-8RC · Pololu: guía de los QTR-8A y QTR-8RC · Makers Electronics: QTR-8RC. Ficha preparada por Electrodrone; verifica siempre el voltaje de tu módulo antes de conectarlo.