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, Novembar
Anonim
PCBWay Arduino biciklistički mjerač kilometara
PCBWay Arduino biciklistički mjerač 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 pratiti udaljenost između dvije točke, na primjer, putem brojača kilometara.

Supplies

01 x PCBWay prilagođena PCB

01 x Arduino UNO - UTSOURCE

01 x LCD ekran 16x2 - UTSOURCE

01 x Breadboard - UTSOURCE

01 x Žičani kratkospojnici - UTSOURCE

Rotacijski potenciometar 01 x 10kR - UTSOURCE

01 x UTSOURCE Reed prekidač - UTSOURCE

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

Korak 1: Projekat

Projekat
Projekat

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

Ovaj projekt ima tri funkcionalnosti:

  • Izračunajte udaljenost koju ste prešli biciklom;
  • Konfiguracija radijusa pri pokretanju uređaja;
  • Prilagodljiv svakom biciklu.

Za pristup ovim funkcijama, korisnik će koristiti tri tipke na sistemu. Svako dugme ima svoju funkcionalnost. U sistemu imamo sljedeće tipke:

Dugme za povećanje: Koristiće se za unos opcije za konfigurisanje radijusa točkova i povećanje vrednosti radijusa;

Dugme za smanjenje: Koristi se za smanjenje opcije za konfiguriranje radijusa kotača;

Dugme Enter: Koristiće se za unošenje vrijednosti radijusa u sistem.

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

Trskasti prekidač predstavljen je na gornjoj slici.

Korak 2:

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

Pređena udaljenost = 2 * π * radijus * Broj skretanja

Kroz ovu jednadžbu saznat ćemo koliku je udaljenost prešao bicikl.

U jednadžbi korisnik ubacuje radijus, a broj zavoja 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 postupak, stvaramo tiskanu ploču za povezivanje senzora sklopke za trstiku i tri gumba. Štampana ploča je dole prikazana na donjoj slici.

Korak 3:

Image
Image

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

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

Stoga, putem ovog sistema, možete instalirati projekat na svoj bicikl i dobiti vrijednost pređene udaljenosti.

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

#include #include

/*

Pinos de conex? O dos bot? Es senzor trskasti prekidač 8 - senzorski prekidač 9 - dekremento 12 - povećanje 11 - Enter */

#define MEMORIJA 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 senzor = 0, estado_anterior = 0, Incremento = 0, Decremento = 0;

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

bajt cont = 0;

unsigned long int VoltaCompleta = 0;

unsigned long int tempo_atual = 0, ultimo_tempo = 0;

plovak DistKm = 0;

nepotpisani 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 konfigurator o raio da roda do veiculo

if (EEPROM.čitano (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.čitano (PosRaio);

}

void loop ()

{

// Regiao de codigo para realizar leitura dos botoes and 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;

}

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

do

{

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

return; }

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

Korak 4: Zaključak

Stoga, u slučaju da želite vlastitu PCB, možete 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čuje se: