iyi aksamlar pic proje ailesi enkoderden aldıgım pulsları matematiksel işlemden sonra rpm ceviriyorum yanlız rpm cevirirken 1 sn kadr beklemek zorunda kalıyorum benim istediğim anlık rpm ölçümü kararlı bir sekilde ölçmem lazım bana bu konuda yardımcı olabilirseniz sevinecegim.
timer kurup belli zaman aralıklarında ölçüm almalısınız.
Enkoder 3 pulse 2.5 ms'de üretiyorsa saniyede kaç pulse üretir?
Arkadaslar motorun saniyediki puls sayısını belli bir rakamla carptıgım zmn motor hız bilgisine ulasıyorum benim istediğim anlık hızı timer kursam belli süre yine beklicem bana anlık hızı lazım
hız değeri bahsettiğiniz gibi birşey değildir. hızı ölçmek için zaman geçmesi gerekmektedir. Pozisyon bilgisi ile karıştırmayın
Eğer enkoderiniz yüksek çözünürlüklü ise ölçüm zamanını azaltarak sayım yapabilirsiniz. Değil ise en güzel çözüm pulse saymadan, iki pulse arasında geçen süreyi ölçmek. Bu yöntem ile düşük çözünürlüklü enkoder ile düşük hızlarda dahi yüksek çözünürlüklü hız bilgisi elde edebilirsiniz. Burada dikkat etmeniz gereken birşey var; enkoder diskinin yarıkları arasında az çok farklar vardır, bu küçük farklar ölçüm sonuçlarında jittere yol açar. Basit bir düşük geçiren filtre ile jitterden kurtulabilirsiniz.
Hocam ben int rb kullanıyorum enkoderden gelen puls ile rb kesmesi olusturuyorum sizin dediğinize göre rb kesmesi içine sayıcı koyup onu 60 bölerek mi hız bilgisine erişmek dogru olacaktır enkoder 100 puls a ve b çıkıslıdır yada örnek kod yazabilirmisiniz bu konuda iki puls arasını ölçme konusunda.
Alıntı yapılan: engerex - 13 Haziran 2017, 20:54:02Enkoder 3 pulse 2.5 ms'de üretiyorsa saniyede kaç pulse üretir?
Alıntı yapılan: bulut_01 - 13 Haziran 2017, 22:29:47
Arkadaslar motorun saniyediki puls sayısını belli bir rakamla carptıgım zmn motor hız bilgisine ulasıyorum benim istediğim anlık hızı timer kursam belli süre yine beklicem bana anlık hızı lazım
Bunu hesaplamak için neden 1 saniye bekliyorsun? Enkoderin devirdeki pulse sayısını 3 pulse süresiyle çarpıp sonucu 3'e bölmek (dakika için birde 60 ile çarpmak) neden 1 saniye zaman alıyor?
Cünkü 1 sn beklemeden hız ölctugum zmn örnek motor sabit 100 rpm dönerken ben 150 gibi sonra yeniden 100 oluyor sacma sapan degerler okuyorum
Anlık bilgi için motorun milinebağlı encoder yerine bir dinamonuz(dc fön makinesi motoru vs. ) olur, motor devri arttıkça dinamonun ürettiği voltaj da artar. Bu voltajı anlık olarak adc den okursanız hız bilgisini alabilirsiniz. Tabi öncesinde dinamonuzun hız/voltaj grafiğini yada fonksiyonunu elde etmeniz lazım. Gerisi voltajı yorumlama işi.
Hocam motorda mevcut enkoder varken dinomoyla ugrasmanın ne anlamı var
Anlık bilgi demişiniz encoderle nasıl olacak bilmem. Mekanizmanız uygun değilse dinamo da olmaz tabi. Enkoderde ya zamanlayıcı kurup pals sayacaksınız yada en iyi ihtimalle iki pals arasındaki süreyi ölçeceksiniz. Her iki durumdada bir bekleme olacak. Ha tabi analog sistemde de bir adc çevrim süreci olacak. Artık bu seçeneklerden birini seçeceksiniz tercih, yöntem size kalmış. Kolay gelsin.
Hız= Kat edilen mesafe / zaman; örnek= 360 puls/saniye, 80km/saat
Şimdi anlık hızı zamandan bağımsız nasıl hesaplarız? Tabi ki de hesaplayamayız.
Peki arkadaslar iki puls arasını ölçsem bunu en iyi sekilde nasıl yaparım kodda gösterebilirmisiniz? Not int RB kesmesini kullanıyorum.
ilk pals geldiğinde rb kesmesinde timer i set edersin tekrar pals geldiğinde timer ı kapatır timer daki veriyi değişkene atar kullanırsın bu senin pals süren olmuş olur.
Bu dediğinizi kod yazarak gösterebilirmisiniz hocam