Kazalo:

Kolesarski števec kilometrov PCBWay Arduino: 4 koraki
Kolesarski števec kilometrov PCBWay Arduino: 4 koraki

Video: Kolesarski števec kilometrov PCBWay Arduino: 4 koraki

Video: Kolesarski števec kilometrov PCBWay Arduino: 4 koraki
Video: UNBOXING GPS MURAH MEILAN M3 MINI 2024, November
Anonim
Kolesarski števec kilometrov PCBWay Arduino
Kolesarski števec kilometrov PCBWay Arduino

V mnogih vozilih obstajajo naprave, ki izračunajo prevoženo razdaljo in so bistvene za predstavitev informacij vozniku.

Tako je s temi informacijami mogoče spremljati prevoženo razdaljo med dvema točkama, na primer s števcem kilometrov v vozilu.

Zaloge

01 x PCBWay PCB po meri

01 x Arduino UNO - UTSOURCE

01 x LCD zaslon 16x2 - UTSOURCE

01 x Okvir - UTSOURCE

01 x Žični skakalci - UTSOURCE

Rotacijski potenciometer 01 x 10kR - UTSOURCE

01 x Reed stikalo UTSOURCE - UTSOURCE

Zato vas bomo v tem članku naučili, kako sestaviti napravo za izračun razdalje s senzorjem trstičnega stikala.

1. korak: Projekt

Projekt
Projekt

Naslednji projekt je bil ustvarjen za izračun prevožene razdalje s kolesom telovadnice. Poleg tega se boste naučili, kako ustvariti programiranje za projekt.

Ta projekt ima tri funkcije:

  • Izračunajte prevoženo razdaljo s kolesom;
  • Konfiguracija polmera zagona naprave;
  • Prilagodljivo vsakemu kolesu.

Za dostop do teh funkcij bo uporabnik uporabil tri gumbe sistema. Vsak gumb ima svojo funkcionalnost. V sistemu imamo naslednje gumbe:

Gumb za povečanje: Uporabil se bo za vnos možnosti za konfiguracijo polmera koles in povečanje vrednosti polmera;

Gumb za zmanjšanje: Uporabil se bo za zmanjšanje možnosti nastavitve polmera koles;

Gumb Enter: Uporablja se za vnos vrednosti polmera v sistem.

Poleg tega imamo senzor trstičnega stikala. Odgovoren je za zaznavanje popolnega obrata koles. Če želite to zaznati, morate na kolesa namestiti magnet.

Reed stikalo je predstavljeno na zgornji sliki.

2. korak:

Tako bo vsakič, ko se magnet približa senzorju, sprožil senzor Reed Switch. Postopek deluje po naslednji enačbi:

Prevožena razdalja = 2 * π * polmer * TurnNumber

Skozi to enačbo bomo vedeli, koliko prevožene razdalje opravi kolo.

V enačbi uporabnik vstavi polmer, število obratov pa izračuna s številom zavojev kolesa.

Za odkrivanje zavojev kolesa je potrebno v kolo vgraditi magnet in senzor trstičnega stikala v bližini kolesa.

Za lažji postopek ustvarimo tiskano vezje za povezavo senzorja stikala Reed in treh gumbov. Tiskano vezje je predstavljeno spodaj na spodnji sliki.

3. korak:

Slika
Slika

Kot je prikazano na tiskanem vezju, je mogoče videti Arduino Nano. Odgovoren je za nadzor vseh sistemov. Poleg tega imamo 5 priključkov JST.

Priključki C1 do C4 se uporabljajo za povezavo treh gumbov in senzorja stikala Reed. Zdaj se priključek C5 uporablja za priključitev LCD 16x2 I2C.

Zato lahko s tem sistemom namestite projekt v svoje kolo in pridobite vrednost prevožene razdalje.

Za to lahko uporabite spodnjo kodo.

#include #include

/*

Pinos de conex? O dos bot? Es e senzorsko stikalo 8 - senzorsko trstično stikalo 9 - dekremento 12 - povečanje 11 - vnesite */

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

LCD tekoči kristal (rs, en, d4, d5, d6, d7);

bool senzor = 0, estado_anterior = 0, povečanje = 0, dekremento = 0;

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

bajt cont = 0;

brez podpisa dolga int VoltaCompleta = 0;

brez podpisa dolg int tempo_atual = 0, ultimo_tempo = 0;

plovec DistKm = 0;

brez podpisa int raio = 0; plavajoča Distancia = 0;

void setup ()

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

lcd.begin (16, 2);

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

if (EEPROM.preberi (MEMORIJA)! = 73) {ConfiguraRaio (); EEPROM.write (MEMORIJA, 73); }

lcd.setCursor (3, 0);

lcd.print ("Distancia"); lcd.setCursor (6, 1); lcd.print (Distancia);

lcd.setCursor (14, 1);

lcd.print ("km");

raio = EEPROM.preberite (PosRaio);

}

void loop ()

{

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

senzor = digitalno branje (ReedSwitch); Decremento = digitalno branje (BotaoDecremento); Incremento = digitalno branje (BotaoIncremento);

// Regiao de codigo para acumular a distancia percorrida

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

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

}

če (senzor == 1 && estado_anterior == 0)

{estado_anterior = 1; }

// Regiao de Codigo para Configurar o Raio

if (Incremento == 1 && EstadoAnteriorIncremento == 0) {EstadoAnteriorIncremento = 1; }

če (Incremento == 0 && EstadoAnteriorIncremento == 1)

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

void ConfiguraRaio ()

{

bajt RaioRoda = 0;

// Imprimir mensagem para digitar o raio em cm

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

naredi

{

lcd.setCursor (6, 1);

Incremento = digitalno branje (BotaoIncremento);

Decremento = digitalno branje (BotaoDecremento); BotaoEnter = digitalno branje (BotaoEnterOk);

če (Incremento == 1 && IncrementoAnterior == 0)

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

če (Incremento == 0 && IncrementoAnterior == 1)

{IncrementoAnterior = 0; }

če (Decremento == 1 && DecrementoAnterior == 0)

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

če (Decremento == 0 && DecrementoAnterior == 1)

{DecrementoAnterior = 0; }

lcd.setCursor (6, 1);

lcd.print (RaioRoda);

} while (BotaoEnter == 0);

lcd.clear ();

EEPROM.write (PosRaio, RaioRoda);

vrnitev; }

Iz te kode bo morda izračunal vašo razdaljo do vašega Arduina.

4. korak: Zaključek

Če torej želite lastno tiskano vezje, jo lahko dobite prek te povezave na spletnem mestu PCBWay.com. V ta namen lahko dostopate do spletnega mesta, ustvarite svoj račun in pridobite lastne tiskane vezje.

Laboratorij Silícios se zahvaljuje podjetju UTSOURCE, ki ponuja elektronske komponente za ustvarjanje tega projekta.

Priporočena: