Turinys:

„PCBWay Arduino“dviračių odometras: 4 žingsniai
„PCBWay Arduino“dviračių odometras: 4 žingsniai

Video: „PCBWay Arduino“dviračių odometras: 4 žingsniai

Video: „PCBWay Arduino“dviračių odometras: 4 žingsniai
Video: Велосипед с пропеллером😳 2024, Liepa
Anonim
„PCBWay Arduino“dviračių odometras
„PCBWay Arduino“dviračių odometras

Daugelyje transporto priemonių yra įrenginių, kurie apskaičiuoja nuvažiuotą atstumą ir yra būtini norint vairuotojui pateikti informaciją.

Taigi, naudojant šią informaciją, galima stebėti atstumą, nuvažiuotą tarp dviejų taškų, pavyzdžiui, naudojant transporto priemonės odometrą.

Prekės

01 x PCBWay pasirinktinė PCB

01 x „Arduino UNO - UTSOURCE“

01 x LCD 16x2 ekranas - UTSOURCE

01 x Duonos lenta - UTSOURCE

01 x vielos megztiniai - UTSOURCE

01 x 10 kR sukamasis potenciometras - UTSOURCE

01 x UTSOURCE Reed jungiklis - UTSOURCE

Todėl šiame straipsnyje mes išmokysime jus surinkti atstumo skaičiavimo įrenginį naudojant nendrinio jungiklio jutiklį.

1 žingsnis: projektas

Projektas
Projektas

Šis projektas buvo sukurtas norint apskaičiuoti nuvažiuotą atstumą sporto salės dviračiu. Be to, išmoksite kurti projekto programavimą.

Šis projektas turi tris funkcijas:

  • Apskaičiuokite dviračiu nuvažiuotą atstumą;
  • Įrenginio paleidimo spindulio konfigūracija;
  • Tinka bet kokiam dviračiui.

Norėdami naudotis šiomis funkcijomis, vartotojas naudosis trimis sistemos mygtukais. Kiekvienas mygtukas turi savo funkcijas. Sistemoje turime šiuos mygtukus:

Padidinimo mygtukas: jis bus naudojamas norint įvesti ratų spindulio konfigūravimo ir spindulio vertės padidinimo parinktį;

Sumažinimo mygtukas: jis bus naudojamas ratų spindulio konfigūravimo galimybei sumažinti;

Įvesties mygtukas: jis bus naudojamas įterpti spindulio vertę į sistemą.

Be to, mes turime „Reed Switch“jutiklį. Ji yra atsakinga už aptikimą, kada ratai sukasi visiškai. Norėdami tai nustatyti, ant ratų reikia sumontuoti magnetą.

„Reed“jungiklis pateiktas aukščiau esančiame paveikslėlyje.

2 žingsnis:

Taigi kiekvieną kartą, kai magnetas priartėja prie jutiklio, jis suaktyvins „Reed Switch“jutiklį. Procesas veikia pagal šią lygtį:

Nuvažiuotas atstumas = 2 * π * spindulys * posūkio numeris

Pagal šią lygtį mes žinosime, koks dviračio nuvažiuotas atstumas.

Į lygtį spindulį įterpia vartotojas, o posūkio skaičius apskaičiuojamas pagal rato apsisukimų skaičių.

Norint aptikti rato posūkius, reikia į dviračio ratą sumontuoti magnetą ir šalia rato sumontuoti „Reed Switch“jutiklį.

Norėdami palengvinti procesą, sukuriame spausdintinę plokštę, jungiančią „Reed Switch“jutiklį ir tris mygtukus. Spausdintinė plokštė pateikta žemiau esančiame paveikslėlyje.

3 žingsnis:

Vaizdas
Vaizdas

Kaip parodyta PCB, galima pamatyti „Arduino Nano“. Ji yra atsakinga už visų sistemų valdymą. Be to, turime 5 JST jungtis.

C1 iki C4 jungtys naudojamos trims mygtukams ir „Reed Switch“jutikliui sujungti. Dabar C5 jungtis naudojama LCD 16x2 I2C prijungimui.

Todėl per šią sistemą galite įdiegti projektą savo dviračiu ir gauti nuvažiuoto atstumo vertę.

Tam galite naudoti žemiau pateiktą kodą.

#įtraukti #įtraukti

/*

Pinos de conex? O dos bot? Es e jutiklio perjungimo jungiklis 8 - jutiklio nendrinis jungiklis 9 - sumažėjimas 12 - padidinimas 11 - įvedimas */

#define MEMORIA 120

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

bool jutiklis = 0, estado_anterior = 0, padidėjimas = 0, sumažėjimas = 0;

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

baitų kont = 0;

unsigned long int VoltaCompleta = 0;

nepasirašytas ilgas int tempo_atual = 0, ultimo_tempo = 0;

plūdė DistKm = 0;

nepasirašytas int raio = 0; plūdė Distancia = 0;

negaliojanti sąranka ()

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

LCD. pradžia (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 („Distancia“); lcd.setCursor (6, 1); lcd.print („Distancia“);

lcd.setCursor (14, 1);

lcd.print („km“);

raio = EEPROM.read (PosRaio);

}

tuštumos kilpa ()

{

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

jutiklis = digitalRead (ReedSwitch); Decremento = digitalRead (BotaoDecremento); Prieaugis = digitalRead (BotaoIncremento);

Regioo de codigo para acumular a distancia percorrida

if (jutiklis == 0 && estado_anterior == 1) {VoltaCompleta ++;

Distancia = (plūdė) (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;

}

jei (jutiklis == 1 && estado_anterior == 0)

{estado_anterior = 1; }

// Regiao de Codigo para Configurar o Raio

if (padidėjimas == 1 && EstadoAnteriorIncremento == 0) {EstadoAnteriorIncremento = 1; }

jei (padidėjimas == 0 && EstadoAnteriorIncremento == 1)

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

void ConfiguraRaio ()

{

baitas RaioRoda = 0;

// Imprimir mensagem para digitar o raio em cm

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

daryti

{

lcd.setCursor (6, 1);

Prieaugis = digitalRead (BotaoIncremento);

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

jei (padidėjimas == 1 && padidinimasAnterior == 0)

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

jei (padidėjimas == 0 && padidinimasAnterior == 1)

{IncrementoAnterior = 0; }

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

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

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

{DecrementoAnterior = 0; }

lcd.setCursor (6, 1);

lcd.print („RaioRoda“);

} while (BotaoEnter == 0);

lcd.clear ();

EEPROM.write (PosRaio, RaioRoda);

grįžti; }

Pagal šį kodą jis gali apskaičiuoti jūsų atstumą su „Arduino“.

4 žingsnis: Išvada

Todėl, jei norite savo PCB, galite gauti šią nuorodą PCBWay.com svetainėje. Norėdami tai padaryti, galite pasiekti svetainę, susikurti paskyrą ir įsigyti savo PCB.

„Silícios Lab“dėkoja UTSOURCE, pasiūliusiam elektroninius komponentus šiam projektui sukurti.

Rekomenduojamas: