Rotary encoder sinyallerini saydırmak hakkında yardım

arkadaşın dediği gibi test için kullanıcaksan en ucuz- basit- pratik yolu endanın veya başka bi markanın hsc bağlanabilen bi sayıcısını alıp kullanman...
 

Enkoder sinyalleri uzun araliklarla gelmiyorsa (ornegin 1ms'den buyuk araliklarla), makine ne kadar hizli olursa olsun gercek zamanli isletim sistemi kullanilmadigi surece veri kaybi olur.
 
Arkadaşlar!

bende autonics 500 pulce lik TTL-5v Luk çok rahat kullanılabilen bir rotary encoder var!

PLC - Counter devreleri gerçekten çok iyi iş görüyor ama pahalı. İçlerinde rotary encoder analizör IC ler var.

ATMEL 8051 serisi ile 44MHz de, 10ms lik aralıklarla tarama yapıyorum. Faz-1 metodu denilen X1 in durumuna göre X2 nin darbelerini izleyip yönü ve turu hakkında karar veriyorum.

Değerlerin toplanması, sayacın yeniden kurulması bile veri kaybı yaratıyor. Ben faz-1 de 500 lük bir rotaryden 250 darbe almam gerekirken 210 ile 230 arası değer alabiliyorum. Artık siz düşünün.

Sonuç olarak anladığım ve kanaat getirdiğim uygun bir rotary encoder analizör bulmak.

Hala bi entegre bulabilmiş değilim. Yardımcı olursanız çok sevinirim.
 
HCTL2016/2020
Azıcık pahalıdır kendileri.

Enkoderler donanım kesmeleri ile izlenirler ve rutinler olabildiğince kısa tutulur.C , bu işe uygun dildir.
Sadece x1 e göre diğerini izlemek yeterli değil , diğerine göre x1 de izlemek gerekir(özet:A-B değişimlerinin hepsi izlenmelidir,Z yi salla gitsin).Hızın yeterli olsada dar aralıkda ileri geri kaçırılabilir.

Forumda arama yapmalısın...
 
Evet hocam! Cevabın için teşekkür ederim.

8051 gerçekten bu iş için çok kötü bir kontolör. Gerçi kendileri tarihi eser sayılır Ama seviyorum işte. Alışmış kudurmuş ilişkisi. C-52 serisi ile bi kez daha kalbimi feth etmişdirler kendileri. 60MHz desteği ile de! Ama gelin görün 12 clock ta 1 işlem yapmaları gine yavaş kılıyor. Anca 5 MIPS!

Pic ler 4 clock ta 1 işlem yaptıkları için ( RISC mimarisi işte ) 24MHz de 6 MIPS a ulsşıyor. Bu kesme kullanmadan gine pek bir şey etmez.

Kesme kullanarak, X1 in düşen yada yükselen kenara adaptasyonu sonucu tatmin edici bir iş gerçekleştirilebilir.

Henüz denemedim ama kesme olmadan bu iş yaş!

Dediğiniz enterge ve buna benzerlerini soruşturdum. Çok pahalılar. Kimisi alın bi PLC kounter devresi onun içinden yararlanın falan filan.

İşin üstatları, hızlı bir kontrolör ve kesme kullanarak bu işi yapabilir ve bu iş için kesme öncelik ataması ile başka işleri de yaparken işini görürsün diyorlar.

En yakın zamanda kesme uygulaması ile alacağım performansı sunacağım. Herkese iyi çalışmalar.
 
Son bir ip ucu , piclerde B4-7 kesmesi idealdir.Söz konusu bacaklardaki her değişim kesmeye götürür.İnsede çıksada...
18 serileri 40MHz de çalışır.dsPIC ler de çok iyidir...
Armleri sen tanırsın zaten bana söz düşmez...
 
Hız senin için çok önemliyse hazır encoder modülü bulunan mikrodenetleyicileri araştırmanı öneririm. Mesela bazı dsPIC lerde bu özellik var.
 
Evet arkadaşlar! 8051 CISC mimarili, 8 bitlik bir MCU olarak her duruma karşı 1 kodu var, yani 256 tane kodu var. Her adreslemeye göre bile 1 kodu var!

AT89C51RD2 ve AT89C51ED2 gibi mikrokontrolörler tutarlılığı ve donanımı vede en önemlisi kod hafızası ile ön planda. Kod sayısının fazla olması, daha az kod ile daha çok iş ama tabiki yetersiz.

60 MHz lik atmel 12clockta bir iş yapıyor. Bu 24MHz lik Pic in 4 clock ta iş yapması ile aynı! Saniyede 6 milyon işlem. Ozaman aşırı hız fazla enerji tüketimi demek oluyor.

ATMEL AVR mikrokontrolcüler ise işi abartmış, saniyede 32 milyon işlem yapabilmekte. Böyle bir mcu ile yapılabilecek işlemler gerçekten yeterli olabilir.

dsPic serisine gelirsek, EVET haklısınız! ServoMotor kontrolü için, özel sürücü katları, counter ları ve hatta quad tarama ile elinizdeki 500 darbelik rotary encoderdan 2000 darbelikmiş gibi yaralanabileceğiniz modları bile mevcut!

Tüm bu laf kalabalığını bi tarafa koyayım. Amacım, elimdeki ürünle şu rotary encoder i okumak istemem di. ATMEL fanatiği değilim. Pic in de, atmelinde çok sevdiğim ve kullandığım ürünleri var. Tarama işini 3,5MIPS lık bir durumda yapabilirmiydim. Kesme kullanmadan olmadı.


Kesme kullanarak şu sonucu aldım. 44MHz de, rotary nin x1 ucunu kesme ucuna bağladım ve diğer ucu x1 in düşen kenarındaki kesmede okuttum. x2 1 ise sol, 0 ise sağ gibi yani.

500 lük rotary den 490 civarında bir sonuç aldım.
Gerçekten yavaşta çevirsem hızlıda çevirsem 490!!!!

Şimdi bunun sebebini arıyorum.

Ama elime ilk geçireceğim AVR X-Mega ile bu olaya bir daha bakacağım!
 
Merhaba encoder saydırdığında bir veri tabanında tutacakmısın tutmuyacaksan bir PLC ve dokunmatik oparetör yani HMI ile yapabilirsin yardımcı olabilirm.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…