Comptaquilòmetres amb bicicleta PCBWay Arduino: 4 passos
Comptaquilòmetres amb bicicleta PCBWay Arduino: 4 passos
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: