Taula de continguts:

Comptaquilòmetres amb bicicleta PCBWay Arduino: 4 passos
Comptaquilòmetres amb bicicleta PCBWay Arduino: 4 passos

Vídeo: Comptaquilòmetres amb bicicleta PCBWay Arduino: 4 passos

Vídeo: Comptaquilòmetres amb bicicleta PCBWay Arduino: 4 passos
Vídeo: INSTALL BICYCLE SPEEDMETER || BIKIGHT Waterproof LCD Digital Bike Odometer Testing 2024, De novembre
Anonim
Comptaquilòmetres de bicicletes PCBWay Arduino
Comptaquilòmetres de bicicletes PCBWay Arduino

En molts vehicles, hi ha dispositius que calculen la distància recorreguda i són essencials per presentar informació al conductor.

Així, mitjançant aquesta informació, és possible controlar la distància recorreguda entre dos punts, per exemple, a través del comptaquilòmetres del vehicle.

Subministraments

01 x PCBWay PCB personalitzat

01 x Arduino UNO - UTSOURCE

Pantalla 01 x LCD 16x2 - UTSOURCE

01 x Taula de pa - UTSOURCE

01 x Wire Jumpers - UTSOURCE

Potenciòmetre rotatiu 01 x 10kR - UTSOURCE

01 x UTSOURCE Reed Switch - UTSOURCE

Per tant, a través d’aquest article, us ensenyarem a muntar el dispositiu de càlcul de distància mitjançant el sensor d’interruptor reed.

Pas 1: el projecte

El projecte
El projecte

El següent projecte es va crear per calcular la distància recorreguda per la bicicleta del gimnàs. A més, aprendràs a crear programació per al projecte.

Aquest projecte té tres funcionalitats:

  • Calculeu la distància recorreguda en bicicleta;
  • Configuració del radi d’inici del dispositiu;
  • Adaptable a qualsevol bicicleta.

Per accedir a aquestes funcionalitats, l'usuari utilitzarà els tres botons del sistema. Cada botó té la vostra funcionalitat. Al sistema tenim els botons següents:

Botó d'increment: s'utilitzarà per entrar a l'opció de configurar el radi de les rodes i incrementar el valor del radi;

Botó Decrement: s'utilitzarà per disminuir l'opció de configurar el radi de les rodes;

Botó Retorn: s'utilitzarà per inserir el valor del radi al sistema.

A més, tenim el sensor de commutació Reed. És responsable de detectar quan les rodes fan un gir complet. Per detectar-ho, cal instal·lar un imant a les rodes.

El Reed Switch es presenta a la figura anterior.

Pas 2:

Per tant, cada vegada que l’imant s’acosta al sensor, accionarà el sensor Reed Switch. El procés funciona mitjançant la següent equació:

Distància recorreguda = 2 * π * radi * TurnNumber

Mitjançant aquesta equació, sabrem quina és la distància recorreguda realitzada per la bicicleta.

A l'equació, l'usuari insereix el radi i el número de gir es calcula a través del nombre de voltes de la roda.

I per detectar els girs de la roda cal instal·lar un imant a la roda de la bicicleta i instal·lar el sensor de commutació de canya a prop de la roda.

Per facilitar el procés, creem una placa de circuit imprès per connectar el sensor de commutació Reed i els tres botons. A continuació es mostra la placa de circuit imprès a la figura següent.

Pas 3:

Imatge
Imatge

Com es mostra al PCB, és possible veure l'Arduino Nano. És responsable de controlar tots els sistemes. A més, tenim 5 connectors JST.

Els connectors C1 fins C4 s’utilitzen per connectar els tres botons i el sensor de commutació Reed. Ara, el connector C5 s’utilitza per connectar el LCD 16x2 I2C.

Per tant, mitjançant aquest sistema, podeu instal·lar el projecte a la vostra bicicleta i obtenir el valor de la distància recorreguda.

Per a això, podeu utilitzar el codi que es presenta a continuació.

#include #include

/*

Pinos de connexió? Dos bot? Es e sensor reed switch 8 - Sensor Reed Switch 9 - Decremento 12 - Incremento 11 - Enter * /

#define MEMORIA 120

#defineix 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);

sensor bool = 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;

flotant DistKm = 0;

unsigned int raio = 0; flotació Distància = 0;

configuració nul·la ()

{Serial.begin (9600); pinMode (8, INPUT); pinMode (9, INPUT); pinMode (10, INPUT); pinMode (12, INPUT);

lcd.begin (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 ("Distància"); lcd.setCursor (6, 1); lcd.print (Distància);

lcd.setCursor (14, 1);

lcd.print ("km");

raio = EEPROM.read (PosRaio);

}

bucle buit ()

{

// Regiao de codigo para realizar a 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 ++;

Distància = (float) (2 * 3.14 * raio * VoltaCompleta) /100000.0;

lcd.setCursor (0, 1);

lcd.print (""); lcd.setCursor (6, 1); lcd.print (Distància);

lcd.setCursor (14, 1);

lcd.print ("km");

estado_anterior = 0;

}

if (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 (); }}

buida ConfiguraRaio ()

{

byte RaioRoda = 0;

// Imprimir mensagem para digitar o raio em cm

lcd.setCursor (0, 0); lcd.print ("Inserir Raio (cm)");

fer

{

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);

lcd.print (RaioRoda);

} while (BotaoEnter == 0);

lcd.clear ();

EEPROM.write (PosRaio, RaioRoda);

tornar; }

A partir d’aquest codi, possiblement calcularà la vostra distància amb el vostre Arduino.

Pas 4: Conclusió

Per tant, si voleu el vostre propi PCB, podeu obtenir-lo a través d’aquest enllaç al lloc web PCBWay.com. Per a això, podeu accedir al lloc web, crear el vostre compte i obtenir els vostres propis PCB.

El laboratori Silícios agraeix UTSOURCE per oferir els components electrònics per crear aquest projecte.

Recomanat: