Arduinoda 2 darbe arası süre hesaplama

brkelac

Üye
Katılım
18 Ara 2020
Mesajlar
13
Puanları
1
Yaş
30
Merhabalar herkese. Elimde su debisi ölçen bir sayaç var içerisinde de debi sensörü var. Bu sensör borudan her 10 litre geçtiğinde bir pulse üretiyor. Multimetre ile uçlarını ölçtüğümüzde 10 litre geçince buzzer ötüyor. Biz bu iki darbe arasındaki süreyi arduinoya hesaplatmak istiyoruz. Bu süreyi öğrenince litre/dakika olarak debi değerini görebileceğiz. Yardımcı olursanız sevinirim. Teşekkürler.
 
Buzzerin bağlı olduğu pinin lojik seviyesini arduinoya sürekli okutun. Arduino girişine max 5Volt uygulanmalıdır. Buzzerde daha fazla voltaj varsa gerilim bölücü direçlerle 5 Voltun altına düşürün. Seviye lojik 1 olduğunda millis saydırmaya başlayın. Seviye 0 olduğu andaki millis değerini bir değişkene kaydedin. Değişkene kaydedilen değer milisaniye cinsinden buzzerin aktif ve tekrar pasif olduğu süreyi gösterecektir.
 
Cevabınız için teşekkürler. Sensör 2 kablolu. Buzzer seviyesine getirip uçlarına probları takınca ötüyor. Bahsettiğiniz buzzerdaki voltaj seviyesini nasıl ölçerim. Sayaç 12V ile çalışıyormuş.
 
avometre ile ya da voltmetre ile ölçebilirsiniz.

 
Şimdi ben şöyle bir şema göndereyim o zaman. Sayaca 2 kablolu bir sensör takmışlar. Fakat bunların 12v mu 5v mu gnd mi veya sinyal mi hangisi nedir bilmiyoruz. Ben de şöyle bir bağlantıyla denemek istedim fakat yanlış mı yaptım bilmiyorum.
 

Ekli dosyalar

  • IMG_1001.JPG
    IMG_1001.JPG
    334.2 KB · Görüntüleme: 19
Arduinoyu bağlamadan önce buzzer öttüğü zaman ötmediği zamanlar buzzer uçlarında kaç volt oluşuyor? Buzzer ne kadar süre ötüyor? Bunları tespit edin. Arduino bağlantısına sonra bakarız.
 
Üreticiden yardım aldık da bugün. Bu iki kablo içerden kısa devreymiş yani anahtarlama devresi gibi çalışır diyor. 5v verirsen 5v alırsın 12v verirsen 12v alırsın gibi bir şey söyledi. Buzzer yaklaşık 1sn ötüyor. Şimdi benim düşündüğüm bir kabloyu arduino 5v ile besleyip diğer kabloyu arduino 2 pinine bağlayıp dijital veri almayı düşünüyorum. Teorideki bilgiye göre her veri gelmesi demek borudan 10litre geçmesi demek. Bu iki veri arası süreyi hesaplayabilirsek mesela; ilk veri geldi 2000 ms sonra 2.veri geldi. Bu da; 10 litre / 2000 ms olarak debi değeri verir bize. Sonra bunu metreküp/saat 'e dönüştüreceğiz.
 
5v değil 0 volta bağlayın. Arduino pininde internal pullup direncini açarsın.
 
Eğer algoritma olarak bir yardıma ihtiyacınız varsa http://www.elektrobot.net/arduino-ile-millis-kullanimi-ve-timer-uygulamalari/ linkteki millis() kodu ile iki pulse arası süreyi hesaplayabilirsiniz veya internete arduino chronometer yazarak da fikir alabilirsiniz. Hesapladığınız ms cinsinden süre ile de
(1000ms/ölçülen ms)x10L saniyedeki akan Litreyi size verir sonra onu istediğiniz gibi m^3 saate çevirebilirsiniz. Üstteki işlemi yaparken de yapacağınız işin hassasiyetine göre bir yenileme hızı belirlemeniz gerekli bunu da deneyerek bulabilirsiniz. Son olarak da adı counter vb olan bir değişken içinde de pulse sayısını tutarak totalde kaç litre geçtiğini okuyabilirsiniz. Bu değeri sıfırlamak için de bir buton ekleyebilirsiniz sonrasında. Umarım yardımcı olabilmişimdir.
 
Eğer algoritma olarak bir yardıma ihtiyacınız varsa http://www.elektrobot.net/arduino-ile-millis-kullanimi-ve-timer-uygulamalari/ linkteki millis() kodu ile iki pulse arası süreyi hesaplayabilirsiniz veya internete arduino chronometer yazarak da fikir alabilirsiniz. Hesapladığınız ms cinsinden süre ile de
(1000ms/ölçülen ms)x10L saniyedeki akan Litreyi size verir sonra onu istediğiniz gibi m^3 saate çevirebilirsiniz. Üstteki işlemi yaparken de yapacağınız işin hassasiyetine göre bir yenileme hızı belirlemeniz gerekli bunu da deneyerek bulabilirsiniz. Son olarak da adı counter vb olan bir değişken içinde de pulse sayısını tutarak totalde kaç litre geçtiğini okuyabilirsiniz. Bu değeri sıfırlamak için de bir buton ekleyebilirsiniz sonrasında. Umarım yardımcı olabilmişimdir.
Cevap için teşekkürler. Evet sanırım böyle bir algoritmaya ihtiyacım var. Fakat milis fonksiyonu incelemiştim. Buna rağmen söylediğiniz gibi iki pulse arası süreyi hesaplayan bir program yapamadım sanırım. Programlamada biraz yeniyim. Bir mantık kurguladım ama şuan çalışmıyor.
 

Forum istatistikleri

Konular
129,810
Mesajlar
930,320
Kullanıcılar
452,618
Son üye
mberber

Yeni konular

Geri
Üst