Encoder Pulse Okuma Süresi

Merhaba Arkadaşlar, Linkte verdiğim adresteki kütüphaneyi kullanarak encoder’den sağlıklı bir şekilde pulse okuyabiliyorum. kütüphane dış kesme kullanıyor çok hızlı tepkimelerde bile sorunsuz çalışıyor. Fakat yazılım olarak çözemediğim durum; iki okuma arası geçen süre. yani ben encoder şaftını elimle çevirdim ve sayaç diyelim ki 50’de ve burada bekleyip tekrar çevirdiğimde bu beklediğim süreyi öğrenmek istiyorum. Amacım, robot kolu tekrarlanabilir hareket için kullandığımda, öğretici düzeneğe bağlı encoder’den aldığı veriyi servo açısı olarak belirlesin ayrıca bu beklemeleri servo hızı olarak alsın. #include < Encoder.h > http://www.pjrc.com/teensy/arduino\_libraries/Encoder.zip Encoder myEnc(5, 6); void setup() { Serial.begin(9600); Serial.println(“Basic Encoder Test:”); } long oldPosition = -999; void loop() { long newPosition = myEnc.read(); if (newPosition != oldPosition) { oldPosition = newPosition; Serial.println(newPosition); } }

milis fonksiyonu ıle sureleri olçmeyı yapabılırsınız

Daha önce denedim birçok kez fakat olmadı yada beceremedim. eski çalışmalar farklı pc’ de olduğundan mesaja ekleyemedim. muhtemelen millis fonksiyonuyla oluyordur fakat mantıksal hata yaptığımdam istediğim sonucu alamadım. her seferinde millis geçen süreyi topluyor. Basit bir müdahale ile olacak ama işte puzzle gibi tam oturması gerekli.

t1=milis olculecek işler bla bla t2=milis olculensure=t2-t1

öncelikle teşekkür ederim ilgin için. bu düzende yazdığımda iki pulse arası süreyi alabiliyorum ( bu arada millis(); değilde micros(); olarak düzenledim) fakat bekleme süresini göremiyorum, 50. pulse’da 3 saniye bekleyip 51. pulse geçtiğimde bana yine ürettiği pulse süresini (4,8 veya 16 microsecond) veriyor.

beklemeyi nasıl tespit ediyorsunuz bilmiyorum açı değişmediği zaman olması lazım o anda da ayrı bır sure olcum kayabilirsin sanırım