Cov txheej txheem:

PCBWay Arduino Bicycle Odometer: 4 Kauj Ruam
PCBWay Arduino Bicycle Odometer: 4 Kauj Ruam

Video: PCBWay Arduino Bicycle Odometer: 4 Kauj Ruam

Video: PCBWay Arduino Bicycle Odometer: 4 Kauj Ruam
Video: GPS Speedometer, Neopixel Tachometer, OLED Info designed and build by #Hayri Sponsored by #PCBWay 2024, Lub Xya hli ntuj
Anonim
PCBWay Arduino Tsheb kauj vab Odometer
PCBWay Arduino Tsheb kauj vab Odometer

Hauv ntau lub tsheb, muaj cov cuab yeej uas xam qhov kev mus los thiab yog qhov tseem ceeb rau kev nthuav qhia cov ntaub ntawv rau tus tsav tsheb.

Yog li, dhau los ntawm cov ntaub ntawv no, nws tuaj yeem saib xyuas qhov kev taug kev deb ntawm ob lub ntsiab lus, piv txwv li, los ntawm lub tsheb ntsuas ntsuas.

Khoom siv

01 x PCBWay Custom PCB

01 x Arduino UNO - UTSOURCE

01 x LCD 16x2 Zaub - UTSOURCE

01 x Breadboard - UTSOURCE

01 x Hlau Jumpers - UTSOURCE

01 x 10kR Rotary Potentiometer - UTSOURCE

01 x UTSOURCE Reed Hloov - UTSOURCE

Yog li ntawd, dhau ntawm kab lus no, peb yuav qhia koj yuav ua li cas sib sau koj lub cuab yeej suav nrug siv lub reed hloov sensor.

Kauj Ruam 1: Txoj Haujlwm

Txoj Haujlwm
Txoj Haujlwm

Cov haujlwm hauv qab no tau tsim los laij cov kev mus los ntawm lub tsheb kauj vab ntawm lub chaw dhia ua si. Ib qho ntxiv, koj yuav kawm paub tsim cov phiaj xwm rau txoj haujlwm.

Txoj haujlwm no muaj peb lub luag haujlwm:

  • Xam qhov kev mus los ntawm lub tsheb kauj vab;
  • Ntaus Pib Pib Radius Configuration;
  • Haum rau txhua lub tsheb kauj vab.

Txhawm rau nkag mus rau cov haujlwm no, tus neeg siv yuav siv peb lub khawm ntawm lub kaw lus. Txhua lub pob muaj koj lub luag haujlwm. Hauv qhov system peb muaj cov nyees khawm hauv qab no:

Nthuav Pob: Nws yuav siv los nkag rau hauv qhov kev xaiv los teeb tsa lub vojvoog ntawm lub log thiab nce tus nqi hluav taws xob;

Khawm Hloov: Nws yuav raug siv los txo qhov kev xaiv los teeb tsa lub vojvoog ntawm lub log;

Nkag mus khawm: Nws yuav raug siv los ntxig tus nqi hluav taws xob hauv kab ke.

Ib qho ntxiv, peb muaj Reed Switch Sensor. Nws yog lub luag haujlwm los tshuaj xyuas thaum lub log ua tiav tig. Txhawm rau txheeb xyuas qhov no, nws yuav tsum tau teeb tsa cov hlau nplaum ntawm lub log.

Reed Hloov tau nthuav tawm hauv daim duab saum toj no.

Kauj ruam 2:

Yog li, txhua lub sijhawm cov hlau nplaum txav mus rau lub sensor, nws yuav ua rau Reed Hloov sensor. Cov txheej txheem ua haujlwm los ntawm cov kab zauv hauv qab no:

Taug Kev Mus Deb = 2 * π * radius * TurnNumber

Los ntawm qhov kev ua zauv no, peb yuav paub tias kev caij tsheb kauj vab nrug deb li cas.

Hauv qhov kev ua zauv, lub vojvoog tau ntxig los ntawm tus neeg siv, thiab Turn Number tau suav los ntawm tus lej tig ntawm lub log.

