Módulo Sensor Optico Tacometro + Rueda plastica Dentada
- Ranura
- 5 mm
- Alimentación
- 3,3 a 5 V
- Salida D0
- Digital: cambia al tapar o destapar la ranura
- Salida A0
- Analógica (casi no se usa)
Características
Sensor óptico de horquilla (ranura de 5 mm) con comparador LM393: de un lado tiene un LED infrarrojo y del otro un receptor, y la salida cambia cuando algo tapa la ranura. Con la rueda dentada de plástico montada en el eje de un motor, cada ranura de la rueda da un pulso; contándolos se calcula la velocidad.
Se usa para medir las RPM de motores, la velocidad y la distancia recorrida por robots, y como contador o final de carrera sin contacto.
| Ranura | 5 mm |
|---|---|
| Alimentación | 3,3 a 5 V |
| Salida D0 | Digital: cambia al tapar o destapar la ranura |
| Salida A0 | Analógica (casi no se usa) |
| Comparador | LM393 |
| Incluye | Rueda dentada de plástico (encoder) |
| Indicadores | LED de encendido y LED de salida |
| Pines | VCC, GND, D0 y A0 |
¿Para qué sirve?
- Medir las RPM de un motor
- Calcular velocidad y distancia en robots con ruedas
- Contar objetos o servir de final de carrera sin contacto
Diagrama de conexión de prueba
Placa usada: Arduino UNO
| Cable | Módulo | Arduino UNO | Nota |
|---|---|---|---|
| rojo | VCC | 5V | |
| negro | GND | GND | |
| amarillo | D0 | D2 | Pulsos (pin con interrupción) |
Código de prueba
// Prueba del sensor óptico tacómetro: cuenta las ranuras de la rueda que
// pasan por la horquilla y calcula las revoluciones por minuto (RPM).
const int PIN_D0 = 2; // en el UNO debe ser D2 o D3 (tienen interrupción)
const int RANURAS = 20; // ranuras de la rueda: cuéntalas en la tuya
volatile unsigned long pulsos = 0;
volatile unsigned long ultimoPulso = 0;
unsigned long ultimo = 0;
void contarRanura() {
unsigned long ahora = micros();
if (ahora - ultimoPulso > 500) { // ignora rebotes muy seguidos
pulsos++;
ultimoPulso = ahora;
}
}
void setup() {
Serial.begin(9600);
pinMode(PIN_D0, INPUT);
attachInterrupt(digitalPinToInterrupt(PIN_D0), contarRanura, RISING);
}
void loop() {
if (millis() - ultimo < 1000) return; // calcula una vez por segundo
ultimo = millis();
noInterrupts();
unsigned long cuenta = pulsos;
pulsos = 0;
interrupts();
float rpm = cuenta * 60.0 / RANURAS; // vueltas por segundo × 60
Serial.print("Ranuras en 1 s: ");
Serial.print(cuenta);
Serial.print(" RPM: ");
Serial.println(rpm, 0);
}
Cuenta las ranuras de tu rueda y escríbelas en RANURAS (la más común tiene 20). Abre el Monitor serie a 9600 baudios y haz girar la rueda dentro de la horquilla.
Precauciones
- La rueda debe pasar por el centro de la ranura sin rozar.
- El sol o una luz fuerte directa pueden meter pulsos falsos.
- A velocidades muy altas conviene una rueda con menos ranuras.
Fuentes consultadas: Joy-IT: manual del sensor de velocidad · Hackster: RPM con optoacoplador y disco · Zbotic: disco encoder con Arduino. Ficha preparada por Electrodrone; verifica siempre el voltaje de tu módulo antes de conectarlo.