Satura rādītājs:

PCBWay Arduino velosipēda odometrs: 4 soļi
PCBWay Arduino velosipēda odometrs: 4 soļi

Video: PCBWay Arduino velosipēda odometrs: 4 soļi

Video: PCBWay Arduino velosipēda odometrs: 4 soļi
Video: Как сделать платформенный левитрон своими руками. Краткое руководство. "Levitron" (PCBWay) 2024, Novembris
Anonim
PCBWay Arduino velosipēda odometrs
PCBWay Arduino velosipēda odometrs

Daudzos transportlīdzekļos ir ierīces, kas aprēķina nobraukto attālumu un ir būtiskas informācijas sniegšanai vadītājam.

Tādējādi, izmantojot šo informāciju, ir iespējams kontrolēt nobraukto attālumu starp diviem punktiem, piemēram, izmantojot transportlīdzekļa odometru.

Piegādes

01 x PCBWay pielāgota PCB

01 x Arduino UNO - UTSOURCE

01 x LCD 16x2 displejs - UTSOURCE

01 x maizes dēlis - UTSOURCE

01 x vadu džemperi - UTSOURCE

01 x 10 kR rotācijas potenciometrs - UTSOURCE

01 x UTSOURCE Reed slēdzis - UTSOURCE

Tāpēc šajā rakstā mēs iemācīsim jums salikt attāluma aprēķināšanas ierīci, izmantojot niedru slēdža sensoru.

1. solis: projekts

Projekts
Projekts

Lai aprēķinātu sporta zāles velosipēdu nobraukto attālumu, tika izveidots šāds projekts. Turklāt jūs uzzināsit, kā izveidot programmēšanu projektam.

Šim projektam ir trīs funkcijas:

  • Aprēķināt ar velosipēdu nobraukto attālumu;
  • Ierīces palaišanas rādiusa konfigurācija;
  • Pielāgojams jebkuram velosipēdam.

Lai piekļūtu šīm funkcijām, lietotājs izmantos trīs sistēmas pogas. Katrai pogai ir sava funkcionalitāte. Sistēmā mums ir šādas pogas:

Palielināšanas poga: tā tiks izmantota, lai ievadītu iespēju konfigurēt riteņu rādiusu un palielināt rādiusa vērtību;

Samazināšanas poga: to izmantos, lai samazinātu iespēju konfigurēt riteņu rādiusu;

Ievadīšanas poga: tā tiks izmantota, lai sistēmā ievietotu rādiusa vērtību.

Turklāt mums ir niedru slēdža sensors. Tā ir atbildīga, lai noteiktu, kad riteņi veic pilnu pagriezienu. Lai to noteiktu, uz riteņiem jāuzstāda magnēts.

Niedru slēdzis ir parādīts attēlā iepriekš.

2. darbība:

Tādējādi katru reizi, kad magnēts tuvojas sensoram, tas iedarbinās Reed Switch sensoru. Process darbojas, izmantojot šādu vienādojumu:

Braucamais attālums = 2 * π * rādiuss * Pagrieziena numurs

Izmantojot šo vienādojumu, mēs uzzināsim, kāds ir velosipēda nobrauktais attālums.

Vienādojumā rādiusu ievieto lietotājs, un pagrieziena numuru aprēķina, izmantojot riteņa pagriezienu skaitu.

Un, lai noteiktu riteņa pagriezienus, ir nepieciešams uzstādīt magnētu velosipēda ritenī un uzstādīt niedres slēdža sensoru pie riteņa.

Lai atvieglotu procesu, mēs izveidojam iespiedshēmas plati, lai savienotu Reed Switch sensoru un trīs pogas. Iespiestā shēma ir parādīta zemāk redzamajā attēlā.

3. darbība:

Attēls
Attēls

Kā parādīts PCB, ir iespējams redzēt Arduino Nano. Tā ir atbildīga par visu sistēmu kontroli. Turklāt mums ir 5 JST savienotāji.

C1 līdz C4 savienotāji tiek izmantoti, lai savienotu trīs pogas un Reed Switch sensoru. Tagad C5 savienotājs tiek izmantots, lai savienotu LCD 16x2 I2C.

Tāpēc, izmantojot šo sistēmu, jūs varat instalēt projektu savā velosipēdā un iegūt nobrauktā attāluma vērtību.

Šim nolūkam varat izmantot zemāk redzamo kodu.

#iekļaut #iekļaut

/*

Pinos de conex? O dos bot? Es e sensoru niedru slēdzis 8 - Sensor Reed Switch 9 - Decremento 12 - Incrementto 11 - Enter */

#define MEMORIA 120

#definējiet 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);

boola sensors = 0, estado_anterior = 0, pieaugums = 0, samazinājums = 0;

bool IncrementoAnterior = 0, DecrementoAnterior = 0, BotaoEnter = 0, EstadoAnteriorIncremento = 0;

baitu kont = 0;

neparakstīts garš int VoltaCompleta = 0;

neparakstīts garš int tempo_atual = 0, ultimo_tempo = 0;

pludiņš DistKm = 0;

neparakstīts int raio = 0; pludiņš Distancia = 0;

anulēts iestatījums ()

{Sērijas sākums (9600); pinMode (8, INPUT); pinMode (9, INPUT); pinMode (10, INPUT); pinMode (12, INPUT);

lcd. sākums (16, 2);

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

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

}

tukša cilpa ()

{

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

sensors = digitalRead (ReedSwitch); Decremento = digitalRead (BotaoDecremento); Palielinājums = digitalRead (BotaoIncremento);

// Regiao de codigo para acumular and distancia percorrida

ja (sensors == 0 && estado_anterior == 1) {VoltaCompleta ++;

Distancia = (pludiņš) (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;

}

ja (sensors == 1 && estado_anterior == 0)

{estado_anterior = 1; }

// Regiao de Codigo para Configurar o Raio

ja (pieaugums == 1 && EstadoAnteriorIncremento == 0) {EstadoAnteriorIncremento = 1; }

ja (pieaugums == 0 && EstadoAnteriorIncremento == 1)

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

anulēts ConfiguraRaio ()

{

baits RaioRoda = 0;

// Imprimir mensagem para digitar o raio em cm

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

darīt

{

lcd.setCursor (6, 1);

Pieaugums = digitalRead (BotaoIncremento);

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

ja (pieaugums == 1 && palielinājumsAnterior == 0)

{RaioRoda = RaioRoda + 1; IncrementoAnterior = 1; }

ja (pieaugums == 0 && palielinājums

{IncrementoAnterior = 0; }

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

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

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

{DecrementoAnterior = 0; }

lcd.setCursor (6, 1);

lcd.print (RaioRoda);

} while (BotaoEnter == 0);

lcd.clear ();

EEPROM.write (PosRaio, RaioRoda);

atgriešanās; }

No šī koda tas, iespējams, aprēķinās jūsu attālumu ar jūsu Arduino.

4. solis. Secinājums

Tāpēc, ja vēlaties savu PCB, varat to iegūt, izmantojot šo saiti vietnē PCBWay.com. Šim nolūkam varat piekļūt vietnei, izveidot savu kontu un iegūt savu PCB.

Silícios Lab pateicas UTSOURCE, lai piedāvātu elektroniskos komponentus šī projekta izveidošanai.

Ieteicams: