Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Microchip PIC => Konuyu başlatan: systech - 05 Temmuz 2014, 13:23:26

Başlık: 18f46k22 encoder okuma problemi
Gönderen: systech - 05 Temmuz 2014, 13:23:26
usta lara selam olsun yaptığımız projede dc motor 100ppr 2 kanal encoder kullanıyoruz. encoder a ve b kanallarını 18f46k22 nin RB0/INT0 - RB1/INT1 girişlerinden okuyoruz. Sorun şu test sisteminde 1 kart encoder okuma hatası verirken bir diğer kart çalışıyor. Bir türlü çözemedim bu konuda tecrübelerinizi ve bilginizi rica ediyorum.
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: Salih - 06 Temmuz 2014, 13:59:34
Alıntı yapılan: systech - 05 Temmuz 2014, 13:23:26
usta lara selam olsun yaptığımız projede dc motor 100ppr 2 kanal encoder kullanıyoruz. encoder a ve b kanallarını 18f46k22 nin RB0/INT0 - RB1/INT1 girişlerinden okuyoruz. Sorun şu test sisteminde 1 kart encoder okuma hatası verirken bir diğer kart çalışıyor. Bir türlü çözemedim bu konuda tecrübelerinizi ve bilginizi rica ediyorum.

@systech sizin ki gibi kısıtlı bilgiler içeren sorular yüzünden forum da bazı arkadaşlar da medyum özellikleri
gelişmeye başlayacak. :)
Biraz şema ve kod bilgisi verirsen iyi olur.
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: Kabil ATICI - 06 Temmuz 2014, 14:25:33
@systech
Öncelikle entegreleriniz smd değil ise (hatta olsa bile)  ve soketli ise, entegreleri (işlemci) değiştirilip bakılabilir, En azından entegreden kaynaklanan bir sorun olmadığı görülür,
Encoderler yer değiştirilir, sorun var mı bakılır,
Lehimlen tazelenebilir soğuk lehim ihtimaline karşı,
Kart üzerindeki yollar incelenebilir çatlak veya kopukluk ihtimaline karşı,
Kartların çalışması osilaskop ile incelenebilir,
yanlış değerli bir eleman takılmasına karşı kart incelenebilir,
EK:sorduğun sorunu resim, şema gibi öğelerle desteklersen daha fazla kişi yardımcı olabilir. Bildiğin gibi elektroniğin dili ortaktır o da şemadır.
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: systech - 06 Temmuz 2014, 16:55:57
Çok özür dilerim. Olmazsa olmazı unuttum 18f46k22 44pin TQFP bağlantı şeması yükledim yapısal bir hata yapmış olabilirmiyiz? sizin tavsiyeleriniz ne doğrultuda olurdu. Lütfen benimle paylaşırsanız sevinirim.
(http://s21.postimg.cc/qo7n308c3/taslak.jpg) (http://postimg.cc/image/qo7n308c3/)
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: Kabil ATICI - 06 Temmuz 2014, 20:12:27
SMD sistemlerde hata olasılığı yüksek olabiliyor. İki bacak arasına kaçmış bir çapak, gözden kaçan bir kısadevre,yanlış takılmış bir bir eleman,soğuk lehim, veya lehimlenmemiş bir durumu, hatta kristalin frekans kayması gibi birçok hataya uygundur.

En basiti çalışan bir kart ile ölçü aleti kullanarak karşılaştırın.
Hatta osilsakopla inceleyin..Sigonta ayarlarını nasıl yaptınız bilemem atladığınız bir şey olmadığına emin olun.
Son çare olarak kartı değiştirin. Bazen kartın kendisinden kaynaklanan bir hata bile olabilir
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: systech - 06 Temmuz 2014, 23:17:21
Sayın ustam buradaki bir sıkıntıda; bir kart çalışıyor mesala 1gün 2gün sonra encoder okuma hatası veriyor. osilaskop la bakıyorum normal görünüyor çıkışlar. SAdece takıldığım konu encoder ile pic arasında kurduğm devre ne derece doğru siz ustalardan yardım bekliyorum saygılarımla.
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: bmutlu - 07 Temmuz 2014, 10:42:57
R13, R14 dirençlerin degeri nedir ? RB portu içten pull up yaptınız mı? bu dirençler çok büyük ise çalışmayabilir. Pic girişinde encoderin uçları 0-5 v
olabiliyorsa çalışması gerekir yazılım aynı kart aynı birinin hata vermesi donanımsal hata vardır..
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: systech - 08 Temmuz 2014, 18:51:06
bmutlu ustam
R13-14 120 Ohm (121)
Encoder okuma için aşağıdaki veriyi yazdık.

#int_ext
void  ext_kesmesi ()   
{
  disable_interrupts(INT_timer0);
  disable_interrupts(INT_timer3);
 
 
 
 
 
 
if(motor_yonu==0)
{
  if(input(pin_b0)==1&&input(pin_b1)==0)    if(encoder>0) encoder--;
  if(input(pin_b0)==1&&input(pin_b1)==1)    encoder++;               
}

if(motor_yonu==1)
  {
  if(input(pin_b0)==1&&input(pin_b1)==1)    if(encoder>0) encoder--;
  if(input(pin_b0)==1&&input(pin_b1)==0)    encoder++;   
 
  }
rpm_buffer++;

encoder_timeout=0;

enable_interrupts(INT_timer0);
enable_interrupts(INT_timer3);

}
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: systech - 09 Temmuz 2014, 21:54:53
Ustalardan bu konu hakkında paylaşım bekliyorum lütfen...
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: Salih - 10 Temmuz 2014, 12:13:03
Daha önce bir arkadaş örnek vermiş. Bunu uygulayabilirsin.

Alıntı yapılan: eR2 - 12 Ocak 2014, 23:28:39
merhabalar alttaki kodu kullanabilirsin, rb0 kesmesi ile kullanıyorum

https://www.picproje.org/index.php/topic,50537.0.html (https://www.picproje.org/index.php/topic,50537.0.html)

bu konuda inceleyebilirsin



#include <16f877a.h>
#use delay(clock=4M)
#fuses HS, NOWDT,  NOPROTECT, NOBROWNOUT, NOPUT, NOLVP,NODEBUG,NOWRT,NOCPD
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)
#use fast_io(B)


