Përmbajtje:

Odometri i biçikletës PCBWay Arduino: 4 hapa
Odometri i biçikletës PCBWay Arduino: 4 hapa

Video: Odometri i biçikletës PCBWay Arduino: 4 hapa

Video: Odometri i biçikletës PCBWay Arduino: 4 hapa
Video: Arduino GPS Speedometer with Analog Gauge 2024, Nëntor
Anonim
Odometër biçikletash PCBWay Arduino
Odometër biçikletash PCBWay Arduino

Në shumë automjete, ka pajisje që llogaritin distancën e përshkuar dhe janë thelbësore për paraqitjen e informacionit tek shoferi.

Kështu, përmes këtij informacioni, është e mundur të monitorohet distanca e përshkuar midis dy pikave, për shembull, përmes odometrit të automjetit.

Furnizimet

01 x PCBWay PCB me porosi

01 x Arduino UNO - UTSOURCE

01 x Ekran LCD 16x2 - UTSOURCE

01 x Breadboard - UTSOURCE

01 x Jumpers Wire - UTSOURCE

Potenciometër rrotullues 01 x 10kR - UTSOURCE

01 x UTSOURCE Ndërprerës kallami - UTSOURCE

Prandaj, përmes këtij artikulli, ne do t'ju mësojmë se si të montoni pajisjen tuaj të llogaritjes së distancës duke përdorur sensorin e kalimit të kallamit.

Hapi 1: Projekti

Projekti
Projekti

Projekti i mëposhtëm u krijua për të llogaritur distancën e përshkuar me biçikletën e palestrës. Përveç kësaj, do të mësoni se si të krijoni programim për projektin.

Ky projekt ka tre funksione:

  • Llogaritni distancën e përshkuar me biçikletë;
  • Konfigurimi i rrezeve të fillimit të pajisjes;
  • I përshtatshëm për çdo biçikletë.

Për të hyrë në këto funksionalitete, përdoruesi do të përdorë tre butonat e sistemit. Çdo buton ka funksionalitetin tuaj. Në sistem kemi butonat e mëposhtëm:

Butoni i Rritjes: Do të përdoret për të futur në opsionin për të konfiguruar rrezen e rrotave dhe për të rritur vlerën e rrezes;

Butoni i zbritjes: Do të përdoret për të zvogëluar opsionin për të konfiguruar rrezen e rrotave;

Butoni Enter: Do të përdoret për të futur vlerën e rrezes në sistem.

Përveç kësaj, ne kemi sensorin e kalimit të kallamit. Shtë përgjegjës për të zbuluar kur rrotat bëjnë një kthesë të plotë. Për ta zbuluar këtë, duhet të instaloni një magnet në rrota.

Ndërprerësi i kallamishteve paraqitet në Figurën e mësipërme.

Hapi 2:

Kështu, sa herë që magneti i afrohet sensorit, ai do të aktivizojë sensorin Reed Switch. Procesi funksionon përmes ekuacionit të mëposhtëm:

Distanca e Udhëtuar = 2 * π * rreze * TurnNumber

Përmes këtij ekuacioni, ne do të dimë se cila është distanca e përshkuar e kryer nga biçikleta.

Në ekuacion, rrezja futet nga përdoruesi, dhe Numri i Kthesës llogaritet përmes numrit të kthesave të rrotës.

Dhe për të zbuluar kthesat e rrotës nevojitet për të instaluar një magnet në timonin e biçikletës dhe për të instaluar sensorin e kalimit të kallamit pranë Rrotës.

Për të lehtësuar procesin, ne krijojmë një tabelë qarku të shtypur për të lidhur sensorin e kalimit të kallamishteve dhe tre butonat. Bordi i Qarkut të Shtypur është paraqitur më poshtë në Figurën më poshtë.

Hapi 3:

Imazhi
Imazhi

Siç tregohet në PCB është e mundur të shihni Arduino Nano. Shtë përgjegjës për të kontrolluar të gjitha sistemet. Përveç kësaj, ne kemi 5 lidhje JST.

Lidhësit C1 deri në C4 përdoren për të lidhur tre butonat dhe sensorin e kalimit Reed. Tani, C5 Connector përdoret për të lidhur LCD 16x2 I2C.

Prandaj, përmes këtij sistemi, ju mund ta instaloni projektin në biçikletën tuaj dhe të merrni vlerën e distancës së përshkuar.

Për këtë, mund të përdorni kodin e paraqitur më poshtë.

#përfshi #përfshi

/*

Pinos de conex? O dos bot? Es e kaloni i kallamit të sensorit 8 - Ndërprerës i kallamit të sensorit 9 - Dekret 12 - Rritje 11 - Shkruani */

#përcakto MEMORIA 120

#përcaktoni PosRaio 125

#përcaktoni ReedSwitch 8

#përcakto BotaoEnterOk 11 #përcakto BotaoIncremento 12 #përcakto 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;

bajt kont = 0;

int pa shenjë gjatë VoltaCompleta = 0;

i panënshkruar i gjatë int tempo_atual = 0, ultimo_tempo = 0;

noton DistKm = 0;

int raio pa shenjë = 0; noton Distancia = 0;

void setup ()

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

lcd.filloni (16, 2);

// Regiao de codigo para configurar o raio da roda do veiculo

nëse (EEPROM.lex (MEMORIA)! = 73) {ConfiguraRaio (); EEPROM.shkruaj (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.lex (PosRaio);

}

lak void ()

{

// Regiao de codigo para realizar a leitura dos botoes dhe sensor do disponimi

sensor = digitalRead (ReedSwitch); Decremento = digitalRead (BotaoDecremento); Rritje = digitalRead (BotaoIncremento);

// Regiao de codigo para acumular a distancia percorrida

nëse (sensor == 0 && estado_anterior == 1) {VoltaCompleta ++;

Distancia = (noton) (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;

}

nëse (sensor == 1 && estado_anterior == 0)

{estado_anterior = 1; }

// Regiao de Codigo para Configurar o Raio

nëse (Rritje == 1 && EstadoAnteriorIncremento == 0) {EstadoAnteriorIncremento = 1; }

nëse (Rritje == 0 && EstadoAnteriorIncremento == 1)

{EstadoAnteriorIncremento = 0; lcd.qartë (); ConfiguraRaio (); }}

i pavlefshëm ConfiguraRaio ()

{

byte RaioRoda = 0;

// Imprimir mensagem para digitar o raio em cm

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

bëj

{

lcd.setCursor (6, 1);

Rritje = digitalRead (BotaoIncremento);

Decremento = digitalRead (BotaoDecremento); BotaoEnter = digitalRead (BotaoEnterOk);

nëse (Rritja == 1 && RritjaAnterior == 0)

{RaioRoda = RaioRoda + 1; RritjeAnterior = 1; }

nëse (Rritja == 0 && RritjaAnterior == 1)

{RritjaAnterior = 0; }

nëse (Decremento == 1 && DecrementoAnterior == 0)

{RaioRoda = RaioRoda - 1; DecrementoAnterior = 1; }

nëse (Decremento == 0 && DecrementoAnterior == 1)

{DecrementoAnterior = 0; }

lcd.setCursor (6, 1);

lcd.print (RaioRoda);

} ndërsa (BotaoEnter == 0);

lcd.qartë ();

EEPROM.shkruaj (PosRaio, RaioRoda);

kthim; }

Nga ky kod ndoshta do të llogarisë distancën tuaj me Arduino -n tuaj.

Hapi 4: Përfundimi

Prandaj, nëse dëshironi PCB -në tuaj, mund ta merrni përmes kësaj lidhjeje në faqen e internetit të PCBWay.com. Për këtë, ju mund të hyni në faqen e internetit, të krijoni llogarinë tuaj dhe të merrni PCB -të tuaja.

Laboratori Silícios falënderon UTSOURCE për të ofruar komponentët elektronikë për të krijuar këtë projekt.

Recommended: