Bisikletiniz için Arduino ile Hız ve Devir Ölçer Yapımı

57 943

Bisikletle giderken lcd ekrandan hızımızı ve devir sayısını gösteren bir uygulama yapacağız.Arduino kullanarak hızımızı nasıl ölçebileceğimizden bahsedeceğim.Hızımızı ölçmek için tekerleğin dönüş hızını bilmemiz gerekecek.Bunu öğrenmek için de manyetik anahtardan faydalanacağız.

Manyetik Anahtarla Hızımızı Nasıl Ölçeriz?

Manyetik anahtar adından da anlaşılacağı gibi manyetik ortamda anahtarın açılıp kapanması sağlanır.Biz de tekerlek cantına bir adet mıknatıs yerleştireceğiz.Manyetik anahtarımızı ise mıknatısın karşısına gelecek şekilde demir çatala yerleştiriyoruz.Bu sayede tekerlek her bir dönüşte mıknatısı manyetik anahtarın önünden geçirecek ve anahtarın açılıp kapanması sağlanacak.Anahtardaki durum değişimleri sayılarak hız ve devir sayısına dönüştürülecek.Projemizin genel çalışma mantığı bu şekildedir.Hız ve devir ölçer yapımı projemizin aşama aşama yapımına başlayabiliriz.

Malzemeler:

  1. Arduino
  2. Manyetik anahtar
  3. Mıknatıs
  4. Lcd ekran(16×2)
  5. 10k ve 47ohm direnç
  6. 10k potansiyometre
  7. 9v pil ve adaptör

Elektronik Kısım Devre Şeması:

Yukarıdaki devre şemasını kullanarak bağlantıları yapıyoruz.

Manyetik anahtarı aşağıdaki şekildeki gibi yerleştiriyoruz.

Mayetik sensörün denemesini yaptığımızda mıknatısı yaklaştırınca 1023, uzaklaştırınca 0 analog değeri verecektir.

Yazılım Kısmı:

#include <LiquidCrystal.h>
int val;
long last=0;
int stat=LOW;
int stat2;
int contar=0;
int displayrpm;
int sens=75;
int nPalas=1;
int milisegundos=500;
 
LiquidCrystal lcd(12,11,5,4,3,2);
 
void setup()
{
Serial.begin(9600);
pinMode(13,OUTPUT);
lcd.begin(16,2);
}
 
void loop()
{
val=analogRead(0);
if(val<sens) stat=LOW; else stat=HIGH; digitalWrite(13,stat); if(stat2!=stat){ contar++; stat2=stat; } if(millis()-last>=milisegundos){
double rps=((double)contar/nPalas)/2.0*1000.0/milisegundos;
double rpm=((double)contar/nPalas)/2.0*60000.0/(milisegundos);
displayrpm=rpm;
Serial.print((contar/2.0));
Serial.print("RPS");
Serial.print(rps);
Serial.print("RPM");
Serial.print(rpm);
Serial.print("VAL");
Serial.println(val);
contar=0;
last=millis();
Serial.print("MPH");
Serial.print(rpm*0.0080622311);
LCDPrint();
} 
}
 
void LCDPrint()
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("MPH");
lcd.setCursor(0,1);
lcd.print(displayrpm*0.0080622311);
lcd.setCursor(8,0);
lcd.print("RPM");
lcd.setCursor(8,1);
lcd.print(displayrpm);
return;
}

Hız devir ölçer yazılımını buradan indirebilirsiniz >> hız devir ölçer

Kaynak : Arduino Bike Speedometer

Bunları da beğenebilirsin

Cevap bırakın

E-posta hesabınız yayımlanmayacak.

57 Yorum

  1. EMRE

    merhaba lise son sınıf öğrencisiyim bu benim proje ödevim yazılımı arduıno ya yüklerken LCDPrint hatası alıyorum yardımcı olursanıız sevinirim

  2. muhammet

    merhabalar , programı ve devreyi kurdum lcd ekranda değişen değerlerde görüyorum fakat bu değerler çok çabuk değişiyor ve stabil değil 5mph ken anında 1 mph a düşüp yine anında 3 mph a çıkıp tekrar 1 e falan düşüyor şemadaki devreden tek fark olarak manyetik röle değil ky-003 arduino için manyetik sensör kullandım ve a0 ile ground arasına direnç bağlayınca değer almadığım için o direnci bağlamadım sorunumun çözümü için cevaplarsanız çok makbule geçer

  3. ramazan

    öncelikle merhaba ben arduıno uno ile turmetre yaptım ama lcd ekranda tur çalisiyyor ama tur döndükçe metre ninde çalişması lazım ama çalışmıyor.Metrenin çalışması gereken program kodunu verebilirmisin
    Teşekkürler.

  4. Kaan Uygun

    Merhaba biz elektrikli araç yapıyoruz.Tekerimizin yarıçapı 16 inç.Biz bu yarıçapa uygun kodu nasıl değiştirebiliriz.Ayrıca bunu km/h veya m/s cinsine yapmak istiyoruz hangi kod değiştirmemiz gerekiyor.0,0080622311 sayısındaki matematik formülü nedir ve yarıçapı kaç aldınız yardımcı olabılır mısınız

  5. Hayati

    Pardon özür dilerim, yorumlarda metal dedektör linkini vermişsiniz orada manyetik anahtarı gördüm, yalnız sizin sensör 3 pinli, ben 4 pinli olanlarından siparariş vereceğim fark eder mi? Teşekkürler.

  6. Hayati

    Şu manyetik anahtar nasıl bir şey, bir görsel veya link kullansaydınız daha kolay temin etmez miydik?

  7. efe

    potansiyometreyi nerde kullanıcaz

  8. Ziya

    Ben devir ölçmek istiyorum ama buna ek olarak 50. turda röleyi kapatmam gerek yardımcı olur musunuz ?

  9. Ersin

    Arduino duede hata alıyorum çözümünü bilen varmı

  10. emin çağlar

    Bir sorum daha olacak sens değerinin karşılığı tam olarak ne acaba?

    1. Sezgin GÜL

      sens değeri manyetik cismin olup olmadığını anlamak için referans alınan bir değerdir. Eğer manyetik alan değeri bu değer üstünde olursa ki mıknatıs olduğunu anlayacak ve pin durumunu high yapacak. Bu sayede tekerleğin bir tur attığını anlayarak gerekli işlemleri yapacak.

  11. emin çağlar

    sezgin bey mümkün olduğunca cevaplamaya çalıştığınız için öncelikle tebrik ve teşekkür ederim 0.0080622311 sayısının tam olarak nerden geldiğini açıklayabilirmisiniz acaba ve sanki 3.6 ile çarptımızda ortaya çıkan sayı sanırım çok küçük kilometre hızı olarak acaba matematiksel izahı tam olarak nedir.

    1. Sezgin GÜL

      oradaki sabit değer rpm ile yani dakikadaki tur sayısı ile çarpılıp mph değerini verir. Yani o değer tekerleğin çevresinin mil cinsinden olan değerinden gelen bir hesaplamadır.

      1. emin çağlar

        bu mil cinsinden olan değer her bisiklette değişikliklik göstermezmi peki

  12. oğuz

    mıknatısı bağladıktan sonra karşısına gelen şey reed role mi yoksa reed role kartı mı ?
    iyi çalışmalar

  13. Ozan

    Peki başka bir sistemde bunu kullandığımda yani tekerlek yerine başka bir nesne kullandığımda çap ın değişmesi hızı etkiler mi

      1. Ozan

        öncelikle verdiğiniz cevaplar ve projeyi ayrıntılı bir şekilde paylaştığınız için teşekkür ediyorum. Yanlı bana çapı farklı olan bir nesne konduğunda devir etkilenip aldığı yol etkilenmez gibi geldi. Mesela yarı çapı yarıya indirirsek hızı 2 katı okuyup alınan yol değişmez gibi geldi.

        1. Sezgin GÜL

          şöyle düşün aynı devire sahip iki farklı çapta tekerleğin aldığı yol farklı olur. çünkü aynı tur sayısında olacağından tekerleklerin çevresi farklı olduğu için birisi daha çok yol kat edecektir. hız ve devir birbiriyle tabiki de ilişkilidir.

  14. ozan

    İyi günler manyetik kart yerine encoder kullansam neleri değiştirmem gerekiyor

    1. Sezgin GÜL

      manyetik encoder kullanırsanız sistemi değiştirmenize gerek kalmaz aynı şekilde bağlantıları yapıp çalıştırabilirsiniz.

  15. ÖMER FARUK ÇÜRÜK

    hız devir ölçer yazılımı ile diğer açık yazılımı nasıl kullanıcaz ?

  16. ersin

    merhabalar. teker yarıçapını nerden değiştirebiliriz ?

    1. Sezgin GÜL

      hız ve devir ölçme işlemi tekerlek çapından yapılmıyor. burada cant üzerindeki magnet her bir turda manyetik sensörün önünden geçip röleyi açıp kapatıyor ve bu açıp kapama sayısına göre hesaplanıyor. Aldığın yolu hesaplamak istiyorsan koda tekerleğin çevresini gir ve devir ile çarptığında aldığın yolu verecektir.

      1. ersin

        hızlı cevabınız için teşekkür ederim. bir sorum daha olacaktı bu programdaki hız ölçme işlemi matematiksel olarak nasıl biraz açıklayabilirmisiniz. biz bunu okula proje olarak yaptık o yüzden açıklamamız lazım matematiksel olarak nasıl hesapladığını. programı okumayı da bilmediğimiz için anlayamadık ordaki hesaplamayı.biraz açıklarsanız sevinirim.

        1. Sezgin GÜL

          magnet sensörün önünden her geçişinde buton görevinde açılıp kapanır. Geçtiği sayı rpm ve rps ye yani saniyedeki ve dakikadaki tur sayısını hesaplamada kullanılır. Daha sonra rps değeri mph değerini yani saatteki hıza çevirmek için rps mph ilişkisinden hesaplanır. 1 mph = 0.44704 m / s olduğuna göre ölçülen mph değerini m/S cinsinden de hesaplayabilirsiniz.

  17. tuna

    merhabalar .öncelikle paylaşımınız için teşekkür ederim. ben devreyi reed anahtar ile kurdum yalnız şemadakş gibi kurunca ekrandaki yazıyı siliyor. reed anahtarın bağlantısını nasıl yapabilirim.

    1. Sezgin GÜL

      sinyal pinini analog 0 pinine tak vcc 5v gnd yi gnd ye takman yeterlidir

  18. ahmet

    Merhabalar. Manyetik anahtar olarak kullandıgınız malzemenin nasıl bir sey oldugunu resim olarak gösterirmisiniz.

  19. Sezgin GÜL

    Rica ederim takıldığınızı noktada çekinmeden sorabilirsiniz iyi çalışmalar

    1. Mehmet

      Bir sorum daha olucaktı. Devreyi kurdum lcd üzerinde yazılar gözüküyor ve tüm değerler sıfır gözüküyor. Ben reed manyetik anahtar kullandım. Anahtarın önünden mıknatısı geçirince lcd üzerinde herhangi bir değer oynaması olmadı. Ayrıca reed röle kartında 3 bacak var reed manyetik anahtarda ise 2 bacak var .

      1. Sezgin GÜL

        ikiside aynı şeyler 3 bacak olanın biri sinyal diğerleri artı eksi. 2 bacak olanlarda birisi gnd diğeri sinyal pini. Reed manyetik anahtar kullandıysanız sinyal pinini analog 0 pinine artı ucu 5v ve eksiyi gndye bağlamanız gerekir

  20. Mehmet

    Proje için çok teşekkür ederim. Fotodan devre tam olarak anlaşılmıyor. Sizden ricam bu projeyi bana pdf dosyası olarak mail adresinden atabilirmisiniz acaba ?
    7kardesmehmet@gmail.com mail adresim

      1. Mehmet

        Sadece devre şemasının olduğu resim mevcut mu acaba? Sayfadaki şema tam olarak okunmuyor ne yazık ki bende.

          1. Mehmet

            Çok teşekkür ederim. İyi çalışmalar.

  21. hamdi

    teşekkür ederim,iyi çalışmalar…

  22. hamdi

    manyetik anahtar olarak ne kullandığınızı öğrenebilir miyim

      1. hamdi

        Bir sorum daha olacak, bozuk para geçişinde bu sensör aynı şekilde görür mü…bir sistemdeki bozuk paranın hızını kontrol etmek için kullanılabilir mi ,bilgilendirirseniz çok memnun olurum

        1. Sezgin GÜL

          bozuk para manyetik özellik göstermesi gerekmektedir. Ayrıca metalik olan malzemeler az da olsa manyetik bir etki gösterebilirler. Bu sensör için uygun olmayabilir. Hız kontrolünü lazer ile yapabilirsiniz.

  23. Güven

    Sizden bir ricam var ,ben km/h ölçmek istiyorum kodda nasıl bir değişiklik yapmam gerekiyor acaba?

    1. Sezgin GÜL

      1m/s = 3.6 km/h yapıyor.Buna göre Serial.print(rpm*0.0080622311*0.44704); ifadesini Serial.print(3.6*rpm*0.0080622311*0.44704); şeklinde yaparsanız km/h cinsinden okursunuz.Bir de LCDPrint() tanımlamasınıdaki aynı kısmı değiştirmen gerekecek.

  24. Güven

    Biraz uğraştırsada yaptım gayet güzel çalışıyor,fakat yapacak arkadaşlar kodlarda görünen quot yazı dizisi aslında bir karaktere (“) eşdeğer,düzeltilmiş kodları paylaşıyorum izninizle

    int val;
    long last=0;
    int stat=LOW;
    int stat2;
    int contar=0;
    int displayrpm;
    int sens=75;
    int nPalas=1;
    int milisegundos=500;
    #include
    LiquidCrystal lcd(12,11,5,4,3,2);
    void setup()
    {
    Serial.begin(9600);
    pinMode(13,OUTPUT);
    lcd.begin(16,2);
    }
    void loop()
    {
    val=analogRead(0);
    if(val=milisegundos){
    double rps=((double)contar/nPalas)/2.0*1000.0/milisegundos;
    double rpm=((double)contar/nPalas)/2.0*60000.0/(milisegundos);
    displayrpm=rpm;
    displayrpm=rps;
    Serial.print((contar/2.0));
    Serial.print(“;RPS”);
    Serial.print(rps);
    Serial.print(“RPM”);
    Serial.print(rpm);
    Serial.print(“;VAL”);
    Serial.println(val);
    contar=0;
    last=millis();
    Serial.print(“HIZ(m/s)”);
    Serial.print(rpm*0.0080622311*0.44704);
    LCDPrint();
    }
    }
    void LCDPrint()
    {
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(“HIZ(m/s)”);
    lcd.setCursor(0,1);
    lcd.print(displayrpm*0.0080622311*0.44704);
    lcd.setCursor(10,0);
    lcd.print(“RPM”);
    lcd.setCursor(10,1);
    lcd.print(displayrpm);
    return;
    }

    1. Sezgin GÜL

      Yapmanız güzel tebrikler.O kısımlar sayfaya atınca öğle görünüyor.Kodu dosya halinde atmaya çalışacağım.Siz de şuan attığınız kodda tırnaklar yanlış görünüyor.

  25. Güven

    Tekrar merhaba hızlı cevabınız için teşekkürler,demek istediğim videonun 7. sn sinde ekranda sadece speed 20.58 mph yazarken fotodaki ekranda hem hız hemde devir bölümleri var onu merak etmiştim,lcd ekran modeline gelince elimde linkte verdiğim ekran var bunu kullanabilir miyim?lcd ekranları hep picli devrelerde kullanıyordum ,Ardu da lcd kullanmadığım için kararsız kaldım.
    direnc.net/2×16-Lcd-Display-TC1602B-Mavi,PR-18311.html

    1. Sezgin GÜL

      Rica ederim.Proje videosundakine ek olarak devirölçer de eklendi.Linktekini kullanabilirsiniz

  26. Güven

    Merhaba ,öncelikle faydalı paylaşımlarınız için çok teşekkür ederim,bu projede videodaki lcd ekran görüntüsü ile alt kısımdaki lcd ekran görüntüsü farklı birde şemada lcd ekran pin bağlantı numaralarını nerden bulabilirim acaba

    1. Sezgin GÜL

      Rica ederim.Lcd rengine takılmayın.Lcd bağlantı şemasını ekledim.Lcd datasheetlere bakarsanız orda çıkış pinlerini görürsünüz.

      1. fırat genç

        bize hız ölcer devre lazım örneği varmı
        sizde