Gokrtl

Gökhan Kartal (TeknoDay)
Staff member
Katılım
27 Şubat 2019
Mesajlar
12,016
Encodere neden direnç takılır?
A ve C bacaklarına 10k lık dirençler takılıyor. Neden?
Sw bacağına 10k direnç pullup veya pulldown olarak takılıyor. Ne demek bu pull-up, pull-down?
Bu dirençler encoderin gönderdiği sinyalleri yavaşlatır mı?
Bu gün panel için kullanacağım encoderi test ediyordum. Uçağın displayine bağlayıp çevirdim. 1'er attırarak çevirdiğim de işlev normaldi ama encoderi hızla çevirince 10 attırdıysam displayde 4 rakam oynadı. Hal böyle olunca bende dirençlere taktım kafayı. Bunun mantıklı cevabı pals kaçırma sanırsam. Peki neden? Ne yapılabilir?

20200605_235249.png
 
Programlarken soyle dusunulur. Giristeki sinyal durumu ya ( + ) dir yada ( - )

Soyle dusun bir buton ile giris pinine (+) sinyal verdin. Programlarken ke if buton==HIGH {....
yazdin. Buraya kadar tamam ancak butonu biraktigin an giris sinyali ne oldu? Bacak (-) ye baglimi hayir. (+) Ya baglimi hayir... Bu durumda kararsizlik durumlari yasanabilir. Giris sinyali hic bir yere bagli degilken havadan nem :cheeky3: kapar ve durumu +/- gider gelir....

olmasi gereken butonu birakinca uygulanan sinyalin tersini giris pinine uygulamak. Bu nedenle + sinyal veriyorsan pulldown - sinyal veriyorsan pullup direncleri kullanilir. Verdigin sinyale gore ters sinyal ileten direncler. Genellikle 10k gibi bir direnc uzerinden giris pinine zayif bir akim akitilir. Ancak bu kararsizlik olusmamasi icin yeterlidir. Sen butona basarak kendi sinyalini uyguladiginda pull up/down sinyali yok olur...

İsin ozu direncler seni yavaslatmaz. Encoder de bir sorun yoksa (zayif ihtimal) pals kaciriyorsun. Bu durumda programlaman ile alakali. Sadece pals sayacak bir kod yaz. Hizli cevirme testi yap. İstedigin tepkiyi aliyormusun kontrol et. Sonrasina bakalim...
 
Yarın bir tanesini delikli pertinax a lehimleyeyim bari. Belkide breadboard üzerinde temassızlık yapıyordur. İki yoldan test etmiş olurum.

Bu pull up/down direncini iki tane yapıp hem artıya hem eksiye lehimleyeyim mi? Yoksa bir tane yeterli mi?
 
hem artı hem eksi olmaz. yukardaki bağlatıyı kullanıyorsan ordaki dirençler yeterli. bağlantıda pullup var yani esas sinyal eksi. yazılımda low sinyalleri sayacaksın.
 
Ama sw bacağına da direnç koymamı söylemişti bir arkadaş. Ben sw bacağından gnd ye de bir 10k direnç koymuştum. Ondan mı oldu yoksa? :cheeky3:
 
Şuan pull up/down konusunda kesinlik le aydınlandım. O zaman a ve b bacağındakiler pull up direnci. Peki sw ne olacak? o boşta. İki bacağı pull up yaptığımız için ona gerek kalmadı mı?
 
Buton encoderden ayrı calışıyor oda onun bir özelliği butona basman veya basmaman , SW kanalnı kullanıp kullanmaman encoder değerinde birşey değiştirmez o kendi başına bir yapı. onada PULL-UP yap mesela. bu sefer okurken SW durumunu LOW mu diye kontrol etmen gerekecek. PULL-DOWN yapsaydın HIGH mı diye kontrol etmen gerekecekti.

Bana kalırsa PULL-UP koyman daha iyi olur. parazitlerden etkilenme durumu az olur hatta butona yani SW ye koyacağın pull-up direncine paralel 100nF kondansatör de atabilirsin. yine iş görür. ama sakın encodere koyma cünkü hızlı cevirme de sinyali tutabilir buda okumada sorun yaratır.
 
Buton encoderden ayrı calışıyor oda onun bir özelliği butona basman veya basmaman , SW kanalnı kullanıp kullanmaman encoder değerinde birşey değiştirmez o kendi başına bir yapı. onada PULL-UP yap mesela. bu sefer okurken SW durumunu LOW mu diye kontrol etmen gerekecek. PULL-DOWN yapsaydın HIGH mı diye kontrol etmen gerekecekti.

Bana kalırsa PULL-UP koyman daha iyi olur. parazitlerden etkilenme durumu az olur hatta butona yani SW ye koyacağın pull-up direncine paralel 100nF kondansatör de atabilirsin. yine iş görür. ama sakın encodere koyma cünkü hızlı cevirme de sinyali tutabilir buda okumada sorun yaratır.
Haa tamam yav. Şimdi jeton düştü. Doğruya sw kafasına tıkladığımızda çalışan buton. Bu projemde onunla hiç işim yok. Teşekkür ettim bilgi için. Umarım birdaha lazım olursa hatırlarım bunları. Benim kafa anlık çalışıyor. Yarın birgün aynı durum da kalsam hatırlamaya bilirm. :D
 
Youtube dan izlediğim bir encoder testinin aynısını yaptım.
Encoder eksiye doğru otomatik akıyor. Kodda gözünüze çarpan bir hata var mı?

rotary hata.png
 
Koda gore Pinclk ta sinyal degisimi olamdigi surece +/- degisim olmami. Encodere dokunmadan saymamasi lazim. Sayiyorsa pulldown pullup direncleri gozden gecir
 
Bakıyorum ama bir hata bulamadım.

20200606_165934.jpg
 
kodun en başında anlamsız birkaç satır çıkıyor.
Kodda bir sıkıntı olduğunu düşünüyorum. Çünkü Encoderi taksam da takmasam da görüntüleme ekranında sayı otomatik eksiye doğru akıyor.

rotary hata2.png
 
Son düzenleme:
Kodda bir sıkıntı gözükmüyor hocam. Makine dt pininden sürekli farklı veriler okuyor. Sistemi kurayım dedim ama encoderim yokmuş. Dirençleri kısa devre yapıp deneme şansınız var mıdır?
 
Kodda bir sıkıntı gözükmüyor hocam. Makine dt pininden sürekli farklı veriler okuyor. Sistemi kurayım dedim ama encoderim yokmuş. Dirençleri kısa devre yapıp deneme şansınız var mıdır?
Birazdan deneyeyim
 
Serial kütüphanesini bu iş için kullanmak bana çok tuhaf geldi. Bir UART veri akışından veri okuma yapılmıyor ki :) Tam olarak bu Serial kütüphanesi ile nasıl çalışması gerekiyor?

Ben olsam bunu ya ana döngüde sürekli enkoderi okuyarak yaparım yada kesme kullanırım.
 

Forum istatistikleri

Konular
6,953
Mesajlar
118,767
Üyeler
2,824
Son üye
selocan32

Son kaynaklar

Son profil mesajları

hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Merhaba elektronik tutsakları...
Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
Back
Top