Isi kandungan:

Odometer Basikal PCBWay Arduino: 4 Langkah
Odometer Basikal PCBWay Arduino: 4 Langkah

Video: Odometer Basikal PCBWay Arduino: 4 Langkah

Video: Odometer Basikal PCBWay Arduino: 4 Langkah
Video: Arduino GPS Speedometer with Analog Gauge 2024, Julai
Anonim
Odometer Basikal PCBWay Arduino
Odometer Basikal PCBWay Arduino

Di banyak kenderaan, terdapat alat yang mengira jarak perjalanan dan penting untuk menyampaikan maklumat kepada pemandu.

Oleh itu, melalui maklumat ini, adalah mungkin untuk memantau jarak perjalanan antara dua titik, misalnya, melalui odometer kenderaan.

Bekalan

01 x PCBBiasa PCB

01 x Arduino UNO - UTSOURCE

01 x Paparan LCD 16x2 - PENGGUNAAN

01 x Papan Roti - UTSOURCE

01 x Wire Jumpers - PENGGUNAAN

Potensiometer Rotary 01 x 10kR - PENGGUNAAN

01 x UTSOURCE Reed Switch - UTSOURCE

Oleh itu, melalui artikel ini, kami akan mengajar anda cara memasang peranti pengiraan jarak anda menggunakan sensor suis buluh.

Langkah 1: Projek

Projek
Projek

Projek berikut dibuat untuk mengira jarak perjalanan dengan basikal gimnasium. Di samping itu, anda akan belajar bagaimana membuat pengaturcaraan untuk projek tersebut.

Projek ini mempunyai tiga fungsi:

  • Hitung jarak yang dilalui dengan basikal;
  • Konfigurasi Radius Permulaan Peranti;
  • Boleh disesuaikan dengan basikal mana pun.

Untuk mengakses fungsi ini, pengguna akan menggunakan tiga butang sistem. Setiap butang mempunyai fungsi anda. Dalam sistem kami mempunyai butang berikut:

Tombol Kenaikan: Ini akan digunakan untuk memasukkan pilihan untuk mengkonfigurasi jari-jari roda dan meningkatkan nilai radius;

Butang Penurunan: Ia akan digunakan untuk mengurangkan pilihan untuk mengkonfigurasi jari-jari roda;

Butang Enter: Ia akan digunakan untuk memasukkan nilai jejari dalam sistem.

Di samping itu, kami mempunyai Reed Switch Sensor. Ia bertanggungjawab untuk mengesan bila roda berpusing sepenuhnya. Untuk mengesannya, perlu memasang magnet pada roda.

Suis Reed ditunjukkan dalam Rajah di atas.

Langkah 2:

Oleh itu, setiap kali magnet mendekati sensor, ia akan menggerakkan sensor Reed Switch. Prosesnya melalui persamaan berikut:

Jarak Perjalanan = 2 * π * jejari * Angka Pusing

Melalui persamaan ini, kita akan mengetahui berapa jarak perjalanan yang dilakukan oleh basikal.

Dalam persamaan, jejari dimasukkan oleh pengguna, dan Angka Giliran dikira melalui jumlah putaran roda.

Dan untuk mengesan putaran roda diperlukan untuk memasang magnet di roda basikal dan memasang Reed Switch Sensor berhampiran Roda.

Untuk mempermudah prosesnya, kami membuat papan litar bercetak untuk menyambungkan Reed Switch Sensor dan tiga butang. Papan Litar Bercetak ditunjukkan dalam Gambar di bawah.

Langkah 3:

Imej
Imej

Seperti yang ditunjukkan dalam PCB adalah mungkin untuk melihat Arduino Nano. Ia bertanggungjawab untuk mengawal semua sistem. Di samping itu, kami mempunyai 5 penyambung JST.

Penyambung C1 hingga C4 digunakan untuk menyambungkan tiga butang dan Reed Switch Sensor. Kini, Penyambung C5 digunakan untuk menyambungkan LCD 16x2 I2C.

Oleh itu, melalui sistem ini, anda boleh memasang projek dalam basikal anda dan mendapatkan nilai jarak perjalanan.

Untuk ini, anda boleh menggunakan kod yang ditunjukkan di bawah.

#sertakan #sertakan

/*

Pinos de conex? O dos bot? Es e sensor reed 8 - Sensor Reed Switch 9 - Decremento 12 - Incremento 11 - Enter * /

#tentukan MEMORIA 120

#tentukan PosRaio 125

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

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

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

bait samb = 0;

VoltaCompleta int panjang yang tidak ditandatangani = 0;

into tempo_atual panjang yang tidak ditandatangani = 0, ultimo_tempo = 0;

terapung DistKm = 0;

int raio yang tidak ditandatangani = 0; terapung Distancia = 0;

persediaan tidak sah ()

{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

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

}

gelung kosong ()

{

// Regiao de codigo untuk merealisasikan leitura dos botoes e sensor do dispositivo

sensor = digitalRead (ReedSwitch); Decremento = digitalRead (BotaoDecremento); Incremento = digitalRead (BotaoIncremento);

// Regiao de codigo para acumular a distancia percorrida

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

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

}

jika (sensor == 1 && estado_anterior == 0)

{estado_anterior = 1; }

// Regiao de Codigo para Configurar o Raio

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

jika (Incremento == 0 && EstadoAnteriorIncremento == 1)

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

batal ConfiguraRaio ()

{

bait RaioRoda = 0;

// Imprimir mensagem para digitar o raio em cm

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

buat

{

lcd.setCursor (6, 1);

Incremento = digitalRead (BotaoIncremento);

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

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

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

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

{IncrementoAnterior = 0; }

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

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

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

{DecrementoAnterior = 0; }

lcd.setCursor (6, 1);

lcd.print (RaioRoda);

} sementara (BotaoEnter == 0);

lcd.clear ();

EEPROM.write (PosRaio, RaioRoda);

kembali; }

Dari kod ini mungkin akan mengira jarak anda dengan Arduino anda.

Langkah 4: Kesimpulannya

Oleh itu, sekiranya anda mahukan PCB anda sendiri, anda boleh mendapatkannya melalui pautan ini di laman web PCBWay.com. Untuk ini, anda boleh mengakses laman web, membuat akaun anda, dan mendapatkan PCB sendiri.

Makmal Silícios mengucapkan terima kasih UTSOURCE untuk menawarkan komponen elektronik untuk membuat projek ini.

Disyorkan: