Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
En muchos vehículos, existen dispositivos que calculan la distancia recorrida y son fundamentales para presentar información al conductor.
Así, a través de esta información, es posible monitorizar la distancia recorrida entre dos puntos, por ejemplo, a través del cuentakilómetros del vehículo.
Suministros
01 x PCBWay PCB personalizado
01 x Arduino UNO - UTSOURCE
01 x Pantalla LCD 16x2 - UTSOURCE
01 x Placa de pruebas - UTSOURCE
01 x puentes de alambre - UTSOURCE
Potenciómetro rotativo 01 x 10kR - UTSOURCE
01 x Interruptor de lengüeta UTSOURCE - UTSOURCE
Por lo tanto, a través de este artículo, le enseñaremos cómo ensamblar su dispositivo de cálculo de distancia utilizando el sensor de interruptor de láminas.
Paso 1: el proyecto
El siguiente proyecto fue creado para calcular la distancia recorrida por la bicicleta del gimnasio. Además, aprenderá a crear programación para el proyecto.
Este proyecto tiene tres funcionalidades:
- Calcule la distancia recorrida en bicicleta;
- Configuración del radio de inicio del dispositivo;
- Adaptable a cualquier bicicleta.
Para acceder a estas funcionalidades, el usuario utilizará los tres botones del sistema. Cada botón tiene su funcionalidad. En el sistema tenemos los siguientes botones:
Botón Incrementar: Se utilizará para ingresar en la opción de configurar el radio de las ruedas e incrementar el valor del radio;
Botón Disminuir: Se utilizará para disminuir la opción de configurar el radio de las ruedas;
Botón Enter: Se utilizará para insertar el valor del radio en el sistema.
Además, tenemos el Sensor Reed Switch. Se encarga de detectar cuando las ruedas hacen un giro completo. Para detectar esto, es necesario instalar un imán en las ruedas.
El interruptor de lengüeta se presenta en la Figura anterior.
Paso 2:
Por lo tanto, cada vez que el imán se acerca al sensor, activará el sensor del interruptor de lengüeta. El proceso funciona mediante la siguiente ecuación:
Distancia recorrida = 2 * π * radio * TurnNumber
A través de esta ecuación sabremos cuál es la distancia recorrida realizada por la bicicleta.
En la ecuación, el usuario inserta el radio y el número de giro se calcula mediante el número de vueltas de la rueda.
Y para detectar los giros de la rueda es necesario instalar un imán en la rueda de la bicicleta e instalar el Sensor Reed Switch cerca de la Rueda.
Para facilitar el proceso, creamos una placa de circuito impreso para conectar el sensor Reed Switch y los tres botones. La placa de circuito impreso se presenta a continuación en la figura siguiente.
Paso 3:
Como se muestra en la PCB es posible ver el Arduino Nano. Es responsable de controlar todos los sistemas. Además, contamos con 5 conectores JST.
Los conectores C1 a C4 se utilizan para conectar los tres botones y el sensor de interruptor de lengüeta. Ahora, el conector C5 se utiliza para conectar el LCD 16x2 I2C.
Por tanto, a través de este sistema, puede instalar el proyecto en su bicicleta y obtener el valor de la distancia recorrida.
Para ello, puede utilizar el código que se presenta a continuación.
#include #incluya
/*
Pinos de conex? O dos bot? Es e sensor reed switch 8 - Sensor Reed Switch 9 - Decremento 12 - Incremento 11 - Enter * /
#define MEMORIA 120
#define PosRaio 125
#define ReedSwitch 8
#define BotaoEnterOk 11 #define BotaoIncremento 12 #define BotaoDecremento 9
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
bool sensor = 0, estado_anterior = 0, Incremento = 0, Decremento = 0;
bool IncrementoAnterior = 0, DecrementoAnterior = 0, BotaoEnter = 0, EstadoAnteriorIncremento = 0;
byte cont = 0;
unsigned long int VoltaCompleta = 0;
unsigned long int tempo_atual = 0, ultimo_tempo = 0;
flotador DistKm = 0;
unsigned int raio = 0; flotar Distancia = 0;
configuración vacía ()
{Serial.begin (9600); pinMode (8, ENTRADA); pinMode (9, ENTRADA); pinMode (10, ENTRADA); pinMode (12, ENTRADA);
lcd. comienzo (16, 2);
// Regiao de codigo para configurar o raio da roda do veiculo
if (EEPROM.read (MEMORIA)! = 73) {ConfiguraRaio (); EEPROM.write (MEMORIA, 73); }
lcd.setCursor (3, 0);
lcd.print ("Distancia"); lcd.setCursor (6, 1); lcd.print (Distancia);
lcd.setCursor (14, 1);
lcd.print ("km");
raio = EEPROM.read (PosRaio);
}
bucle vacío ()
{
// Regiao de codigo para realizar una leitura dos botoes e sensor do dispositivo
sensor = digitalRead (ReedSwitch); Decremento = digitalRead (BotaoDecremento); Incremento = digitalRead (BotaoIncremento);
// Regiao de codigo para acumular a distancia percorrida
if (sensor == 0 && estado_anterior == 1) {VoltaCompleta ++;
Distancia = (flotar) (2 * 3.14 * raio * VoltaCompleta) /100000.0;
lcd.setCursor (0, 1);
lcd.print (““); lcd.setCursor (6, 1); lcd.print (Distancia);
lcd.setCursor (14, 1);
lcd.print ("km");
estado_anterior = 0;
}
si (sensor == 1 && estado_anterior == 0)
{estado_anterior = 1; }
// Regiao de Codigo para Configurar o Raio
if (Incremento == 1 && EstadoAnteriorIncremento == 0) {EstadoAnteriorIncremento = 1; }
if (Incremento == 0 && EstadoAnteriorIncremento == 1)
{EstadoAnteriorIncremento = 0; lcd.clear (); ConfiguraRaio (); }}
ConfiguraRaio vacío ()
{
byte RaioRoda = 0;
// Imprimir mensagem para digitar o raio em cm
lcd.setCursor (0, 0); lcd.print ("Inserir Raio (cm)");
hacer
{
lcd.setCursor (6, 1);
Incremento = digitalRead (BotaoIncremento);
Decremento = digitalRead (BotaoDecremento); BotaoEnter = digitalRead (BotaoEnterOk);
if (Incremento == 1 && IncrementoAnterior == 0)
{RaioRoda = RaioRoda + 1; IncrementoAnterior = 1; }
if (Incremento == 0 && IncrementoAnterior == 1)
{IncrementoAnterior = 0; }
if (Decremento == 1 && DecrementoAnterior == 0)
{RaioRoda = RaioRoda - 1; DecrementoAnterior = 1; }
if (Decremento == 0 && DecrementoAnterior == 1)
{DecrementoAnterior = 0; }
lcd.setCursor (6, 1);
impresión lcd (RaioRoda);
} while (BotaoEnter == 0);
lcd.clear ();
EEPROM.write (PosRaio, RaioRoda);
regreso; }
A partir de este código, posiblemente calculará su distancia con su Arduino.
Paso 4: Conclusión
Por lo tanto, en caso de que desee su propia PCB, puede obtenerla a través de este enlace en el sitio web PCBWay.com. Para ello, puede acceder al sitio web, crear su cuenta y obtener sus propias PCB.
Silícios Lab agradece a UTSOURCE por ofrecer los componentes electrónicos para crear este proyecto.