20 Aralık 2012 Perşembe

Dönel Kodlayıcı (Rotary Encoder)

   Dönel kodlayıcılar elektro-mekanik cihazlardır.İşlevleri döner sistemlerde açı veya tur değerlerini dijital olarak kodlamaktır. Dönel kodlayıcıların iç yapısı aşağıdaki gibidir.



   Shaft sistemin dönme merkezidir. Dışarıdan kodlayıcıya bağlanan cihaz bu mili döndürür. Milin dönmeye başlamasıyla disk ve diskin etrafındaki kesikli kısım da dönmeye başlar. Şekilde görülen A ve B noktalarında birer led ve ledlerin karşısında birer fototransistör veya fotodiyot vardır. Fototransistörler üzerlerine ışık düşünce iletime geçer böylece sistem dönerken dönel kodlayıcı çıkışında 1 0 şeklinde sinyal oluşturur. Şekilde görüldüğü gibi bir kodlayıcının A ve B şeklinde iki çıkışı vardır. Bunlar birbirinden 90° faz farkı ile sinyal oluşturur. Bu iki kanal sistemin hangi yönde döndüğü konusunda karar verilmesi amacıyla kullanılır. Bazı kodlayıcılarda bu kanallara ek olarak Z kanalı vardır. Z kanalı sistem bir tur attığında tek bir sinyal verir. Sistemin optik kısımı bu şekilde işler.

   Bahsedilen Z kanalının sinyali INDEX ile isimlendirilen sinyal şeklindedir. 



   Aşağıdaki tabloda kodlayıcının dönüş yönüne göre çıkış sinyalleri verilmiştir. Kodlayıcının sinyal çıkışı daha net anlaşılabilmesi için aşağıdaki tablo incelenebilir. 



   Son olarak dönel kodlayıcıyı okumak için herhangi bir mikrodenetleyici için yazılabilecek örnek bir program yazıyoruz. Sistemi farklı farklı okuyabilirsiniz. En mantıklı olan bir kesmeye sokmaktır. Mesela A sinyalinin yükselen kenarında kesmeye girer ve B kanalının o anki durumuna göre açı değerini bir arttırır veya azaltır. Açı değeri kodlayıcının bir turda kaç sinyal verdiğine göre orantılı olmalıdır.

   A kanalı 1 olduğunda kesmeye giren bir program yazacak olursak en basit halde aşağıdaki gibi olacaktır.

int aci=0;
void kanalA()
{
  if(kanalB==1)
   ++aci;
  else
   --aci;
}


   İyi çalışmalar.

Hiç yorum yok:

Yorum Gönder