Rotary enkoder kontakt atlaması (contact bounce)

Terslenik çıkışlar difransiyel olarak geçer teknik olarak ise line drive. Emf gürültüsü oluşsa da sinyal bozulmaz. Hayat kurtarır :) Aynı mantıkla servo step dürücü girişleride genelde bu şekildedir. dir+ dir- puls+ puls- gibi...

16646 eklentisine bak
Abi sürücülerdeki +- mantığını biliyorum girişteki izolatör optonun 2 ucuda çıkıyor dışarı 1 uçlar köprülü gider diğer uçları süreriz ama enkoderde bunu anlayamadım ne için var
 
Abi sürücülerdeki +- mantığını biliyorum girişteki izolatör optonun 2 ucuda çıkıyor dışarı 1 uçlar köprülü gider diğer uçları süreriz ama enkoderde bunu anlayamadım ne için var

kontrol kartında çıkışlar var ise aslında sürücüyü de böyle bağlamak gerekli... Gürültüden etkilenmemek için kullanılan bir yöntem.

1649886445131.png
 
Sayın @taydin ve osiloskop işin içine girince problemin karakteri çıkmış ortaya...
Kötü âlet insanı hacet sahibi yapar diye bir söz var; tevekkeli boşa söylenmemiş.

Redmi Note 8 Pro cihazımdan Tapatalk kullanılarak gönderildi
 
Ama bana kalsa, yazdığım programda gene de debounce algoritması çalıştırmayı tercih ederim

Sayın @taydin böyle bir algoritmanın yapısı nasıl olabilir; mesela son ticklerin zaman aralığından bir süre çıkarıp bundan daha kısa sürede meydana gelen tick görünümünü elemek olabilir mi?

Redmi Note 8 Pro cihazımdan Tapatalk kullanılarak gönderildi
 
Sayın @taydin böyle bir algoritmanın yapısı nasıl olabilir; mesela son ticklerin zaman aralığından bir süre çıkarıp bundan daha kısa sürede meydana gelen tick görünümünü elemek olabilir mi?

Benim şimdiye kadar kullandığım debounce algoritması hep peş peşe belli sayıda aynı değeri görmeye dayalı oldu. Mesela 1 milisaniyede bir butonu okuyorsan, 10 defa peş peşe aynı değeri görürsen butonun değeri oldur. 10 milisaniyede bir butonu okuyorsan, 5 kere aynı değeri görünce butonun değeri odur mantığı.
 
Benim şimdiye kadar kullandığım debounce algoritması hep peş peşe belli sayıda aynı değeri görmeye dayalı oldu. Mesela 1 milisaniyede bir butonu okuyorsan, 10 defa peş peşe aynı değeri görürsen butonun değeri oldur. 10 milisaniyede bir butonu okuyorsan, 5 kere aynı değeri görünce butonun değeri odur mantığı.
İdeal süreyi düşünmek lazım. En hızlı butona basma hızımız veya rotary çevirme hızımız kaçtır acaba... 40ms ise 5x10ms okudun aynı değil gibi bir soru geldi aklıma.

Zamanlamanın kritik olmadığı projelerde buton aktif olduğu sürece sonsuz döngüde kalıyorum. İş görüyor. Butondan parmağını çekinde kod devam ediyor.
 
İdeal süreyi düşünmek lazım. En hızlı butona basma hızımız veya rotary çevirme hızımız kaçtır acaba... 40ms ise 5x10ms okudun aynı değil gibi bir soru geldi aklıma.

Zamanlamanın kritik olmadığı projelerde buton aktif olduğu sürece sonsuz döngüde kalıyorum. İş görüyor. Butondan parmağını çekinde kod devam ediyor.
Döngü içerisinde butonun basılı olduğu süreyi saydırınca da uzun basma durumunda ayrı kod çalıştırılabiliyor. Bu da bir buton üzerinden birden fazla iş yapmaya imkan veriyor.

Rotaryde ise bir değişkene yön bilgisinin kaç kere tetiklendiği saydırılarak baskın yöne göre işlem yaptırılabilir.

Piyasada bulabileceğimiz encoderlerin durumu ortaya çıktı sayın @taydin tarafından yapılan testte. Bir haftadır hepimizi perişan etti encoderler. Haliyle pek çok projede bunların avantajlarından faydalanmak üzere sağlıklı kod ve modül tasarım varyasyonları üretebiliriz.

Redmi Note 8 Pro cihazımdan Tapatalk kullanılarak gönderildi
 
Tek buton ile bir proje yapmıştım. Pals jeneratörü. Işıklı bir buton kullandım. 3 farklı set edilmiş frekansta pals üreten bir devre. Kullanıcı butona her bastığında frekans kademesi değişiyor. Bildirim ışığıda 1. Kademe içi n bir defa ikinci kademe için iki defa gibi göz kırpıyor. Neden böyle bir fantazi dersen projede sadece bir buton koyma izni vardı. Kullanıcı tarafında bir sıkıntı yok.

