Descripción
⚙️ Módulo Sensor de Velocidad con Encoder Digital – Descripción Completa
✅ ¿Qué es?
El Módulo Sensor de Velocidad con encoder digital es un dispositivo diseñado para medir la velocidad angular o la rotación de un eje (por ejemplo, ruedas motrices) utilizando un sistema óptico de infrarrojos. Se utiliza comúnmente en robots móviles, en sistemas de conteo de rotaciones y en proyectos que requieren la medición de velocidad o distancia recorrida.
🔧 Cómo funciona
El módulo aprovecha:
- Un emisor IR (LED infrarrojo)
- Un receptor IR (fototransistor)
- Un disco perforado o con franjas alternadas (encoder óptico)
Cuando el disco gira, los orificios o las franjas interrumpen el haz IR, generando impulsos digitales que Arduino puede contar para determinar la velocidad o la distancia.
🧩 Componentes principales del módulo
- Emisor + receptor IR
- Comparadores para limpiar la señal
- Salida digital en forma de cuadrado (HIGH/LOW)
- Interfaz con 3 o 4 pines (VCC, GND, OUT, a veces también A0)
- Soporte mecánico para eje/disco
📦 Características técnicas
| Característica | Valor |
|---|---|
| Tensión de trabajo | 3.3V – 5V |
| Tipo de señal | Digital (impulsos) |
| Salida | TTL (HIGH/LOW) |
| Frecuencia máxima | ~2kHz (depende del disco) |
| Sensor óptico | Infrarrojo (850–950nm) |
| Aplicación | Conteo de revoluciones, velocidad, encoder |
🔌 Conexión con Arduino
🧰 Materiales
- Arduino Uno/Nano/Mega
- Módulo encoder IR
- Disco perforado o rueda con franjas negras/blancas
- Cables jumper
🖇️ Esquema de conexión
| Módulo Encoder | Puerto Arduino |
|---|---|
| VCC | 5V |
| GND | GND |
| OUT | D2 (recomendado, pin con interrupción) |
⚠️ Importante: conecta OUT a un pin con interrupt hardware (D2 o D3 en Arduino Uno) para un conteo preciso.
👨💻 Código de ejemplo básico: conteo de impulsos
volatile int impulsi = 0;
void setup() {
pinMode(2, INPUT); // pin OUT encoder
attachInterrupt(digitalPinToInterrupt(2), contaImpulso, RISING);
Serial.begin(9600);
}
void loop() {
Serial.print("Impulsi rilevati: ");
Serial.println(impulsi);
delay(1000);
}
void contaImpulso() {
impulsi++;
}
Cada impulso corresponde a una interrupción del haz IR, por lo que a una «ventana» del disco.
📐 Cálculo de velocidad y distancia
🧮 Fórmula (ejemplo básico):
velocita = (impulsi / numero_fessure) * (2 * PI * raggio) / tempo;
Donde:
numero_fessure= cuántos agujeros/estribos hay en el discoraggio= radio de la rueda en metrostempo= tiempo entre dos lecturas (en segundos)
🧪 Ejemplo: velocidad lineal
#define FESSURE 20
#define RAGGIO_CM 3.0
volatile int impulsi = 0;
unsigned long tempoPrec = 0;
void setup() {
pinMode(2, INPUT);
attachInterrupt(digitalPinToInterrupt(2), contaImpulso, RISING);
Serial.begin(9600);
}
void loop() {
delay(1000); // campionamento ogni 1 sec
noInterrupts();
int conteggio = impulsi;
impulsi = 0;
interrupts();
float giroRuota = 2 * PI * RAGGIO_CM / 100.0;
float giri = (float)conteggio / FESSURE;
float distanza = giri * giroRuota;
float velocita = distanza / 1.0; // m/s, perché il tempo è 1 sec
Serial.print("Velocità (m/s): ");
Serial.println(velocita);
}
void contaImpulso() {
impulsi++;
}
🔬 Prueba y calibración
- Usa un disco con número conocido de ranuras
- Mide el diametro efectivo de la rueda
- Verifica la precisión en giros conocidos (por ejemplo, 1 giro completo = 20 impulsos)
- Si la señal es inestable, agrega un condensador de desacoplamiento o un filtro de software
🧠 Aplicaciones prácticas
- 🚗 Robots móviles: cálculo de distancia recorrida
- 📦 Cintas transportadoras: conteo de objetos o longitud
- 🏎️ Autos RC / vehículos autónomos: control de velocidad
- ⚙️ Máquinas CNC: encoder para el eje de movimiento
- ⏱️ Cronometraje: medidas de velocidad en física experimental
📝 Conclusión
✅ El sensor de velocidad con codificador es una herramienta versátil y fácil de usar
✅ Proporciona datos precisos sobre rotaciones, velocidad y distancia
✅ Esencial en proyectos de robotica, automatización e ingeniería mecánica
¡Perfecto! Te proporciono:
✅ Sketch Arduino preconfeccionado
para Módulo Sensor de Velocidad con Codificador Digital
🎯 Objetivo:
Medir impulsos generados por la rotación de una rueda con codificador óptico y calcular la velocidad lineal y la distancia recorrida en metros.
🧪 Sketch completo Arduino
// -------------------------------
// Modulo Encoder Velocità IR
// -------------------------------
#define ENCODER_PIN 2 // Collegato all'uscita digitale del modulo IR
#define NUM_FESSURE 20 // Numero di fessure/strisce sul disco
#define RAGGIO_RUOTA_CM 3.0 // Raggio della ruota in cm
volatile unsigned int impulsi = 0;
unsigned long tempoPrecedente = 0;
const unsigned long intervallo = 1000; // Tempo tra letture (ms)
void setup() {
pinMode(ENCODER_PIN, INPUT);
attachInterrupt(digitalPinToInterrupt(ENCODER_PIN), contaImpulsi, RISING);
Serial.begin(9600);
Serial.println("Sensore Encoder IR Avviato");
}
void loop() {
unsigned long tempoAttuale = millis();
if (tempoAttuale - tempoPrecedente >= intervallo) {
noInterrupts(); // Disattiva gli interrupt per leggere in modo sicuro
unsigned int conteggio = impulsi;
impulsi = 0;
interrupts(); // Riattiva gli interrupt
// Calcolo della distanza e velocità
float giri = (float)conteggio / NUM_FESSURE;
float circonferenza = 2 * PI * RAGGIO_RUOTA_CM / 100.0; // in metri
float distanza = giri * circonferenza; // in metri
float velocita = distanza / (intervallo / 1000.0); // m/s
Serial.print("Impulsi: ");
Serial.print(conteggio);
Serial.print(" | Distanza: ");
Serial.print(distanza, 3);
Serial.print(" m | Velocità: ");
Serial.print(velocita, 3);
Serial.println(" m/s");
tempoPrecedente = tempoAttuale;
}
}
void contaImpulsi() {
impulsi++;
}
🧰 Componentes requeridos para la simulación Tinkercad
- Arduino Uno
- Módulo sensor de velocidad (IR encoder)
- Disco encoder simulado (puede ser un pulsador si el disco no está disponible)
- Cables jumper
- (Opcional) Motor DC con rueda
🔧 Simulación en Tinkercad (alternativa si no tienes el disco):
Puedes simular el sensor usando un pulsador o sensor infrarrojo conectado al pin D2, y cada presión simula un «impulso».
Conexión:
| Componente | Arduino |
|---|---|
| OUT sensor (o pulsador) | D2 |
| VCC | 5V |
| GND | TIERRA |
|
GENERALES |
MODELO |
sensor de |
|
MATERIALES |
pcb + componentes |
|
|
COMPATIBILIDAD |
ARDUINO |
|
|
COMPONENTES ELÉCTRICOS |
TENSIÓN DE ENTRADA |
3,3-5V |
|
PESO Y DIMENSIONES |
PESO DEL PRODUCTO |
7g |
|
PESO DEL PAQUETE |
0,085 kg |
|
|
DIMENSIONES DEL PRODUCTO (L x W x H) |
4 x 1,5 x 2 cm |
|
|
DIMENSIONES DEL PAQUETE (L x W x H) |
5 x 3 x 3 cm |
|
|
CONTENIDO DE LA Caja |
CONTENIDO DE LA Caja |
1 x Módulo |
Tenemos disponibles la hoja técnica de todos los componentes, en caso de que no esté presente en la descarga del producto, envíanos un mensaje a través del formulario de contacto y publicaremos la más rápida posible en nuestro sitio web.
Tutorial: Cómo usar el Módulo Sensor de Velocidad
El Módulo Sensor de Velocidad con codificador digital es ideal para medir la velocidad de rotación de un motor o de un dispositivo giratorio. Útil para proyectos de robótica y automatización.
Qué necesitas
- Arduino UNO o compatible
- Filtros eléctricos (R/C)
- Cable de alimentación 5V
- Cable de datos (para los pines de I/O)
Pasos
- 1. Conecta el módulo al Arduino a través de los pines GND, 5V, D2 y D3.
- 2. Monta un filtro eléctrico entre 5V y GND para proteger el módulo.
- 3. Conecta el cable de alimentación 5V al módulo.
- 4. Conecta el cable de datos al pin D2 y D3.
- 5. Carga el Arduino IDE.
- 6. Inserta el código de ejemplo proporcionado.
- 7. Carga el código en el Arduino.
- 8. Verifica la velocidad de rotación mostrada en la consola serial.
Código de ejemplo
```cpp
#include <Encoder.h>
Encoder myEncoder(D2, D3);
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(myEncoder.read());
}
```
Miniproyecto
Crea un dispositivo de control de velocidad para un motor DC utilizando el módulo y el Arduino.
Errores comunes
- Omitir la conexión del filtro eléctrico.
- Conectar los pines incorrectos.
- Olvidar cargar el código.
- No verificar la conectividad de los pines antes de cargar el código.
Accesorios recomendados
- Motores DC
- Arduino UNO
- Filtro eléctrico (R/C)
- Cable de alimentación 5V
Preguntas frecuentes
¿El módulo funciona con una alimentación diferente de 5V?
Verifica el datasheet. Otras alimentaciones podrían requerir un convertidor.
¿Qué pines del Arduino debo utilizar?
Utiliza los pines D2 y D3 para conectar el módulo.
¿El módulo funciona con Arduino compatibles?
Sí, pero asegúrate de que la alimentación sea compatible con 5V.
Cómo puedo verificar la conexión?
Revisa la consola serial después de cargar el código.




















Valoraciones
No hay valoraciones aún.