Thiab txhawm rau txheeb xyuas qhov tig ntawm lub log xav tau txhawm rau txhim kho cov hlau nplaum hauv lub log tsheb kauj vab thiab txhawm rau txhim kho Reed Hloov Sensor ze Lub Log.

Kom yooj yim dua cov txheej txheem, peb tsim cov ntawv luam tawm Circuit Board los txuas rau Reed Switch Sensor thiab peb lub khawm. Cov Luam Circuit Court Board tau nthuav tawm hauv qab no hauv Daim Duab hauv qab no.

Kauj ruam 3:

Duab
Duab

Raws li tau qhia hauv PCB tuaj yeem pom Arduino Nano. Nws yog lub luag haujlwm los tswj txhua lub tshuab. Ib qho ntxiv, peb muaj 5 JST txuas.

C1 txog C4 txuas tau siv los txuas peb lub khawm thiab Reed Hloov Sensor. Tam sim no, C5 Connector tau siv los txuas LCD 16x2 I2C.

Yog li ntawd, los ntawm cov kab ke no, koj tuaj yeem teeb tsa qhov project hauv koj lub tsheb kauj vab thiab tau txais cov nqi taug kev deb.

Rau qhov no, koj tuaj yeem siv cov cai uas tau hais hauv qab no.

#ncig #ncig

/*

Pinos de conex? O dos bot? Es e sensor reed hloov 8 - Sensor Reed Hloov 9 - Decremento 12 - nce 11 - Nkag */

#define MEMORIA 120

#define PosRaio 125

#Txhais 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 cov = 0;

unsigned ntev int VoltaCompleta = 0;

unsigned ntev int tempo_atual = 0, ultimo_tempo = 0;

ntab DistKm = 0;

unsigned int raio = 0; ntab Distancia = 0;

void teeb tsa ()

{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

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

}

void lub voj ()

{

// Regiao de codigo para realizar leitura dos botoes e sensor do dispositivo

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

// Regiao de codigo para acumular a distancia percorrida

yog (sensor == 0 && estado_anterior == 1) {VoltaCompleta ++;

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

}

yog (sensor == 1 && estado_anterior == 0)

{estado_anterior = 1; }

// Regiao de Codigo rau Configurar o Raio

yog (incremento == 1 && EstadoAnteriorIncremento == 0) {EstadoAnteriorIncremento = 1; }

yog (nce ntxiv == 0 && EstadoAnteriorIncremento == 1)

{EstadoAnteriorIncremento = 0; lcd.clear (); ConfiguraRaio (); }}

tsis muaj dab tsi ConfiguraRaio ()

{

byte RaioRoda = 0;

// Imprimir mensagem para digitar o raio em cm

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

ua

{

lcd.setCursor (6, 1);

Nce = digitalRead (BotaoIncremento);

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

yog (incremento == 1 && incrementoAnterior == 0)

{RaioRoda = RaioRoda + 1; Nce ntxiv = 1; }

yog (incremento == 0 && incrementoAnterior == 1)

{IncrementoAnterior = 0; }

yog (Decremento == 1 && DecrementoAnterior == 0)

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

yog (Decremento == 0 && DecrementoAnterior == 1)

{DecrementoAnterior = 0; }

lcd.setCursor (6, 1);

lcd.print (RaioRoda);

} thaum (BotaoEnter == 0);

lcd.clear ();

EEPROM.write (PosRaio, RaioRoda);

rov qab; }

Los ntawm cov cai no nws yuav xam koj qhov nrug nrog koj Arduino.

Kauj Ruam 4: Xaus

Yog li, rooj plaub koj xav tau koj tus kheej PCB, koj tuaj yeem tau txais los ntawm qhov txuas no ntawm PCBWay.com lub vev xaib. Rau qhov no, koj tuaj yeem nkag mus rau lub vev xaib, tsim koj tus as khauj, thiab tau txais koj tus kheej PCB's.

Silícios Lab ua tsaug UTSOURCE los muab cov khoom siv hluav taws xob los tsim txoj haujlwm no.

Pom zoo: