İçindekiler:

PCBWay Arduino Bisiklet Kilometre Sayacı: 4 Adım
PCBWay Arduino Bisiklet Kilometre Sayacı: 4 Adım

Video: PCBWay Arduino Bisiklet Kilometre Sayacı: 4 Adım

Video: PCBWay Arduino Bisiklet Kilometre Sayacı: 4 Adım
Video: Arduino GSM/GPS Sim808 Tutorial #3 Receiving Location Info As a Message #PCBWAY 2024, Temmuz
Anonim
PCBWay Arduino Bisiklet Kilometre Sayacı
PCBWay Arduino Bisiklet Kilometre Sayacı

Birçok araçta kat edilen mesafeyi hesaplayan ve sürücüye bilgi sunmak için gerekli olan cihazlar bulunmaktadır.

Böylece bu bilgiler aracılığıyla, örneğin araç kilometre sayacı aracılığıyla iki nokta arasında kat edilen mesafeyi izlemek mümkündür.

Gereçler

01 x PCBWay Özel PCB

01 x Arduino UNO - UTSOURCE

01 x LCD 16x2 Ekran - UTSOURCE

01 x Breadboard - UTSOURCE

01 x Tel Jumper'lar - UTSOURCE

01 x 10kR Döner Potansiyometre - UTSOURCE

01 x UTSOURCE Manyetik Anahtar - UTSOURCE

Bu nedenle, bu makale aracılığıyla, reed switch sensörünü kullanarak mesafe hesaplama cihazınızı nasıl monte edeceğinizi öğreteceğiz.

Adım 1: Proje

Proje
Proje

Spor salonunun bisikletinin kat ettiği mesafeyi hesaplamak için aşağıdaki proje oluşturuldu. Ayrıca, proje için programlamayı nasıl oluşturacağınızı öğreneceksiniz.

Bu projenin üç işlevi vardır:

  • Bisikletle kat edilen mesafeyi hesaplayın;
  • Cihaz Başlangıç Yarıçap Yapılandırması;
  • Her bisiklete uyarlanabilir.

Bu işlevlere erişmek için kullanıcı, sistemin üç düğmesini kullanacaktır. Her düğme sizin işlevselliğinize sahiptir. Sistemde aşağıdaki butonlara sahibiz:

Arttırma Düğmesi: Tekerleklerin yarıçapını yapılandırma ve yarıçap değerini artırma seçeneğine girmek için kullanılacaktır;

Azaltma Düğmesi: Tekerleklerin yarıçapını yapılandırma seçeneğini azaltmak için kullanılacaktır;

Enter Butonu: Sisteme yarıçap değerini girmek için kullanılacaktır.

Ayrıca Reed Switch Sensörümüz var. Tekerleklerin tam bir dönüş yaptığını algılamaktan sorumludur. Bunu tespit etmek için tekerleklere bir mıknatıs takmak gerekir.

Reed Switch yukarıdaki Şekilde sunulmuştur.

Adım 2:

Böylece mıknatıs sensöre her yaklaştığında Manyetik Anahtar sensörünü harekete geçirecektir. Süreç aşağıdaki denklemle çalışır:

Katedilen Mesafe = 2 *π * yarıçap * TurnNumber

Bu denklem sayesinde, bisikletin kat ettiği mesafenin ne olduğunu bileceğiz.

Denklemde, yarıçap kullanıcı tarafından girilir ve Dönüş Numarası, tekerleğin dönüş sayısı ile hesaplanır.

Ve tekerleğin dönüşlerini algılamak için bisiklet tekerleğine bir mıknatıs takmak ve Tekerleğin yanına Manyetik Anahtar Sensörünü takmak gerekir.

İşlemi kolaylaştırmak için Reed Switch Sensörü ve üç düğmeyi bağlamak için bir baskılı devre kartı oluşturuyoruz. Baskılı Devre Kartı aşağıdaki Şekilde sunulmuştur.

Aşama 3:

resim
resim

PCB'de gösterildiği gibi Arduino Nano'yu görmek mümkündür. Tüm sistemlerin kontrolünden sorumludur. Ayrıca 5 adet JST konektörümüz var.

Üç düğmeyi ve Manyetik Anahtar Sensörünü bağlamak için C1 - C4 konektörleri kullanılır. Şimdi, LCD 16x2 I2C'yi bağlamak için C5 Konektörü kullanılıyor.

Dolayısıyla bu sistem üzerinden projeyi bisikletinize yükleyebilir ve kat edilen mesafe değerini alabilirsiniz.

Bunun için aşağıda verilen kodu kullanabilirsiniz.

#include #include

/*

Pinos de conex?o dos bot?es e sensör manyetik anahtarı 8 - Sensör Manyetik Anahtarı 9 - Azaltma 12 - Artış 11 - Gir */

#define MEMORIA 120

#define PosRaio 125

#define ReedSwitch 8

#define BotaoEnterOk 11 #define BotaoIncremento 12 #define BotaoDecreaseo 9

const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

bool sensörü = 0, estado_anterior = 0, Artış = 0, Azalan = 0;

bool ArtanAnterior = 0, DecreaseoAnterior = 0, BotaoEnter = 0, EstadoAnteriorIncremento = 0;

bayt devamı = 0;

unsigned long int VoltaCompleta = 0;

unsigned long int tempo_atual = 0, ultimo_tempo = 0;

kayan DistKm = 0;

imzasız int raio = 0; şamandıra Uzaklık = 0;

geçersiz kurulum()

{ Serial.başlangıç(9600); pinMode(8, GİRİŞ); pinMode(9, GİRİŞ); pinMode(10, GİRİŞ); pinMode(12, GİRİŞ);

lcd.başla(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(“Distansya”); lcd.setCursor(6, 1); lcd.print(Distancia);

lcd.setCursor(14, 1);

lcd.print(“km”);

raio = EEPROM.read(PosRaio);

}

boşluk döngüsü()

{

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

sensör = digitalRead(ReedSwitch); Azaltma = digitalRead(BotaoAzaltma); Artış = digitalRead(BotaoIncremento);

//Regiao de codigo para acumular a distancia percorrida

if(sensör == 0 && estado_anterior == 1) { VoltaCompleta++;

Uzaklık = (yüzer)(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(sensör == 1 && estado_anterior == 0)

{ estado_anterior = 1; }

//Regiao de Codigo para Configurar o Raio

if(Artış == 1 && EstadoAnteriorIncremento == 0) { EstadoAnteriorIncremento = 1; }

if(Artış == 0 && EstadoAnteriorIncremento == 1)

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

geçersiz ConfiguraRaio()

{

bayt RaioRoda = 0;

//Imprimir mensagem para digitar veya raio em cm

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

yapmak

{

lcd.setCursor(6, 1);

Artış = digitalRead(BotaoIncremento);

Azaltma = digitalRead(BotaoAzaltma); BotaoEnter = digitalRead(BotaoEnterOk);

if(Artan == 1 && ArtanÖn == 0)

{ RaioRoda = RaioRoda + 1; Artış Ön = 1; }

if(Artan == 0 && ArtanÖn == 1)

{ ArtanÖn = 0; }

if(Azaltma == 1 && AzaltmaÖn == 0)

{ RaioRoda = RaioRoda - 1; AzalanÖn = 1; }

if(Azaltma == 0 && AzaltmaÖn == 1)

{ AzaltmaÖn = 0; }

lcd.setCursor(6, 1);

lcd.print(RaioRoda);

}while(BotaoEnter == 0);

lcd.clear();

EEPROM.write(PosRaio, RaioRoda);

dönüş; }

Bu koddan muhtemelen Arduino'nuzla olan mesafenizi hesaplayacaktır.

4. Adım: Sonuç

Bu nedenle, kendi PCB'nizi istiyorsanız, PCBWay.com web sitesindeki bu bağlantıdan edinebilirsiniz. Bunun için web sitesine erişebilir, hesabınızı oluşturabilir ve kendi PCB'lerinizi edinebilirsiniz.

Silícios Laboratuvarı, bu projeyi oluşturmak için elektronik bileşenleri sunduğu için UTSOURCE'a teşekkür eder.

Önerilen: