kategoriler: Mikrodenetleyici devreleri
Görüntülenme sayısı: 16,299
Makaleye Yorumlar: 0
Arduino'ya artımlı kodlayıcı nasıl bağlanır
Genellikle mikrodenetleyicilerdeki cihazlarda menü öğelerinin yönetimini organize etmeniz veya bazı ayarlamalar yapmanız gerekir. Birçok yol vardır: düğmeler, değişken dirençler veya kodlayıcılar kullanın. Artımlı kodlayıcı, sapın sonsuz dönüşü yoluyla bir şeyi kontrol etmenizi sağlar. Bu makalede, artımlı kodlayıcı ve Arduino'nun nasıl çalışacağına bakacağız.

Artımlı Kodlayıcı Özellikleri
Artımlı kodlayıcı, diğer herhangi bir kodlayıcı türü gibi, döner saplı bir cihazdır. Uzaktan bir potansiyometreye benziyor. Potansiyometreden ana fark, kodlayıcı kolunun 360 derece dönmesidir. Aşırı hükümleri yok.
Enkoderler birçok tipte gelir. Artımlı, yardımı ile sapın pozisyonunu bilmek imkansızdır, ancak sadece bir yönde dönme gerçeğini - sola veya sağa doğru. Sinyal darbelerinin sayısı ile, hangi açıda döndüğünü zaten hesaplayabilirsiniz.

Bu şekilde geçebilirsin mikrodenetleyici komutu, menüyü, örneğin ses seviyesini yönetme vb. Günlük yaşamda, onları araba radyolarında ve diğer ekipmanlarda görebilirsiniz. Çok fonksiyonlu seviye ayarlama organı, ekolayzır ve menü navigasyonu olarak kullanılır.

Çalışma prensibi
Artımlı kodlayıcının içinde, kendileriyle temas eden etiket ve kaydırıcıları olan bir disk vardır. Yapısı bir potansiyometreye benzer.

Yukarıdaki şekilde işaretli bir disk görüyorsunuz, hareketli kontak ile elektrik bağlantısını kesmek için gereklidirler, sonuç olarak dönüş yönü hakkında veri alırsınız. Ürünün tasarımı çok önemli değil, çalışma prensibini anlayalım.

Kodlayıcının üç bilgi çıkışı vardır, biri ortak, diğer ikisi genellikle “A” ve “B” olarak adlandırılır, yukarıdaki şekilde kodlayıcı pimini bir düğmeyle görürsünüz - şaftına tıkladığınızda bir sinyal alabilirsiniz.
Hangi sinyali alacağız? Dönüş yönüne bağlı olarak, mantıksal birim önce A veya B piminde görünecektir, bu nedenle faz kayması sinyali alırız ve bu kaydırma hangi yönü belirlememizi sağlar. Sinyal dikdörtgen bir şekil şeklinde elde edilir ve mikrodenetleyici, dönme yönünün verileri ve pals sayısı işlendikten sonra kontrol edilir.

Şekilde diskin kontaklı sembolü gösterilmektedir, ortada çıkış sinyallerinin bir grafiği vardır ve sağda durum tablosu vardır. Bu cihaz genellikle iki anahtar olarak çizilir, bu mantıklıdır, çünkü aslında “ileri” veya “geri”, “yukarı” veya “aşağı” sinyallerini ve eylem sayısını alırız.

İşte gerçek bir kodlayıcı pin çıkışı örneği:

Ben merak:
Hatalı bir kodlayıcı kilitlenmeden iki düğme ile değiştirilebilir veya tersi de geçerlidir: ev yapımı kontrol, bu düğmelerden ikisinin kodlayıcı ayarlanarak sonlandırılabileceği ev yapımı kontrol.
Aşağıdaki videoda, terminallerdeki sinyalin dönüşümünü görüyorsunuz - yumuşak dönüş sırasında LED'ler, önceki grafikte yansıtılan sırayla yanar.
Aşağıdaki animasyonda daha az net bir şekilde gösterilmemiştir (resme tıklayın):
Kodlayıcı hem optik (sinyal fotodetektörler tarafından yayıcılar tarafından üretilir, aşağıdaki şekle bakın) hem de manyetik (Hall etkisi üzerinde çalışır) olabilir. Bu durumda, temasları ve daha uzun hizmet ömrü yoktur.

Daha önce de belirtildiği gibi, dönme yönü çıkış sinyallerinin hangisinin önceden değiştiğiyle belirlenebilir, ancak pratikte bu şekilde görünür!

Kontrol hassasiyeti enkoderin çözünürlüğüne bağlıdır - devir başına darbe sayısı. Pals sayısı birimlerden binlerce parçaya kadar olabilir. Kodlayıcı bir konum sensörü olarak işlev görebildiğinden, ne kadar fazla pals olursa, belirleme o kadar doğru olur.Bu parametre, devir başına PPR - darbe olarak adlandırılır.
Ancak küçük bir nüans var, yani benzer bir atama LPR, diskteki etiket sayısıdır.
Ve işlenmiş bakliyat sayısı. Diskteki her etiket, iki çıkışın her birine 1 dikdörtgen darbe verir. Dürtü iki cepheye sahiptir - arka ve ön. İki çıkış yolu olduğundan, her birinden toplam 4 darbe alıyoruz, değerleri işleyebiliyoruz.
PPR = LPRx4
Arduino ile iletişime geç
Artımlı kodlayıcı hakkında bilmeniz gerekeni anladık, şimdi Arduino'ya nasıl bağlayacağımızı öğrenelim. Bağlantı şemasını düşünün:

Bir enkoder modülü, artımlı enkoder ve yukarı çekme dirençlerinin bulunduğu karttır. Herhangi bir iğneyi kullanabilirsiniz.

Bir modülünüz yoksa, ayrı bir kodlayıcınız varsa, bu dirençleri eklemeniz yeterlidir, devre prensipte farklılık göstermez. Dönme yönünü ve çalışabilirliğini kontrol etmek Arduino ile birlikte seri porttan bilgi okuyabiliriz.

Kodu sırayla daha ayrıntılı analiz edelim. Void kurulumunda (), seri port üzerinden iletişimi kullanacağımızı ve daha sonra giriş modunda 2 ve 8 pinlerini ayarlayacağımızı duyurduk. Bağlantı şemanıza göre pin numaralarını kendiniz seçin. INPUT_PULLUP sabiti giriş modunu ayarlar, arduino'nun iki seçeneği vardır:
-
INPUT - pull-up dirençsiz giriş;
-
INPUT_PULLUP - pull-up dirençlerin girişine bağlantı. Mikrodenetleyicinin içinde, girişin güç artıya (çekme) bağlı olduğu dirençler zaten var.
Yukarıdaki şemalarda gösterildiği gibi güç artılarını sıkmak için dirençler kullanıyorsanız veya kodlayıcı modülünü kullanıyorsanız - INPUT komutunu kullanın ve herhangi bir nedenle harici dirençleri (INPUT_PULLUP) kullanamaz veya istemiyorsanız.
Ana programın mantığı şu şekildedir: “2” girişinde bir tane varsa, H bağlantı noktasını monitöre gönderir, değilse, L. Böylece, seri bağlantı noktası monitöründe aynı yönde döndüğünüzde şöyle bir şey elde edersiniz: LL HL HH LH LL. Ve tam tersi: LL LH HH HL LL.
Çizgileri dikkatlice okursanız, muhtemelen bir durumda ilk karakterin bir değer elde ettiğini, diğer durumda ise ikinci karakterin değiştiğini fark etmişsinizdir.
Sonuç
Artımsal enkoderler, akustik sistemler için amplifikatörlerde - araba radyolarında ses kontrolü olarak kullanıldıklarında - ses parametrelerini ayarlamak ve menülerde gezinmek için günlük uygulamada ilerlediğiniz bilgisayar farelerinde geniş pratik uygulama bulmuşlardır (şaftına bir tekerlek takılmıştır) . Ve ayrıca ölçüm aletlerinde, CNC makinelerinde, robotlarda, selsyn sadece kontrol olarak değil, aynı zamanda değerlerin ölçülmesi ve pozisyonun belirlenmesi.
Ayrıca bkz. electro-tr.tomathouse.com
: