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

67 27.563

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 İlgini Çekebilir
Cevap bırakın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

67 Yorum
  1. Ali

    Potansiyometre nerede ne için kullanılıyor acaba bilgi verebilecek olan var mı?

  2. ali elgün

    Değerli hocam ben şu an evde bisikletimi trainere çevirdim ve aslında fayda sağlamak ve antrenman gelişimimi takip etmek için cadans(pedalı kaç tur çeviriyorum) hızım ve kateddiğim yol ne kadar süre bindim ve imkan varsa power metre yi aynı anda görmeliyim. Bu yazı beni çok heyacanlandırdı yapabilirmiyiz diye hatta bluetoodh ile aktarsa onuda androidde görsek. Böyle bir cihaz ciddi paralara satılıyor evdeyiz ihtiyaç var pahalı alamıyoruz peki yapabilirmiyiz

  3. DOĞAN

    STAD2 DEĞERİ OLMADAN KARŞILAŞTIRMA YAPTIRMANIZ DOĞRU OLMAMIŞ.

  4. azzzz

    hocam manyetik anahtar ve mıknatısı nasıl bulabilirim?

  5. Oguz

    kodların açıklamasını yapabilir misiniz,rpm nasıl hesaplanıyor,değişkenlerin görevleri neler

  6. isimsiz kahraman2002

    lcd ekran yerine 7 segmentli katot display olurmu

  7. Mahir Ozan CAN

    Sezgin Bey öncelikle proje için çok teşekkür ederim. Buradaki hız bilgisini (örneğin: “12.3”m/dak) şeklinde.
    ya da devir bilgisini (“500″d/dak)(sadece numerik kısmı) 4’lü 8×8 dot matrix’e yazdırmak istiyorum. Fakat dot matrix kodlaması konusunda başarılı olamadım. Konu ile alakalı yardımcı olabilir misiniz?

  8. onur

    merhaba, reed switchten gelen bilgiyi kablo kullanmadan göndermek mümkün mü acaba?

  9. Ömer Faruk Güngören

    Hayırlı Günler Sezgin bey, ardunio kullanarak bir rüzgar hızı ölçer (anemometre) yapmak istiyorum manyetik kart yerine encoder veya analog rüzgar hızı sensörü kullanmam gerekiyor. Bu programı projeme uygulamam mümkün müdür acaba ?

  10. 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

  11. 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

  12. 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.

  13. 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

  14. 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.

    1. Sezgin GÜL

      Kullanabilirsin sorun olmaz.

  15. Hayati

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

  16. efe

    potansiyometreyi nerde kullanıcaz

  17. Ziya

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

  18. Ersin

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

  19. 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.

  20. 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

  21. 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

    1. Sezgin GÜL

      manyetik anahtar gelecek aynı şey dediğin.

  22. 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. Sezgin GÜL

      devir sayısını etkilemez fakat aldığı yolu etkiler.

      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.

  23. 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.

  24. ÖMER FARUK ÇÜRÜK

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

    1. Sezgin GÜL

      Sorunuzu anlayamadım ?

  25. 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.

  26. 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

  27. ahmet

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

    1. Sezgin GÜL

      Bu projedeki manyetik sensörü kullanabilirsin http://www.robimek.com/arduino-ile-manyetik-dedektor-yapimi/

  28. 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

      2. Hakan

        Merhaba tekerleğin çapı önemli mi? Farklı tekerlekler olabilir. Eğer çap önemli ise bisikletin tekerleğinin çapını hangi sensörle bulabiliriz

  29. 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. Sezgin GÜL

      Pdf olarak devre şemamız malesef mevcut değil.

      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.

  30. hamdi

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

    1. Sezgin GÜL

      Rica ederim iyi çalışmalar size de

  31. hamdi

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

    1. Sezgin GÜL

      Reed Röle Kartı kullanıldı.

      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.

  32. 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.

  33. 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.

    2. Sezgin GÜL

      Yazılım dosyası eklendi.

  34. 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

  35. 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