long encoder, encoder_eski, yon;

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


#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_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);
   }
}

Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: bmutlu - 12 Temmuz 2014, 12:19:59
R11,R12 direncleri 2k2 - 4k7 (5 V) civarlarında olması uygundur ve encoderin üzerindeki besleme değerlerine uyulmalı 5 V ile beslemek uygun olmayabilir.
Sizin Encoder 5 V seviyesinde çalışıyor mu ? Buna dikkat ettiniz mi ?
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: Okan AKÇA - 12 Temmuz 2014, 12:53:37
hocam doğrudur 5V sn2576-5 kullanıyorum. encoder için farklı bir okuma öneriniz varmıdır?
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: bmutlu - 12 Temmuz 2014, 14:28:06
Encoder lerin kimi DC 5 Volt -+ % 10 besleme ile calışır, kimi DC 8 - 30 Volt besleme ile calışır, kimi 5 - 24 VDC Volt besleme ile calışır, kimi 5 - 12 VDC Volt besleme ile calışır.

Ayni zamanda ise Encoder çıkışları ise TTL , Open Collector , Voltage Output ve Line Driver Output şeklinde çıkışlara sahitirler.

Sizin kullandiğiniz Encoder etiketine göre hangi parametrelere sahip?

5 Volt DC ile çalışabiliyormu ,Open Collector sahip mi veya TTL çıkışa sahip mi ?
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: systech - 12 Temmuz 2014, 16:39:32

(http://s30.postimg.cc/hcujhrict/Page_1_encoderler.jpg) (http://postimg.cc/image/hcujhrict/)
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: bmutlu - 12 Temmuz 2014, 22:12:09
Senin kullandığın encoderin 5 VDC beslemeye karşı çıkış uçları min. ve max. gerilim değerleri 2.4 V , 0.4 V olarak vermiş ama dosyada open collector diyor

A,B kanalların çıkışları kaça çıkıyor 0 - 5 VDC çıkıyor mu ? problem 2.4 V kritik gerilimde kalıyor olabilir ..
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: systech - 13 Temmuz 2014, 18:03:42
hocam çalışan devrede voltaj 2.5V civarı cıkıyor. Hata veren devredede 5V pic değiştirdim; Dirençleri değiştirdim lakin bir türlü işin içinden çıkamadım. Birde hocam pic ile encoder arasında yaptığımız okuma şekli doğrumudur? Yoksa sizlerin tavsiyesi ne olurdu. Şimdiden emeğiniz için teşekkür ederim.
(http://s8.postimg.cc/kf35sdzdt/Page_1_encder_example.jpg) (http://postimg.cc/image/kf35sdzdt/)
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: bmutlu - 13 Temmuz 2014, 21:11:58

(http://s10.postimg.cc/phn5dzw0l/resim_1.jpg) (http://postimg.cc/image/phn5dzw0l/)

(http://s10.postimg.cc/js6wtopud/resim_2.jpg) (http://postimg.cc/image/js6wtopud/)


Resim 1 de sizin gönderdiğiniz dökümanda çıkışları veriyor 0 - 2,5 arasındaki çıkış doğru ise diğer çıkış yanlış 5 V çıkmamalı aynı encoder ise .Eğer çıkışı 0-5 V
istiyor iseniz basit olarak resim 2 deki devre ile çıkışı Open Collector yaparak 0 - 5 V arası çıkışı elde etmiş oluruz..
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: systech - 14 Temmuz 2014, 00:07:54
hocam şöyle üzerinden tekrar geçeyim kullandığımız encoder 5V 100ppr ; Çalışan devrede ölçtüğüm voltaj 2.5, 2.7 arası iken; bozulan kartta 5.06 yani giren voltaj olduğu gibi çıkıyor. Kart encoder okuma hatası veriyor. Aynı encoder diğer kartta çalışıyor;  Dirençler hiç bir işe yaramıyor değiştirmeme rağmen sonuç olumsuz. Kullandığımız dirençler smd 805 kılıf  R11-r12 1K0 (102), R13-14 120 Ohm (121) Kontrol amalı pic 18f46k22 tqfp onuda değiştirdim ama sonuç malesef olumsuz küçük bir nüans var ama bir türlü bulamadım.
(http://s12.postimg.cc/6knqtlnjt/encder_example.jpg) (http://postimg.cc/image/6knqtlnjt/)

(http://s14.postimg.cc/cu3o8sual/taslak.jpg) (http://postimg.cc/image/cu3o8sual/)
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: systech - 15 Temmuz 2014, 17:32:33
ustalardan yardım bekliyorum. Ben bu konunun gelecek olan bu tarz konulara örnek olacağına inanıyor; bilgisini paylaşan tüm ustalara teşekkürlerimi ve saygılarımı sunuyorum.
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: bmutlu - 22 Temmuz 2014, 08:44:08


" 0 - 2,5 arasındaki çıkış doğru ise diğer çıkış yanlış 5 V çıkmamalı aynı encoder ise "
(http://s29.postimg.cc/rgnmhpihv/resim_1.jpg) (http://postimg.cc/image/rgnmhpihv/)
Resimde de görndüğü gibi çıkışların o aralıkta olmalı eger 5 volt çıkıyor ise encoder çıkışların arızalı resimdeki çıkış voltajı yakın çıkışlar doğru 5 volt seviyesindekiler yanlış .Yeni bir encoder al...
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: systech - 22 Temmuz 2014, 10:17:36
Sayın bmutlu ustam şöyle bir durum var. encoder arızalı diye düşünüyoruz ancak aynı encoder diğer kartta çalışıyor. Zaten beni şaşırtan olay bu. Bir de acaba TTL - CMOS karışıklığı olabilirmi? 74LS14 Tarzı bir devre ilemi sürsek  tavsiyeniz ne olur. tavsiye edeceğiniz bu tarz bir devre varmı? Şimdiden teşekkür ederim.
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: z - 22 Temmuz 2014, 10:41:36
Saglam encoderi bozuk karta takarsin.
Kartin voltajini verirsin.
Scopu calistirirsin.
Probu A yada B cikisinin gittigi cipe dokundurursun.
Sinyal varmi yokmu? Yoksa yol uzerinde sorun vardir.
Sinyal varsa cipin cikisina bakarsin. Sinyal cikisda yoksa cipin besleme sorunu olup olmadigina bakarsin.
Besleme sorunu yoksa cip bozuk olabilir.

Seklinde muhakeme yaparak sonuca ulasirsin.

Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: bmutlu - 22 Temmuz 2014, 11:16:49
Yukarıdaki tek tranzistorlü devreyi araya koy devren bağlamaya uygun open collector devre elde edersin 0-5 volt arası terslenmiş çıkış verir .Bu devreyi kullanabilirsin .Basit bir şekilde havada deneme yapabilirsin ...
Başlık: Ynt: 18f46k22 encoder okuma problemi
Gönderen: systech - 22 Temmuz 2014, 12:09:28
Teşekkür ederim. Deneyeceğim.