arkadaşlar elinizde bizimle paylaşabileceğiniz basic te yazılmış encoder okuma programı varmı TMR0 ın kullanıldığı veya farklı bir yöntemle yapılmış. musallim arkadaş örnek bir program yazıvermiş allah razı olsun ama ben bu prog dan pek bişi anlayamadm en azından fikir yürütmemize yardımcı olabilecek bişiler
Anahtar kelimeleri gugulda arat,gelen linkleri sabırla incele,bazıları pbp bazıları microbasic bazıları ccs dir.
Hepsininde yaptığı kesme kullanmaktır.Genelde RB4-7 kesmesi kullanılır.Kesme oluştuğunda yukarıda yazdığımın benzeri mantık işletilir.
Portlardaki değişiklik takip edilir ve değişiklik anında değişikliğin niteliğine göre sayıcı arttırılır ve ya eksiltilir.
Bazıları sadece B0 ile yapar , ileri geri içinde logic elemanlar kullanırlar , pic varken gerek varmı ?
Yukarıdaki codlar pbp da üstad , @ETE hocamıza aittir.Açıklamaları ve gerisini , konuyu iyice araştırmanız için vermedim.Aslında gerisinde, lcd ve değişken tanımlamalarından başka da bir şey yok.
Yüksek hız gerekli ise lcd yazdırma başka bölüm de ele alınmalı.
bu iş için en uygun kesme TMR0 kesmesi bence arkadaşlar. Çünkü TMR0... harici pals girişi kullanabilir ve donanımsal olarak ayrı bir sayıcıdır. Pic ile yapılabilecek en hızlı sayıcı için TMR0 kullanılması bence daha uygun olur. Fakat basic kullanmadığım için bunun kod örneğini malesef veremiyorum.
Quadrature enkoderlerde ya da rotary enkoderlerde A-B-Z uçları var.
A-B uçları 90 derece faz farklı uçlar.Z ucu her bir turda bir puls.
A-B uçları ile quadrature denilen daha hassas konum değişimlerini yakalamak mümkündür.Oran 4/1 dir.
Pulslerin düşen çıkan her bir kenarında bir sayarsınız.Ayrıca yön bilgisi her konum değişiminde yenilenir.
encoder palslerini 2 ye ya da 4 e katlamaktan basediyorsanız. asıl konumuz bu olmadığı için önemi yok gibi görünüyor. (O zaman iki palsinde düşen ve yükselen kenarlarını algılamak gerekir)
Sadece basitce dönen bir şeyin devrini ölçmek olsa idi takometre - devir ölçer gibi şeyler denebilirdi.
Enkoder denince sadece dönüş hızı değil dönüş yönü ve konumu da algılanır.
4/1 ile frekansı 4 e katlamak değil , encoderlerdeki A-B uçlarının biribirine göre 90 derece kayık sinyallerinin konum değişimleri izlenerek : Örneğin her turda A dan ve ya B den 100 puls alınıyorsa inen ve çıkan kenarlar izlenerek tur başına 400 puls alınır .Bu enkoderin hassasiyetini arttırır.
Yok sadece sayacağım derseniz basitce bir çizik atarsınız ve opto ile izlersiniz ya da magnetik bir sensör kullanırsınız , encoder değil.
Yukarıda verdiğim linklerde resimler ve çizimler var.Daha açıklayıcı olacağı kanaatindeyim.
Verdiğim örneklerdeki kodlar dönüş yönünü ve 4/1 olarak anılan quadrature modunu temel alır.
Sn.musallim verdiğiniz likler encoderlerin standart kullanım şekilleri değildir. örneğin 100 pals bir encoderi max 400 pals çözünürlüğe çıkarmanın yollarıdır. Tamam faydalı bilgiler ama burda bahsi geçen konuya temel değil sadece yardımcı ek bilgi niteliğindedir.
oysa arkadaşımızın asıl sorunu bu sinyalleri pic ile nasıl işyeyip değerlendireceğidir. bunu yaptıktan ya da yapabildikten sonra bu ilaveler düşünülebilinir ve geliştirilebilinir.
Basit bir açıklama olacak fakat sanırım böylesi daha anlaşılır olur:
a=1 olduğu anda b=1 ise , bir yöne
a =1 olduğu anda b=0 ise, diğer yöne dönüyor demektir.
evet abuzittin arkadaşın dediğine katılıyorum benm tek öğrenmek istediğim nasıl bi mantıkla çalıştığıydı ve tyildizdak arkadaş burada çok açıklayıcı bi şekilde anlatmış teşekürler. Ve musallim arkadaşın dediğne göre de anlaşılan tyildizdak arkadaşın yazdığını kapılara uygulamak kalıyor heralde bize.
şimdi şöyle bişi yapmak istiyorum. encoder in A ve B uçlarını pic e giricem ve yazılımda kapıları oluşturucam 3 çıkışı olacak kendi prog içerisinde biri sağa dönüşünü biri sola dönüşünü sayıcak biride durduğunu bildirecek. bu yoldan gitmem sizce mantıklı olurmu arkadaşlar