Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: stronger_ht - 25 Kasım 2010, 15:48:12

Başlık: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 25 Kasım 2010, 15:48:12
Öncelikle herkeze iyi çalışmalar.

Daha önce hiç denemediğim ve yabancı olduğum bu encoder olayı sonunda başıma geldi ve hiçbir bilgim yok. Encoder'ları biraz araştırdım, ancak sanırım basit bir örnek olursa tamamen kavrayacağım. Forumda da arattım ilgili örnekleri inceledim fikir olması açısından.

Şimdi benim yapmak istediğim şudur.

Kısmen bir rüzgar yön sensörü yapmak istiyorum. Gerekli mekanik düzenim hazır, döner kuyruklu mekanik düzeni Encoder'a bağlayacağım. Encoder'dan gelen pals ve yön bilgisini 18f452 ile okutup, yine pic ile redüktörlü motorumu gelen bilgilere göre çalıştıracağım. Tabiki burada redüktörlü motorlarımda da encoder bağlı olacak. Yani rüzgar yönü tayini için kullandığım encoder'den gelen pals ve yön bilgisini, redüktörlü motorumu çalıştırdığımda, mevcut pals ve yön bilgileri eşleşene kadar çalıştıracağım.

Buradaki mantık şudur. Düzeneğin tepesinde montajlanmış haldeki rüzgar yön sensörü diyelim, bu sensörden gelen bilgileri okuyup, döner gövde mekanizmasını bilgilere göre redüktörlü motor ile çevireceğim.

Şuana kadar 2 encoder kullanmış oldum.
3. ve 4. encoderler aynı mantıkla çalışacaklar. Bu encoderleri direk redüktörlü motorlarıma bağlayacağım ve motorun çalışma süresini bu encoderlere göre belirleyeceğim.


Şimdi sorunuma gelecek olursak :)
Forumda bazı konularda Encoder'ler direk pic'e bağlı, bazılarda ise arada bir entegre kullanılmış.
Böyle bir sistemde, encoder'i direk mi okutsam daha sağlıklı olur yoksa arada bir entegre olması mı daha sağlıklı olur.

Tabiki ek olarak bir sorunum daha var, şuanda Pic'de diğer özellikleri de kullanmak zorunda olduğum için boşda 4 adet pin mevcut.
Bu sorunuma nasıl bir çözüm üretebilirim...


Teşekkürler şimdiden...
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: yucelcem - 25 Kasım 2010, 16:54:19
neden yön belirleyen aletin altına 360derece dönen potansiyometre koyup analog girişe bağlamıyorsunuz?
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: JKramer - 25 Kasım 2010, 17:03:13
Rüzgarın yönü sık sık değişebilir, bu durumda pot birkaç saat bile dayanmaz.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: yucelcem - 25 Kasım 2010, 17:07:58
anladım, sonuçta dönüşü sınırlı, peki sınırsız dönen pot'lar var mı? 360'lık turu tamamladıktan sonra yeniden başa dönen?
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 25 Kasım 2010, 17:13:10
Aslında sonsuz pot elimizde var, 3 tane de bacağı var, ancak araştırmalarıma göre daha önceden deneyenler net sonuç elde edememişler. Sağlıksız çalışmış ya da onlar çalıştıramadılar bilemiyorum, ancak ben noktasal tahmin'e en yakın sonucu yakalamak istiyorum bu yüzden de encoder aklıma ilk gelen şey oldu.

Bu arada şöyle bir sorunum da var.

Bu sensör yön bildirecek ancak, gövde 365 derece dönemiyor. Diyelim gövde 300 Derecede, rüzgar sağdan esiyor ve gövdenin 70 derece sağa dönmesiyle rüzgara tam karı karşıya gelebilecek, ancak mekanizma gereği gövdenin 365 derece dönmemesi gerekiyor, bu durumda gövde dönüşünü kısa yoldan 70 derecelik mesafeyle değil de, sol tarafa dönüp rüzgarın estiği yönü bulması gerekiyor. Tabiki bu 2. adım :D henüz encoder'i deneyebilecek ve bilgileri okuyabilecek bilgiye sahip olmadığım için öncelikle encoder'i okumam gerekiyor.

CCS C kullanıyorum ve 18f452 var.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: yucelcem - 25 Kasım 2010, 17:17:53
10 bit çözünürlükte adc çevrimi yapıp bir de ortalama değer alırsanız bence tam isabet olabilir, buarada makinanızın amacını tam anlamadım, rüzgar yönünü belirlemek amacıyla yapılmış birşeymi?
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: JKramer - 25 Kasım 2010, 17:20:10
Alıntı yapılan: yucelcem - 25 Kasım 2010, 17:07:58
anladım, sonuçta dönüşü sınırlı, peki sınırsız dönen pot'lar var mı? 360'lık turu tamamladıktan sonra yeniden başa dönen?
Yok, dönüşü sınırlı diye değil. Standart pot'ların dönüş ömürleri sınırlıdır; en fazla 10000 cycle gibi. Buna bir de fırçaların ısınmasını eklerseniz sayı daha da düşer. Joystick, vb. yerlerde kullanılan yüksek hassasiyetli yüksek mekanik ve elektriksel dönüş ömrü pot'lar da mevcut; encoder tipi pot diye geçiyor olması lazım. Bunların ömürleri birkaç milyondan 50 küsür milyona kadar çıkabiliyor. Fiyatları da aynı şekilde çıkıyor tabii :). Bence optik çözüm bu iş için uygun.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: Burak B - 25 Kasım 2010, 17:21:59
Manyetik encoderler var austriamicrosystems in sample gönderiyorlar onları deneyebilirsin. Manyetikten kastım sürtünme yok yanı donen bir mıknatıs ve onu algılayan br chip.

http://www.austriamicrosystems.com/ (http://www.austriamicrosystems.com/)
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 25 Kasım 2010, 17:30:50
Projemiz çiftlikte kullandığımız bir rüzgar türbini. Basit bir türbin, daha iyi bir performans için gün içerisinde değişen rüzgar yönünü tespit edip, gövdenin rüzgar ile karşı karşıya kalmasını sağlamak. Üründe üretilen enerji aşağıya kablolarla indirilmiş. Bu durumda gövde sürekli 365 derece dönecek olursa kablolar sarılıp kopabilir. Bunu önlemek amacıyla 360 derecelik bir maximum açı vermişler. Bu yüzden encoder tarzı noktasal bir hesaba ihtiyacım var. Tabi bu 365 derecelik problemi encoder ile tam olarak çözebilirmiyim henüz bilmiyorum, deneyeceğim. Ancak ilk aşamada encoder'i nasıl okuyabilirim bu önemli.

365 derecelik problem olmasaydı iki adet swich ile bu problemi çözmüş olurdum ancak tam tur dönemiyor.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: yucelcem - 25 Kasım 2010, 17:35:00
bu rüzgar türbinlerinin arkasına bir pal koyup rüzgarın yönüne dönmesini sağlayabiliyorlar, kabloların dolanmaması için de türbinle mil arasına bir mekanizma kuruyolar, bizim çatımızda var ordan biliyorum, ama detayını bilmiyorum
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 25 Kasım 2010, 17:38:15
yucelcem, bu türbinlere olan ilgimden dolayı biraz araştırdım, bu mil arasında olan mekanizma zamanla kömürleşerek zarar görebiliyormuş. Bu yüzden özellikle herkez kablo ile indiriyor enerjiyi.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: mufitsozen - 25 Kasım 2010, 17:41:52
sparkfundaki rotart encoder isinizi gorur, cikisi gray-code uretir (mekanik imkaniniz varsa, wikipediadan baska orneklere bakip, kendinizde yapabilirsiniz)

http://www.sparkfun.com/products/9117 encoder

http://www.sparkfun.com/products/9209 encoder set.

daha profesyonel birsey olsun derseniz (endustriyel) http://www.gpi-encoders.com/
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: iyildirim - 25 Kasım 2010, 18:18:03
Basit bir optik enkoder sorunlu olabilir. En azından çift kodlu bir enkoder gerekir. Tekli bir enkoder bir dönüş olduğunu belirtmesine rağmen dönüş yönünü göstermeyecektir. Motor kontrolu için üretilmiş denetleyicilerdeki QEI modülü işinizi görebilir.
Anladığım kadarı ile zaten türbinin sonsuz bir radyal dönüş imkanı yok. Bu durumda belli bir sınır değerine yaklaştığında motorla türbini ters yönde çevirerek uygun açıyı yakamanız gerekli sanırım.
ADC ve bir potla , indexli enkoder ile , manyetik pusula sensörü (HMC6352, HMC5843) ile, ve manyetik bir sensor (APS00B gibi) ile yapılabilir. Şu an hatırlayamadım ama forumda bir yerde optik enkoder diski hazırlama ile ilgili güzel bir sitenin linki de vardı.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 25 Kasım 2010, 18:43:42
Arkadaşlar, sorunumu büyük oranda çözdüm sanırım.

#include "main.h"

long encoder, encoder_eski, yon;

#int_ext
void ext_kesmesi()
{
   if (input(pin_b1)==0)
   {
      yon=1;
   }
   if (input(pin_b1)==1)
   {
      yon=0;
   }
   encoder++;
}

#define LCD_ENABLE_PIN PIN_B5
#define LCD_RS_PIN PIN_B4
#define LCD_RW_PIN PIN_B6
#define LCD_TYPE 2
#include <lcd.c>
void main()
{
   lcd_init();



   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_CLOCK_DIV_2);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_ccp1(CCP_OFF);
   enable_interrupts(INT_EXT);
   enable_interrupts(GLOBAL);

   //TODO: User Code
   
   if (yon==1)
   {
      printf(lcd_putc,"\fSAG:%ld", encoder);
   }
   if (yon==0)
   {
      printf(lcd_putc,"\fSOL:%ld", encoder);
   }
}


Burada int_ext kesmesini kullanaraktan B0 portundaki değişikliği baz alaraktan hem encoder'in yönünü okuyabiliyorum hem de gönderdiği palsleri.

Ancak şöyle bir problemim var. Ben devrede 3 adet encoder kullanacağım.
Dolayısı ile int_ext kesmesini bu 3 encoder için ayrı ayrı kullanamam.
Kesme kullanarak bunu nasıl çözebilirim.
18f452'de B3...B7 kesmesi var, bunun mantığı nedir nasıl çalışır.
Küçük bir örnek diagramla açıklayabilir misiniz...
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: yucelcem - 25 Kasım 2010, 18:46:24
helikopter modelcileri helikopterlere gyro takarlar, onları da bir inceleyebilirsiniz
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: z - 25 Kasım 2010, 18:50:15
Alıntı yapılan: yucelcem - 25 Kasım 2010, 17:07:58
anladım, sonuçta dönüşü sınırlı, peki sınırsız dönen pot'lar var mı? 360'lık turu tamamladıktan sonra yeniden başa dönen?

Bu potlar cok eski tarihlerde ozellikle askeri elektronik cihazlarda kullaniliyordu. Simdilerde ureticisi oldukca azalmistir ve siradan saticilarda bulamazsin.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: iyildirim - 25 Kasım 2010, 18:55:59
Alıntı yapılan: yucelcem - 25 Kasım 2010, 18:46:24
helikopter modelcileri helikopterlere gyro takarlar, onları da bir inceleyebilirsiniz

Gyro lar anlık açısal dönüş hızı verdikleri için hesabı oldukça karışık.  O tip  bir sensor kullanılacaksa tek eksenli bir manyetik pusula sensörü çok daha uygun olur. Genellikle I2C ile çalışıyorlar. önceki mesajımda bahsettiğim sensörler 0.5 dereceye kadar hassas yön bilgisi verebiliyorlar. Kötü tarafları ise daha pahalı olmaları. Birde türbin üzerinde çalışacakları için manyetik alan bozulmaları olabilir. İyi tarafı ise direkt yöne ayarlı olduğu için başlangıçtaki kalibrasyondan sonra enerji kesilmelerinde tekrar kalibrasyona ihtiyaç duymaması.

@stronger_ht

3. ve 4. enkoderler ne için kullanılacak, biraz açabilirmisin.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 25 Kasım 2010, 19:16:01
iyildirim, peki bir sorum olacak, bu bahsettiğin pusula sensörü bu değişimi algılayabilecek midir?

Şöyle hemen Photoshop'da iğrenç bir şema çizerek anlatayım problemimi :)

[IMG]http://img217.imageshack.us/img217/2200/trbin.jpg[/img] (http://img217.imageshack.us/i/trbin.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)

Bu şemada görüldüğü üzere, türbin tam karşıya bakıyor, ancak o an geldi ve rüzgar yön değiştirdi artık sağdan esmeye başlıyor, ancak türbin sağa dönemez çünkü 360 derecelik açıda, geriden takip etmesi lazım.
Yani mavi renkle çizdiğim oku değil de, siyah renkle çizdiğim oku takip etmesi lazım.
Bu bağlamda pusula sensörü normalde kendisi mavi renkli okun güzergahını mı gönderecek pic'e yoksa siyah okun güzergahını mı.
Eğer siyah oku takip ediyorsa, beni şuan mutluluktan uçurmuş olacaksınız, hemen bu ürünün teminine başlayacağım.
Eğer değilse, bu problemi en sağlam nasıl çözerim :)
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 25 Kasım 2010, 19:19:59
Ayrıca bir sorum olacak.
Şuan Proteus'ta simülasyonda denemeler yapıyorum. Burada MOTOR-ENCODER isimli bir encoderli motor var. Benim alacağım rotary encoder'den bilgileri okumam için encoder'i bir motormuş gibi çevirmeme gerek yok değil mi?
Besleme gerilimini verip, encoder'in ucunu da redüktörlü diğer motoruma bağladığımda encoder çalışmış olacak değil mi?

İkilemde kaldım, daha önce hiç encoder kullanmadım da :)
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: iyildirim - 25 Kasım 2010, 20:19:38
Türbinin doğal olarak serbestlik limitine geldiğinde siyah oku takip etmesi gerekir. Zaten mekanik olarak bir noktadan sonra dönemeyecek.  Türbinin serbestliğini sınırlamak mekanik olarak değil de motor ile yapılması daha iyi olacak sanırım. Eğer dişlili bir mekanik kilitleme kullanmıyorsak, kör bir açı bölgesi kalacaktır. Eğer rüzgar yönü çok genel olarak çok belirli ise bu çok büyük problem teşkil etmeyebilir. Ancak Türbinin 360 derecenin üzerinde serbestliği olması daha iyi.  Kullandığınız kablo boylarını uygun hale getirip ;

(Türbin dikmesi üzerinde rahatça bir yada iki tur sarılabilirse ki rüzgarın kör bölge açısından esmesi durumunda örneğin kör açı 45 derece olsun, rüzgarda  35 ile 55 derece açılarından esiyorsa sürekli bir tam tura yakın dönüşler yapması gerekir. Yani 5 derece yerine 355 derece dönmesi gerekir. )

720 dereceye yakın bir serbestlik sağlanması çok daha verimli olacaktır. Bu durumda ancak 2 turun sonunda bir tur geriye atmak zorunda kalınır. Kısaca +- 360 derece serbestlik olması hem uygulamayı hemde mekanik performansı artıracak.

Sisteme genel olarak bakınca;
        --Bir adet türbinden bağımsız ve serbest olarak hareket edebilen rüzgar gülümüz ve üzerinde sensorümüz var. Rüzgar gülü radyal olarak sonsuz serbestlik derecesine sahip olduğunda enerji  beslemesi ile ilgili sorun çıkacaktır. Motor ile belli bir bir serbestlik derecesinde tutulmalı. Ancak motor da rüzgarın çevirebileceği kadar yumuşak olmalı. Diğer bir seçenek de rüzgar gülü için kullanılan sensörün APS00B  gibi bir sensör olup sabit olarak montajının yapılması ve rüzgar gülüne bir çubuk miknatıs takarak yön bulmak.

        --Birde üzerinde sensor olan ve motorla yönü ayarlanabilen ve üzerinde buna bağlı sensör olan türbinimiz var.

Bundan sonrası iki sensörden gelen bilgileri okumak uygun bir filtreden geçirmek ve turbin için yumuşak hareket etmesini sağlayacak bir PID kullanarak iki sensörün aynı açıya bakmalarını sağlamak ve serbestlik derecesinin limitine gelince 360 derece geriye döndürmekten ibaret olur.

Hoşçakalın
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: justice_for_all - 25 Kasım 2010, 23:50:10
Alıntı yapılan: stronger_ht - 25 Kasım 2010, 18:43:42

#int_ext
void ext_kesmesi()
{
   if (input(pin_b1)==0)
   {
      yon=1;
   }
   if (input(pin_b1)==1)
   {
      yon=0;
   }
   encoder++;
}



arkadasim yukaridaki koddaki hatayi soyleyim sana int0 kesmesinde sadece yukaridaki if kosullarindan birine girer....

yukaridaki yaptigin rb4-rb7 kesmelerinde calisir ancak..rb4-rb7 kesmelerinde pinde olusan her degisiklikte kesme olusur (1'den 0'a veya 0'dan 1'e)

Fakat int0 kesmesinde ise donaniminiza gore ya her yukselen kenarda yada her dusen kenarda meydana gelir...
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stlg - 26 Kasım 2010, 00:19:08
Burada senin icin en onemli nokta encoder secimi, incremental olanlar ile calısman cok zor olur, cunku elektrik gittiginde bulundugu konumu unutur, sen elektrik kesintisini algılayıp konumu hafızaya almalısın ,buda bircok problemi beraberinde getirir, ama absolute tur kullanırsan,okuma sorunların ortadan kalkar, elektrik geldiginde bulundugun konum ile ilgili bilgileri yeniden cok kolay bir sekilde okursun
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: necati - 26 Kasım 2010, 02:17:27
CP-45H  hall effect pot
http://www.midori.co.jp/70english.html
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 26 Kasım 2010, 10:20:15
Alıntı yapılan: stlg - 26 Kasım 2010, 00:19:08
Burada senin icin en onemli nokta encoder secimi, incremental olanlar ile calısman cok zor olur, cunku elektrik gittiginde bulundugu konumu unutur, sen elektrik kesintisini algılayıp konumu hafızaya almalısın ,buda bircok problemi beraberinde getirir, ama absolute tur kullanırsan,okuma sorunların ortadan kalkar, elektrik geldiginde bulundugun konum ile ilgili bilgileri yeniden cok kolay bir sekilde okursun

Üstat, benim kullanacağım encoder bu. Rotary Encoder. Sence işimi görür mü, elektrik kesintilerinde vs. sorunsuz çalışır mı?

http://image.ec21.com/image/kwangwo/oimg_GC01295367_CA01295467/Rotary_Encoder.jpg
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stlg - 26 Kasım 2010, 11:38:03
 Senin encoder sanırım artımlı tip elektrik kesintilerinde buyuk sorunlar cıkar, bulundugun konumu hafızaya almalısın ,oncelikle bu encoder yapılarını cok iyi incele ,optik yapacagın sistemlerdede aynı sorunu yasayacaksın, yukarda arkadasların belirttigi gib pot turu bir uygulama daha basit ve kararlı olur
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: KAZIMUGUR - 26 Kasım 2010, 12:05:32
Gray code li bir encoder ile her zaman tam yönünü okuyabilirsin.
Elektrik gitti gidiyor gelirmi demezsin.
Basit bir encoder fazla bir şey çekmez ups bağlarsın , pille çalıştırırsın vsvsvsvs.

....mil arasında olan mekanizma zamanla kömürleşerek zarar görebiliyormuş....
Muş 49 plakalı ilimiz.
Bebe şebe yaptı ise bir şey diyemem.
Yıllardır sayısız sistemde hemde dakikada 1500-3000 devir gibi hızlarda , hareketli sistemlerden durağan sistemlere , hemde binlece kilowat enerji akratılabiliyor.
Basitce bakır halka ve "zaten kömür" fırçalar şimdiye kadar hiç şikayet etmeden vazifelerini yaptılar yapıyorlar.

Gray code li basit ama etkili kendi yap kendin kullan disk hesapları filan , daha önce verilmişti diye hatırlıyorum...
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 26 Kasım 2010, 12:30:58
Alıntı yapılan: stlg - 26 Kasım 2010, 11:38:03
Senin encoder sanırım artımlı tip elektrik kesintilerinde buyuk sorunlar cıkar, bulundugun konumu hafızaya almalısın ,oncelikle bu encoder yapılarını cok iyi incele ,optik yapacagın sistemlerdede aynı sorunu yasayacaksın, yukarda arkadasların belirttigi gib pot turu bir uygulama daha basit ve kararlı olur

Üstat, şu şekilde bir mantık kurdum;
Öncelikli olarak bir kalibrasyon ayarı yaptıracağım sisteme. Örneğin motoru çalıştırdık, A noktasından B noktasına kadar motor çalıştığı için encoder sayacak. Diyelim 500 sayısı ortaya çıktı. Bu 500 sayısını PIC'in hafızasında bulunduracağım. Daha sonra motoru çalıştıracağım zaman hafızadaki 500 sayısını tamamlamak üzere çalıştıracağım. Her işlem tamamlandığında ise encoder'den gelen bilgiyi sıfırlayacağım.

Yani;

A......B arası 500 ise;
Motor A noktasındayken B noktasına gitmek için encoder'den 500 sayısını tamamlayacak. Tamamlandığında enerji kesilecek.
B......A arası gitmek istiyorsa yine hafızada sakladığım 500 sayısı kadar motoru ters çevireceğim .

Sisteminde çok hassas verilere ihtiyacım yok ve motor A.....B arası bir yerlerde stop etmeyecek. Ya A noktasında ya da B noktasında olacak. Bu yüzden konum bilgisine çok da ihtiyacım yok açıkcası.

Bu durumda sanırım elimdeki rotary encoder işimi görmüş olacak.


KAZIMUGUR hocam, bilemiyorum nasıl bir yöntemle yaptılar ama, böyle birşeyin söz konusu olduğunu söylemişlerdi, çok tecrübeli olmadığım için birşey söyleyemeyeceğim.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: KAZIMUGUR - 26 Kasım 2010, 12:43:16
Mesela

http://www.kartal-elektrik.com.tr/product.aspx?pId=14 (http://www.kartal-elektrik.com.tr/product.aspx?pId=14)
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 26 Kasım 2010, 14:18:00
Alıntı yapılan: mufitsozen - 25 Kasım 2010, 17:41:52
sparkfundaki rotart encoder isinizi gorur, cikisi gray-code uretir (mekanik imkaniniz varsa, wikipediadan baska orneklere bakip, kendinizde yapabilirsiniz)

http://www.sparkfun.com/products/9117 encoder

http://www.sparkfun.com/products/9209 encoder set.

daha profesyonel birsey olsun derseniz (endustriyel) http://www.gpi-encoders.com/

Projede bir değişiklik söz konusu oldu :)
İstediğim encoder'lar oldukça pahalı çıktı. İzmir'de 100 TL'yi aşan civarlarda bulabildim ancak.
Alternatif olarak Sparkfun'daki ürün ilgimi çekti. Bu ürün tam olarak encoder gibi mi çalışır? İngilizcem olmadığı için tam olarak anlayamadım.
Yani encoder deki gibi A,B,Z uçları mevcut mudur. Encoder yerine direk bu ürünü bağlasam sorunsuz çalışır mı?
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: picmanya - 26 Kasım 2010, 14:34:42
100 pals quadrature enkoder
dc 5 volt
A ve B uçlu index yok
toplam 2 besleme 2 de kontrol ucu olmak üzere 4 telli
bu enkoder sizin işinizi çözmezmi?
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 26 Kasım 2010, 14:46:30
Aslında 2 motorum için çözer, ancak gövdenin dakikadaki devrini ölçmek için de bu ürünü kullanmak istiyorum, bu yüzden de, adım başı değil de encoder'ların verdiği tam tur bilgisi var, tam tur olduğunda da sinyal verseymiş tam aradığım ürün olurmuş :)

Ama sanırım devir olayını endüktif sensör ile çözeceğim. Daha önce CNY70 ile çözeyim dedim ancak sorunlar çıkabiliyor, sensörün bulunduğu ortam pek müsait olmayabiliyor.

Peki bu ürüne güvenebilir miyim sizce. Yani encoder kadar hassas sonuç verir mi?
Hassaslıktan kastım da şudur, ürünü kullandıktan 2 ay sonra bu sparkfundaki sensör bozulma ya da sağlıksız sonuç verme gibi durumu olur mu?

Az önce çankayada 2. onur çarşısına gittim, sonsuz pot lara bakmaya, bulamadım, 10 tur sınırlı potlardan buldum o da işimi görmüyor zaten.

Özetle, bu ürün düşündüğüm gibiyse işimi görecektir, ürünü temin yoluna bakacağım...
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 26 Kasım 2010, 17:05:22
Arkadaşlar bugün aşağıdaki linkteki üründen 2 adet siparişte bulundum, umarım sonuçlar istediğim gibi çıkar, denemeleri yapıp sonuçlarını burada açıklayacağım. Fiyatları da bana göre ucuz geldi, tabi encoder görevini görüp hem ebatı küçük hem de fiyatı düşük olunca ilgi çekici geldi :)

http://www.robitshop.com/Rotary-Encoder,PR-511.html

2 Adet toplamda 21 TL tuttu...
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: yucelcem - 26 Kasım 2010, 18:01:20
bu nasıl kullanılıyor? dönen eksenin merkezine mi bağlayacaksın?
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 26 Kasım 2010, 18:03:36
Evet, aynı encoder mantığı ile çalışıyor. Anladığım kadarıyla tek farkı encoder tur bilgisi de veriyor, bu sensörde tur bilgisi olayı yok. Sadece A ve B bilgisi veriyor. Bu sayede hem hangi yöne döndüğünü bulabiliyoruz hem de kaç adımla döndüğünü okuyabiliyoruz. Umarım ürün beklediğim gibi olur, oldukça başarılı ve ucuz bir ürün gibi gözüküyor.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: yucelcem - 26 Kasım 2010, 18:15:00
adımları kaç derece?
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 26 Kasım 2010, 18:17:40
Alıntı YapBu, hoş bir tıklama hissi ile 12-adım döner enkoderdir. Standart breadboardlarla uyumlu, oldukça kullanışlı, adımları kolaylıkla hissedebileceğiniz bir enkoderdir. Bu ürün, normal potonsiyometrelerden çok farklıdır. İçinde sınırsız hassasiyet özelliğine sahip enkoder bulunmaktadır. Ünite çıkışları gri koddur(binary kod), yani enkoderin ne kadar ve hangi yöne döndüğünü rahatlıkla görebilirsiniz.
Bu satıcı'nın açıklamasıdır.

Bu da Şeması
http://www.sparkfun.com/datasheets/Components/TW-700198.pdf (http://www.sparkfun.com/datasheets/Components/TW-700198.pdf)

Sanırım 30 Derece.
Bir de kafama takılan birşey var, bu 12 adım döner enkoderdir deniliyor satıcı açıklamasında, bu ne manaya geliyor. 12 turdan sonra sona mı geliyor yoksa?


Bu arada kendi soruma kendim cevap vereyim :)
İyi kötü ingilizcem varmış benim de yeni farkettim.
Bu 12 adım dediği, tam tur bilgisini veriyor sanırım. 30 derecelik açılarla döndüğü için 12 adım attığında tam tur döndüğünü anlıyoruz.
Bu bağlamda encoder'deki tam tur bilgisini donanım olarak değil de yazılımsal hesaplarla alabilmiş olacağız. Normal encoderler'dan çok farkı yok, basit ve çok hassas verilere ihtiyaç olmayan uygulamalarda bu ürün çok mantıklı olur diye düşünüyorum. Benim işimi görecektir büyük ölçüde.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: yucelcem - 26 Kasım 2010, 18:21:11
30 derece olamaz çok fazla bence
sınırsız hassasiyet diyor birşey anlamadım =)

encoderların mantığını pek bilmiyorum, bu alet sürekli pozisyon bilgisimi verecek yoksa artış miktarını mı gösterecek?
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: KAZIMUGUR - 26 Kasım 2010, 18:22:37
Alıntı Yap
... gri koddur(binary kod)...

Kodu gri imiş  yaramaz şöyle renkli bir şeyler olsa daha iyi... ::)

O satıcı pazarcılıktan gelme galiba.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: iyildirim - 26 Kasım 2010, 18:29:07
Bahsedilen enkoder 360 dereceyi 12 ye bölebiliyor. 30 derecelik hassaiyeti var. Bu durumda 2 turlu gibi bir pot daha çok işe yarayabilir.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 26 Kasım 2010, 18:32:21
Valla arkadaşlar ben de anlamadım açıkcası :)
Ürün şuan kargoda, Ankara'dan İzmir'e gelecek, yarın gelmiş olur tahminen, geldiğinde deneyip sonuçları bildireceğim. Umarım işimi görür.

iyildirim, 2 turlu pot dediğin 2 tur atınca sonuna dayanıyor değil mi?
Eğer öyleyse o işimi görmüyor, sonsuz tura ihtiyacım var, bunu motor miline bağlayacağım için, motor o an belki 10 tur atacak belki 5 tur. Belki de daha fazla, bu yüzden sonsuz tur özelliğine sahip olması benim sorunumu büyük ölçüde çözecek.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: yucelcem - 26 Kasım 2010, 18:37:55
motor miline bağlayıp nasıl rüzgar yönü tayin edeceksiniz? Ayrı bir düzenek kurmanız gerekmez mi
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 26 Kasım 2010, 18:42:04
Rüzgar ölçümi için elimdeki normal encoder'i kullanacağım, hassas olduğu için. Bu küçük encoderları ise motorlara bağlayacağım. 3 adet motor var devremde, bunların yönünü ve tur bilgisini almak için kullanacağım. Tabi testlerin sonucuna göre, rüzgar sensöründe de bu ürünlerden kullanabilirim, tamamını denedikten sonra karar vereceğim. Tabi bu minik encoder'da hassasiyet düşük olduğu için rüzgar ölçümünde kullanmayabilirim. Ancak rüzgar sensöründe normal encoder, gövdeyi çeviren motorda da minik encoder kullanırsam hassasiyetleri uymayacağı için sorun çıkarabilir. Dediğim gibi tamamını test edip öyle karar vereceğim.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: yucelcem - 26 Kasım 2010, 18:44:10
anladım dediğinizi, peki rüzgara yöneldikten sonra oynamaması için ne yapacaksınız?
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 26 Kasım 2010, 19:06:52
Oynamama gibi bir olay zaten söz konusu değil, çünkü türbin gövdesi rüzgarla tam karşıkarşıya olsa bile küçük salınımlar olacaktır. Rüzgarın şiddetinden dolayı sağa sola hafifçe dönecektir, bu basit değişimleri yazılım göz ardı edecek. Belirli bir derecenin üzerinde değişim olursa harekete geçecek. Böylelikle sensör rüzgar yönüne göre yön değiştirdikten sonra yine küçük salınımları dikkate almayacak. Bu kontrolü programsal şekilde yapacağım.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stlg - 27 Kasım 2010, 00:37:02
Eger bahsettigin enkoderları bir referans noktasından ise baslayarak kullanmak istersen, a-b cıkıslarının yanında z cıkısınıda incele, elektrik her gelisinde sistemi z oktasına goturur ,sonra konum işlemini yapabilirsen ,hafıza olayına gerek kalmaz, gray kod ureten sistemlerde sizin isinizi gorebilir asansorculer kullanıyor diye biliyorum
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: iyildirim - 27 Kasım 2010, 10:04:43
@stronger_ht

Anlayabildiğim;
Mekanik olarak türbin 1 tur yada biraz daha az dönebiliyor. Önerdiğim eğer mümkünse, mekanik olarak kilitleyen bir engel yok ise, türbinin kontrolünün tamamen onu onu kontrol eden motorla yapılması ve başkaca bir mekanik engel (kablo boyunu uzatmak dışında) yok ise türbinin 2 tur yani toplam 720 derece dönebilmesine izin verilmesi.

Alıntı yapılan: stronger_ht - 26 Kasım 2010, 18:32:21
iyildirim, 2 turlu pot dediğin 2 tur atınca sonuna dayanıyor değil mi?
Eğer öyleyse o işimi görmüyor, sonsuz tura ihtiyacım var, bunu motor miline bağlayacağım için, motor o an belki 10 tur atacak belki 5 tur. Belki de daha fazla, bu yüzden sonsuz tur özelliğine sahip olması benim sorunumu büyük ölçüde çözecek.

Benim bahsettiğim 2 veya çok turlu pot derken; bunun  redüktörlü motorun,  motor tarafına değil, redüktor yani türbin tarafına takılacağıdır. Sonuç ta dönme hareketinin motordan veya türbinden okunmasının tek farkı sizin programızında yapacağınız değişikliktir. Zaten anladığım kadarı ile turbin en fazla 1 veya 2 tur luk bir dönme hareketi gerçekleştirebiliyor.

Rüzgar gülü konusunda da bilinmesi gereken rüzgar gülünün dairesel olarak sonsuz bir dönme yeteneğinin olup olmadığı.
Sonsuz dönme yeteneğinin olduğu durumda kullanılabilecek sensörler;
-- 1 turlu kilitlemesiz, 360 dereceye oldukça yakın ölçme aralığı olan bir pot.
-- Manyetik mıknatıs sensörü
-- Manyetik pusula sensörü
-- Bulunulan dairesel pozisyonu yeterince hassa okuyabilecek çok kanallı optik enkoder
-- Çözünürlüğü yetiyorsa aldığınız enkoder veya daha hassas olan bir model

Burada önemli olan nokta sisteme enerji verildiğinde sistemin kendini nasıl kalibre edebileceği. Bunu da türbin ve rüzgar gülü için ayırmak gerekli.
Türbin için mantıklı görünen direkt olarak türbine bağlı çok turlu bir pot. Bu şekil de ilk enerji verildiğine pottan alınan gerilimden direkt olarak (360 veya 720 derece yada her neyse) dairesel serbestlik derecenizin neresinde olduğunuzu anlayabilirsiniz.  Rüzgar yönünün değişmesi durumunda da sadece pottan hedeflediğiniz gerilimi alana kadar motora enerji vermek yeterli olacaktır. Adeta Çok turlu olan model servoları gibi. (Model teknelerdeki halat çekme servoları)

Rüzgar gülü için pot, manyetik pusula-sensör,  yada yeterince çok kanalllı bir optik enkoder kullanıyorsanız rüzgar gülünden de pozisyonunu direkt olarak okuyabilirsiniz. Bu durumda pozisyon bilgisi direkt olarak elde edilebilir.
Eğer rüzgar gülünde kullandığınız sensor size pozisyon-açı belirtmiyor, sadece darbe üreten cinsden bir sensör ise; bu durumda rüzgar gülünün üzerinde en azından index kanalı da olabilen bir enkoder olmalı ve uygulamanız rüzgar gülünü bir motorla hareket ettirip başlangıç pozisyonu yada sıfır dereceyi bulduktan sonra enkoder darbelerini saymaya başlamalı. Bu durumda rüzgar gülü, rüzgara rağmen rüzgar gülünü döndürebilecek kadar güçlü ve rahat hareket edebilecek küçük bir motora bağlanmalı.

Bundan sonrası tamamen yazılıma kalıyor ki yazılımda oldukça rahat bir şekilde modellenebilir, gerçekleştirilebilir olarak görünüyor.

Seçeneklerin çok fazla ve belirsiz olmasının nedeni mekanik sistem ile iligli bağlayıcı şartların ve tercihlerinizin tam olarak bilinmemesi ve biraz da maliyet gibi sınırlandırıcılarla ilgili belirsizlik.
Özellikle mekanik sistem ile ilgili olarak düşüncelerinizi, tercihlerinizi belirtirseniz konu daha anlaşılır olacak.



Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: KAZIMUGUR - 27 Kasım 2010, 10:22:26
Çizgi izleyen yap.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 27 Kasım 2010, 14:16:12
Arkadaşlar dün sipariş ettiğim minik rotary encoder lar geldi. Oldukça kullanışlı bir ürüne benziyor. Bu ürün anladığım kadarıyla sadece darbe bilgisi veriyor ve üzerinde bir de button özelliği var.
Benimse düşündüğüm olay şudur.
Bu minik encoderin birini rüzgar gülüne, diğerini gövdeyi hareket ettiren motora bağlayacağım.
Diyelim rüzgar şuan sabit esiyor ve herşey normal, sonrasında rüzgar sağdan esmeye bağladı, rüzgar gülü hareket etti ve ben hareket esnasındaki darbe sayısını ve yönünü belirledim programda.
Sonrasında elde ettiğim değerler türbin gövdesinin dönüş açı sınırını geçiyorsa, 360 derece'den, rüzgar gülünden aldığım darbe sayısını da orantıyla hesaplatarak ve iki değeri birbirinden çıkartıp gövde motorunu ters yöne çevireceğim. Böylelikle biraz da dene yanıl yöntemi ile rüzgar gülünün belirttiği noktaya gövde dönmüş olacak. Şuan tam anlatamadım ama, denedikten sonra mantıklı bir açıklama yapacağım.

Eğer sorunu bu ürünle çözemez isem, türbinin mekaniksel aksağanını burada görsel anlatırım, ona göre en matıklı sonucu tartışırız.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 27 Kasım 2010, 17:23:49
Kafayı yemek üzereyim, bugün çok uğraştım bu devreyle beynim durdu.

Arkadaşlar, enkoder'den pulse sayıp değişkene atıyorum. B4...B7 kesmesi kullanarak sayıyorum. Yön tayini de yapabiliyorum.
Eski ve yeni değer bilgisi tutamıyorum. Yapmak istediğim şu.
2 değişkenim var, diyelim isimleri eski ve yeni olsun.
Yeni değişkeni kesmede eğer b4==1 se yeni değişkenini bir artıyor. Ancak encoder durduğu zaman, yani motor dönmediği zaman tur atlamadığı zaman yeni değişkeninin değerini eski değişkenine atmayı istiyorum ki işlem yaparken iki değeri çıkarıp ne kadar turluk işlem yapmasını belirlemem gerekiyor.

Bu olay CCS C'de nasıl oluyor?  :-\
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: yucelcem - 27 Kasım 2010, 17:27:16
2 tane değişken daha tanımlayıp birine yeni değişkeninin değerini atıp, birine de farkın sonucunu atsanız?
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 27 Kasım 2010, 17:35:19
Tam olarak anlayamacım yucelcem :)
Bir örnek yazabilir misin?

#int_rb
void rb_kesmesi()
{
   govde_enk_eski=govde_enk;
   if (input(pin_b4))
   {
      if (input(pin_b1))
      {
         govdeyon=1;
      }
      else
      {
         govdeyon=0;
      }
      govde_enk++;
   }
}
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: yucelcem - 27 Kasım 2010, 17:47:11
ben hiç c bilmem, aslında sorunuzu da tam anladığımı söyleyemem, anladığım kadarıyla sorununuz, eski sayısına yeni sayısını atamak istiyosunuz, çıkarma işlemi yapıcaksınız ama eski sayısının kaybolmasını istemiyosunuz, ben de dedim ki eski değerinin yerine bir değişken seçin onu çıkarma işleminde kullanın diğeri değişmeden kalsın, sonra da fark değerini başka bir değişkene atın
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 27 Kasım 2010, 17:57:21
Hocam ben kısacası encoderin şuan dönüp dönmediğini algılamak istiyorum. Burayı çözersem ilerleyebileceğim :)
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: frkcn - 27 Kasım 2010, 18:05:47
Ben soruyu şöyle anladım encoderden bilgi geliyor

kesme meydana geliyor pin.b4=1 oluyor

yeni++ oluyor
pin.b4=0 olduğunda ""yeni"" değişkeninin değerini ""eski"" ye kaydetmek istiyorsun ???? doğru mu anlamışım ?

#int_rb
void rb_kesmesi()
{
   govde_enk_eski=govde_enk;
   if (input(pin_b4))
   {
      if (input(pin_b1))
      {
         govdeyon=1;
      }
      else
      {
         govdeyon=0;
      }
      govde_enk++;
   }
}


işallah doğru anlayıp saçma bir cevap yazmadım :|
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: yucelcem - 27 Kasım 2010, 18:19:48
bence soruyu daha açıklayıcı şekilde yazarsanız daha açıklayıcı cevap alabilirsiniz
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: iyildirim - 27 Kasım 2010, 19:16:25
A ve B kanalları hangi pinlere bağlı ve kesme hangi pin değiştiğinde oluşuyor bilmek lazım.

Edit
Eğer bu enkoder standart bir AB kanallı enkoder gibi davranıyorsa datasheette CW ve CCW yönleri için gösterilen şemadaki kesikli dikey çizgiler 4 turu ifade ediyor demektir.
Bu şekilde ise yukarıdaki kod ile yönü algılamak mümkün değil.
Zaten enkoderin alındığı sitedeki örnek arduino kodunda da böyle olduğu görülüyor.
Bu durumda yön algılama kesme ile yapılacaksa kesme her iki kanalın hem yükselen hemde düşen kenarlarında oluşmalı.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 29 Kasım 2010, 10:26:56
Şöyle arkadaşlar,
Şimdi ben devremde 4 ayrı bu minik encoder'lardan kullanacağım. Dolayısı ile B4....B7 kesmesini kullanmak istedim.
Encoderlar'da A ve B çıkışları mevtur. İnternette araştırdığım kadarıyla da temelde encoder gibi çalışmakta. Yani yön bilgisi alabiliyorum diye biliyorum ama o çok çok önemli bir olay değil.
Benim istediğim şudur.
Rüzgar gülüne bağlı olan encoder harekete başladığında yeni isimli değişken değer artırmaya başlayacak. Rüzgar gülündeki hareketlenme durduğunda ise yeni isimli değişkenin değeri, eski isimli değişkene aktarılacak.
Buradaki aktarma işlemini yapamıyorum işte. İki değişken değerleri de aynı esnada artıyor.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: frkcn - 29 Kasım 2010, 15:00:23
#int_rb
void rb_kesmesi()
{
   govde_enk_eski=govde_enk;
.
.
.

//  sorun burda olabilirmi ? kesme her gerçekleştiğinde sen zaten enkoder değerini eski enkoder değerine atıyorsun. ikisinin de aynı orantıda artması normal değilmi..
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 29 Kasım 2010, 15:48:44
Orayı kaldırarak da denedim. Yani sizce atamalar hangi aşamada olmalı.
Yani kısaca özetleyecek olursam, B4....B7 kesmesini kullanarak bilgi okuduğum encoder'in en son değerini bir başka değişkene, yeni değerini de bir başka değişkene almak istiyorum.
Encoder bilgi gönderme işlemini kestiğinde ise son değeri yine eski değişkenine aktarmak istiyorum. Bu aktarım işlemini nerede yapacağımı kestiremiyorum.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: iyildirim - 29 Kasım 2010, 16:09:23
stronger_ht

aklından ne geçiyor anlamadım.

Alıntı yapılan: stronger_ht - 29 Kasım 2010, 10:26:56
Encoderlar'da A ve B çıkışları mevtur. İnternette araştırdığım kadarıyla da temelde encoder gibi çalışmakta. Yani yön bilgisi alabiliyorum diye biliyorum ama o çok çok önemli bir olay değil.
Burada yön bilgisi neden önemli değil. sonuçta kullanıdığın enkoder sana sadece darbeler üretiyor. yön bilgisi olmadığında sadece saat yönünde veya tersi yönde ilerleme olmazmı?

Alıntı yapılan: stronger_ht - 29 Kasım 2010, 10:26:56
Rüzgar gülündeki hareketlenme durduğunda ise yeni isimli değişkenin değeri, eski isimli değişkene aktarılacak.

Bu işi kesmelerle yapıyorsan Rüzgar gülündeki hareket durduğunda yani darbeler gelmiyorken nasıl kesme üretilecek, veya kesme dışında bu işi yapmak istesen zaten eski yeni değişkenlerinin içerikleri aynı olmayacakmı.

Eski - yeni değişken yerine tek bir değişken üzerinde bilgini tutsan , yöne de bağlı olarak bu değişkenin değerini arttıp azaltarak açı bilgisini elde ediyor olsan, bunda ki sorun nedir. 

Ayrıca verdiğin kod örneği elindeki endoder'i okumak için yeterli değil. Ürünün sitesindeki kodları incelemeni öneririm.
http://www.sparkfun.com/datasheets/Components/RotaryEncoder.pde (http://www.sparkfun.com/datasheets/Components/RotaryEncoder.pde)



Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 29 Kasım 2010, 16:23:28
iyildirim, çok özür dilerim, sorunumu anlatamadım bile :)
Şuan sistemde değişikler söz konusu, o minik encoder'ları kullanmama kararı aldım, normal encoder kullanacağım.
Bunun yanında birkaç değişiklik daha var, henüz denemeler aşamasındayım, başka sorunlarla karşılaşırsam yardım isteyeceğim, sorun çıkmaz ise, son aşamayı burada detaylı paylaşırım....Kolay gelsin.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: frkcn - 29 Kasım 2010, 17:34:39
ben senin derdini anladım aslında tahminime göre rüzgarın yönünü rüzgar gülünle tayin edip elektriği üreteceğin ana mekanızmanı bu yöne çevirmek istiyosun. Tabi bu senin verdiğin kod örneğinde bu işllem zor. Port değişiklik kesmesi farklılık olduğunda devreye girecek ve rutin çalışacaktır. Ama enkoder bilgisi gelmediğinde bu rutine girme işlemi gerçekleşmeyecek. Dolayısıyla interrupt rutuninden çıkarken elde ettiğin enkoder bilgisini ana program döngün içerisinde belirli zamanlarda eski değişkenle b4-b7 pinlerini tekrar okuyarak karşılaştırman gerekecek. eğer fark yoksa zaten yön değişmemiştir. fark olduysa yön değişkeninden  ve enkoderden aldığın bilgiyle ana mekanızmanı gerekli yönde döndürebilirsin. 

sanırım atama yaptığın yer int. rutuninde doğru yerde
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 30 Kasım 2010, 14:19:10
Arkadaşlar, basit bir öneri sorusu soracağım.
Şimdi bendeki rotary encoder 12V'luk bir çıkış veriyor. Benim bunu pic ile okumam için lojik seviyesine düşürmem gerekiyor.
Ben normalde LM324 ile bir devre gerçekleştirdim. Rotary encoder çok hassas olduğu için, sizde bu devre yeterli seviyede iş görür mü?

[IMG]http://img255.imageshack.us/img255/5581/91533954.jpg[/img] (http://img255.imageshack.us/i/91533954.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)

Denemek için encoder'a hemen 12v verdim, ölçü aleti ile de adım değiştikçe voltajı ölçtüm, 10V gibi bir voltaj çıkıyor, ama tabi çok hassas olduğu için LM324 ile sağlıklı okuma yapabilir miyim. Yoksa başka bir yöntem mi denemeli?
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: fatihbarut - 17 Aralık 2010, 13:15:32
Merhaba
Bence rüzgar yönü için enkoder kullanmayın.
Kendiniz yön belirleyici sensör yapın. Ana hatları vereyim.
Eskiden filimlerde görünen ecnebi evlerinin üstünde horoz şeklinde rüzgarın yönünü gösteren bir düzenek vardı. Ona benzer bir düzenek kurun.
çizgili silindir şekerler vardır ya. onlardan birini düşünün üstünde sadece bir çizgi olsun. Siz de aynı şekilde düzeneğin yuvarlak milinin üstüne böyle bir çizgi şeklinde 5v bağlı bir tel koyun.

Sistemin milini daire şeklinde bir deliğe oturtun.
Bir PIC'in 8 pinini aynı deliğin çevresine belli aralıklarla bağladığınız 8 adet (4 ana 4 ara yön) iletkene bağlayın.

Mil ne tarafa dönerse o taraftaki pine high sinyali gönderecek ve siz yönü anlayacaksınız. Benzer mantıkla 8 yerine daha fazla alıcı kullanarak hassasiyet arttırılabilir.
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 17 Aralık 2010, 16:51:21
fatihbarut, tavsiyen için teşekkürler. Ancak şöyle bir sorunumuz var.
Döner mekanizma 360 derece dönmemesi gerekiyor. Bu mekanizmanın hareket alanı maximum 350 derece. Bu yüzden, encoder'den gelen bilgiyi, tur ve yön olarak pic ile alacağım, sonrasında gövdeyi ona göre hareket ettireceğim.

Ancak sorunum şu.
Encoder'i okuyabiliyorum. Yalnız encoder'in eski değerini alamıyorum. Eski değeri almam gerekiyor ki, o an döndüğünde kaç tur dönmüş farkını alabileyim. Bu sorunu nasıl çözebilirim?
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: mufitsozen - 18 Aralık 2010, 15:13:11
sparkfun sitesindeki bu wind vane/anemometre gibi bir kiti alsaniz hem daha kolay hemde daha ucuz olmazmi?

http://www.robitshop.com/Weather-Meters,PR-164.html

ikinci ve ucunculer gerekirse kendiniz yaparsiniz. Tecrube edinirken sarf edeceginiz zaman ve parayi malzemeye vermis olursunuz.

buda benim nacizane fikrim tabiiki! :-)

bu arada wind vane diye googleda ararsaniz cok fazla faydali bilgi var.

kolay gelsin.

Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: stronger_ht - 18 Aralık 2010, 15:33:49
Bu ürün 209 TL'ye geliyor :)
Daha pahalı olmuş olacak bana.
Diğer türlü 80 TL'lik rotart encoder ile basit bir düzenek işin donanımsal kısmını çözmüş oluyor zaten.

Ancak program kısmındaki olayı çözmem gerekiyor.

Encoder'i okuyabiliyorum şimdi.
Ancak encoder pals saydı saydı durdu, tekrar saymaya başladı diyelim, resetlemeyi yapamıyorum.
Yani bir önceki hareketinde kaç tur saydı bulamıyorum. Sorunum tam da burada başlıyor aslında...
Başlık: Ynt: PIC18f452 CCS C İle Devremde 4 Adet Encoder Okuma
Gönderen: KAZIMUGUR - 18 Aralık 2010, 19:49:48
Başka forumlardan da izlediklerimden gördüğüm o ki , rüzgarcılar bir ,  perendevciler iki , dedektörcüler üç , hiç laf dinlemiyorlar.
Kendi istediklerinden başka şey söyleyenleri takmıyorlar.
O yüzden basit sorunlar bile sayfalar dolusu .....

Bu forumda biraz arasan internette olabilecek en iyi kodları bulabilirdin.
@ETE hocam o işi çözeli çok oldu , sağolsun .

Baştan itibaren konuyu gözden geçir ve başka yerde duyduklarını bir kenara bırakıp buradaki alternatif çözümleri iyice düşün-araştır.
Saat pandülü bile çözüm için fikir verebilir , belli mi olur ? ::)