Velocímetro
El velocímetro es un instrumento de medición de la velocidad. Su función principal es medir la rapidez a medida que la llanta de un objeto rueda por una superficie.
Función
La velocidad se mide mediante una rueda dentada, un sensor y un imán. Estos componentes envían la información a la placa de control, donde el velocímetro procesa y consigue el dato final.
Tipos de Velocímetros
- Magnético: Utiliza un captor de pulsos simple para realizar la medición.
- Eléctrico: Emite un pulso capaz de percibir la acción de un imán, convirtiéndolo posteriormente en pulsos eléctricos.
Clasificación y Componentes
- 5) Velocímetro: Instrumento de medición parcial que calcula la distancia recorrida y se reinicia según el objeto.
- D) Odómetro digital: Dispositivo encargado de medir el recorrido total.
- C) Velocímetro electrónico: Está formado por una serie de programas que dan seguimiento a la información, mostrando los resultados mediante números en la cuenta.
- B) Velocímetro mecánico: Dispositivo que se ajusta manualmente a la cuenta de la distancia recorrida.
- E) Odómetro mecánico: Cuenta con una rueda precortada y un sensor que transmite la información del movimiento.
- F) Tamaño de la rueda: La medición se realiza con un potenciómetro. Para interpretar la lectura, se utiliza un software especializado y una pantalla.
- G) Odómetro: En ciertas configuraciones, no lleva la cuenta de la distancia total, sino solo parcial.
- H) El uso de los 100 y 1000: Se refiere al movimiento de la rueda considerado para la medición a través de un cable. El velocímetro convierte esta información física en un dato digital.
- 3) Medición de velocidad: Registra la velocidad que presenta un objeto en movimiento en un instante dado.
- 7) Sensor: Posee un sensor capaz de recibir la relación de giro de la rueda para que la computadora (compiladora) la convierta en información legible.
Partes del Módulo Bluetooth
- VCC: Alimentación positiva, con un rango de 3.3V a 5V.
- GND: Alimentación negativa o tierra.
- TX: Pin de transmisión de datos. Se conecta al pin RX de la placa.
- RX: Pin de recepción de datos. Se conecta al pin TX de la placa.
- Componentes adicionales: El módulo cuenta con una antena integrada y un LED indicador de estado.
Programación: Conteo Tradicional
int contador;
void setup() {
Serial.begin(9600);
}
void loop() {
for (contador = 0; contador <= 100; contador++) {
Serial.println(contador);
delay(300);
if (contador == 100) {
Serial.println("Fin del conteo");
delay(100);
}
}
}Programación: Detección de Objetos
int encoder = 10;
int var;
void setup() {
pinMode(encoder, INPUT);
Serial.begin(9600);
}
void loop() {
var = digitalRead(encoder);
delay(50);
if (var == HIGH) {
Serial.println("Objeto detectado");
delay(300);
} else {
Serial.println("No detectado");
delay(300);
}
}Odómetro
- Función: Mide y determina el funcionamiento del vehículo mediante la construcción de un sistema para recorrer medianas y largas distancias.
- Construcción: Se programa específicamente para realizar el conteo de distancias.
- ¿Qué es un odómetro? Es un instrumento de medición que calcula la distancia parcial o total recorrida por un objeto. Existen dos tipos principales:
- Mecánico
- Digital
- Odómetro Mecánico: Formado por engranajes que dan movimiento a tambores numerados (base de la cuenta de distancia). No requiere fuente de alimentación externa.
- Odómetro Digital: Cuenta con una rueda precortada y un potenciómetro para leer la medición, apoyándose en un software y una pantalla.
- Ejemplos de uso: Automóviles, aparatos de gimnasio (caminadoras) y bicicletas.
Encoder
Un encoder es un generador de pulsos. Se define como un dispositivo electromecánico que convierte la posición angular o el movimiento lineal de un objeto en una serie de pulsos eléctricos digitales.
- Función: Se conecta a la placa Arduino. Sus componentes leen la posición angular y, ante cualquier movimiento, el encoder convierte dicha información física en datos.
- Salida: La placa analiza la señal recibida y envía una instrucción al dispositivo para que ejecute el movimiento correspondiente.
Encoder Óptico
- Realiza la medición del movimiento mediante un haz de luz infrarroja que se interrumpe por un disco ranurado.
- Utilidad: Medir la cantidad de pulsos para obtener una mayor precisión en el dispositivo.
- Componentes: LED (Diodo emisor de luz), Disco y Fototransistor.
Encoder Infrarrojo
- Utiliza una muesca de infrarrojo; un extremo contiene un diodo emisor y el otro un fototransistor que recibe la señal.
- Ambos componentes están colocados frente a frente, separados por una distancia de 5 mm.
- Pines:
- AO: Señal analógica.
- DO: Señal digital.
- GND: Alimentación negativa.
- VCC: Alimentación positiva (de 3.3V a 12V).
Programación: Conteo mediante Encoder
volatile int encoder = 3;
int contador = 0;
void setup() {
Serial.begin(9600);
attachInterrupt(digitalPinToInterrupt(encoder), interrupcion, RISING);
}
void loop() {
Serial.println("Contador...");
Serial.println(contador);
contador = contador + 1;
delay(500);
Serial.println();
}
void interrupcion() {
Serial.print("\t interrupción");
}Programación: Conteo de Interrupciones y Antirrebote
volatile int encoder = 3;
int contador = 0;
int contar = 1;
static volatile unsigned long rebote = 0;
void setup() {
Serial.begin(9600);
attachInterrupt(digitalPinToInterrupt(encoder), interrupcion, RISING);
}
void loop() {
Serial.println("Contador");
Serial.println(contador);
contador = contador + 1;
delay(500);
Serial.println();
}
void interrupcion() {
if (digitalRead(encoder) == HIGH && (micros() - rebote > 500)) {
rebote = micros();
Serial.println("\t interrupción");
contar = contar + 1;
Serial.println(contador);
}
}Programación Avanzada con Funciones Personalizadas
volatile int encoder = 3;
int contador = 0;
int contar = 1;
volatile unsigned long rebote = 0;
void setup() {
Serial.begin(9600);
attachInterrupt(digitalPinToInterrupt(encoder), interrupcion, RISING);
}
void loop() {
funcion_contador();
valor_contador();
debemos_hacer_caso();
No_pelear_con_Isaac();
debo_quejarme_menos();
contador = contador + 1;
Serial.println("");
}
void interrupcion() {
if (digitalRead(encoder) == HIGH && (micros() - rebote > 500)) {
rebote = micros();
funcion_contar();
male_piso_popo();
guacala();
contar = contar + 1;
}
}
void funcion_contador() {
Serial.print("contador");
}
void valor_contador() {
Serial.println(contador);
}
void debemos_hacer_caso() {
Serial.println("debemos hacer caso");
}
void No_pelear_con_Isaac() {
// Lógica personalizada
}
void debo_quejarme_menos() {
// Lógica personalizada
}
void funcion_contar() {
// Lógica personalizada
}
void male_piso_popo() {
Serial.println("malé piso popó");
}
void guacala() {
Serial.println("guácala");
} 