Şimdi fantazik kısımlar.Sonradan bir ayar değişikliği yapmak gerekir ise gizli ayarlar.. 3 frekans modu var ancak ben yazılımda 10 frekans belirledim. Ayrıca her frekans için 5 puan artış ile duty oranları belirledim. . Yani kullanıcı atıyorım 1. Kademede 50hz %45 duty ile pals kullanıyor.

Tüm bu ayarları aynı buton ile değiştirip eproma yazdım. Mantık şöyle hangi kademe ayar yapmak istiyorsan butona basıp çekerek o kadameyi seçiyorsun. Sonra aynı kademede 10 sn basılı tutarsan frekans değiltirme, 20 sn basılı tutarsan duty değiştirme ayar modu aktif oluyor. Sonra her butona basıp çekmede programlama sırasında belirlediğim değerler arasında artırımlı geçiş oluyor. Bu şekilde bas çek ayarı değiştirdin. Sonra 5 sn basarsan kaydetmeden 10 sn basarsan eproma kaydedip ayar modundan çıkıyor. Tabi bu süre sayımlarında buton ışığı süreler hakkında bilgi veriyor. Ne ayar yaptım kafam karıştı olursa diye birde 60sn basılı tutma ile fabrika moduna dönüş var. Paramterler varsayılana dönüyor.

Şimdi bu saydıklarım hepsi tek buton...
 
Abi sürücülerdeki +- mantığını biliyorum girişteki izolatör optonun 2 ucuda çıkıyor dışarı 1 uçlar köprülü gider diğer uçları süreriz ama enkoderde bunu anlayamadım ne için var

Bu konu hakkında bir iki şey yazdım.

 
Bu konu hakkında bir iki şey yazdım.

Çok teşekkür ediyorum abi anlatış görseller harika olmuş eline sağlık amatör/yeni yetişenler için çok yararlı içerik olmuş mutlaka LS31 ve LS32 satın alıp deneyler yapacağım.
 
Anladığım kadarıyla AB tipi enkoderde durdurup ters yöne döndürmek senaryosu dışında; A çıkışının durumu değiştikten sonra B çıkışının durumu değişmeden A çıkışının durumunun değişmesi mümkün değil. Kesmelerin sırayla oluşması lazım.

Bunu debounce kriteri olarak kullanır ve diğer çıkıştaki kesme gelmeden oluşan kesmeleri atlarsak yarım palslik bir sürede oluşan bounce olayları için çevirme hızına da adaptif bir çözüm olabilir mi?
 
Kodu denedim. Biraz da basitleştirdim. Gayet güzel çalışıyor. Çok nadiren, çok hızlı çevirince bazan adım kaçırdığı oluyor, ama birçok uygulama için bu hiç sorun değil. Ancak bir CNC makinanın eksen bilgisi okunuyorsa o zaman sorun olurdu.

Bugün bende bu mekanik encoderi denedim ve İş görecek sonuçlar aldım. Buna rağmen pozisyonlamada kullanılan rotary encoderlerin yerine kullanılmaları pek mümkün değil sanırım. İllaki hızlı çevirmelerde adım kaçırıyor. Mekanik yapısından dolayı hızlı çevirmelerde kontak teması olmadan atlama yapıyor olabilir mi bilemedim...

360 derecelik bir scala bu encoderi çalıştırsak mekanik olarak gösterdiği açıyı kaydıracak... Gerçi bir yandan düşünüyorum. Bu tarz encoder ile mekanik bir scala kullanımı hiç görmedim.
 
Bugün bende bu mekanik encoderi denedim ve İş görecek sonuçlar aldım. Buna rağmen pozisyonlamada kullanılan rotary encoderlerin yerine kullanılmaları pek mümkün değil sanırım. İllaki hızlı çevirmelerde adım kaçırıyor. Mekanik yapısından dolayı hızlı çevirmelerde kontak teması olmadan atlama yapıyor olabilir mi bilemedim...

360 derecelik bir scala bu encoderi çalıştırsak mekanik olarak gösterdiği açıyı kaydıracak... Gerçi bir yandan düşünüyorum. Bu tarz encoder ile mekanik bir scala kullanımı hiç görmedim.
Benim bir optik enkoder tasarımım vardı abi sabah bilgisayarı açınca paylaşayım burada ama sadece motor hareketlerini algılama da iş görüyor
 

Çevrimiçi üyeler

Forum istatistikleri

Konular
6,032
Mesajlar
102,953
Üyeler
2,533
Son üye
Wilot

Son kaynaklar

Son profil mesajları

deneyci wrote on hakan8470's profile.
Sibonge uNkulunkulu ngokuhlukahluka asinike kona.

Bu hangi dil? :)
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?
gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
Back
Top