Sadržaj:

PCBWay Arduino biciklistički brojač kilometara: 4 koraka
PCBWay Arduino biciklistički brojač kilometara: 4 koraka

Video: PCBWay Arduino biciklistički brojač kilometara: 4 koraka

Video: PCBWay Arduino biciklistički brojač kilometara: 4 koraka
Video: DIY - Turning sign prototype for the bike using Arduino nano 2024, Studeni
Anonim
PCBWay Arduino biciklistički brojač kilometara
PCBWay Arduino biciklistički brojač kilometara

U mnogim vozilima postoje uređaji koji izračunavaju prijeđenu udaljenost i bitni su za prezentiranje informacija vozaču.

Tako je putem ovih informacija moguće nadzirati prijeđenu udaljenost između dviju točaka, na primjer, putem brojača kilometara.

Pribor

01 x PCBWay prilagođena PCB

01 x Arduino UNO - UTSOURCE

01 x LCD 16x2 zaslon - UTSOURCE

01 x Oglasna ploča - UTSOURCE

01 x Žičani kratkospojnici - UTSOURCE

Rotacijski potenciometar 01 x 10kR - UTSOURCE

01 x UTSOURCE Reed Switch - UTSOURCE

Stoga ćemo vas kroz ovaj članak naučiti kako sastaviti uređaj za izračunavanje udaljenosti pomoću osjetnika sklopke za trsku.

Korak 1: Projekt

Projekt
Projekt

Sljedeći projekt nastao je za izračunavanje prijeđene udaljenosti biciklom u teretani. Osim toga, naučit ćete kako stvoriti programiranje za projekt.

Ovaj projekt ima tri funkcionalnosti:

  • Izračunajte prijeđenu udaljenost biciklom;
  • Konfiguracija radijusa pokretanja uređaja;
  • Prilagodljiv svakom biciklu.

Za pristup tim funkcijama korisnik će koristiti tri tipke sustava. Svaki gumb ima svoju funkcionalnost. U sustavu imamo sljedeće gumbe:

Gumb za povećanje: Koristit će se za unos opcije za konfiguriranje radijusa kotača i povećanje vrijednosti radijusa;

Gumb za smanjenje: Koristit će se za smanjenje opcije za konfiguriranje radijusa kotača;

Gumb Enter: Koristit će se za umetanje vrijednosti radijusa u sustav.

Osim toga, imamo senzor sklopke za trstiku. On je odgovoran za otkrivanje kada se kotači potpuno okreću. Da bi se to otkrilo, potrebno je postaviti magnet na kotače.

Reed prekidač prikazan je na gornjoj slici.

Korak 2:

Tako će svaki put kad se magnet približi senzoru aktivirati senzor Reed Switch. Proces funkcionira kroz sljedeću jednadžbu:

Putovana udaljenost = 2 * π * radijus * Broj zavoja

Pomoću ove jednadžbe saznat ćemo koliku je udaljenost prešao bicikl.

U jednadžbu korisnik unosi radijus, a broj okretaja izračunava se kroz broj okretaja kotača.

A za otkrivanje zavoja kotača potrebno je ugraditi magnet u kotač bicikla i postaviti senzor sklopke za trkače blizu kotača.

Kako bismo olakšali proces, stvaramo tiskanu ploču za povezivanje osjetnika sklopke za trstiku i tri gumba. Tiskana ploča predstavljena je dolje na donjoj slici.

3. korak:

Slika
Slika

Kao što je prikazano na PCB -u moguće je vidjeti Arduino Nano. On je odgovoran za kontrolu svih sustava. Osim toga, imamo 5 JST konektora.

Priključci C1 do C4 koriste se za povezivanje tri gumba i osjetnika sklopke za trstiku. Sada se C5 konektor koristi za povezivanje LCD 16x2 I2C.

Stoga, putem ovog sustava, možete instalirati projekt na svoj bicikl i dobiti vrijednost prijeđene udaljenosti.

Za to možete upotrijebiti dolje prikazani kôd.

#include #include

/*

Pinos de conex? O dos bot? Es e senzorski prekidač 8 - senzorski reed prekidač 9 - Decremento 12 - Incremento 11 - Enter */

#definirajte MEMORIJU 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 tekući kristal (rs, en, d4, d5, d6, d7);

bool senzor = 0, estado_anterior = 0, Incremento = 0, Decremento = 0;

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

bajt cont = 0;

bezznačni dugi int VoltaCompleta = 0;

unsigned long int tempo_atual = 0, ultimo_tempo = 0;

plovak DistKm = 0;

bez potpisa int raio = 0; plovak Distancia = 0;

void setup ()

{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

if (EEPROM.čitaj (MEMORIJA)! = 73) {ConfiguraRaio (); EEPROM.pisati (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.čitano (PosRaio);

}

void loop ()

{

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

senzor = digitalno čitanje (ReedSwitch); Decremento = digitalno čitanje (BotaoDecremento); Incremento = digitalno čitanje (BotaoIncremento);

// Regiao de codigo para acumular a distancia percorrida

if (senzor == 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;

}

ako (senzor == 1 && estado_anterior == 0)

{estado_anterior = 1; }

// Regiao de Codigo para Configurar o Raio

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

if (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)");

čini

{

lcd.setCursor (6, 1);

Incremento = digitalno čitanje (BotaoIncremento);

Decremento = digitalno čitanje (BotaoDecremento); BotaoEnter = digitalno čitanje (BotaoEnterOk);

if (Incremento == 1 && IncrementoAnterior == 0)

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

if (Incremento == 0 && IncrementoAnterior == 1)

{IncrementoAnterior = 0; }

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

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

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

{DecrementoAnterior = 0; }

lcd.setCursor (6, 1);

lcd.print (RaioRoda);

} while (BotaoEnter == 0);

lcd.clear ();

EEPROM.write (PosRaio, RaioRoda);

povratak; }

Iz ovog koda moguće će izračunati vašu udaljenost od vašeg Arduina.

Korak 4: Zaključak

Stoga, ako želite vlastiti PCB, možete ga dobiti putem ove veze na web stranici PCBWay.com. U tu svrhu možete pristupiti web stranici, stvoriti svoj račun i nabaviti vlastite PCB -ove.

Silícios Lab zahvaljuje UTSOURCE -u što nudi elektroničke komponente za stvaranje ovog projekta.

Preporučeni: