Arduino Potansiyometre ve Döner Kodlayıcı Arasındaki Fark Nedir?

Arduino Potansiyometre Ve Doner Kodlayici Arasindaki Fark Nedir



Potansiyometreler ve döner kodlayıcıların her ikisi de dönüşü algılamak veya konumu algılamak için kullanılır. Elektronik alanında çok çeşitli uygulamalara sahip olan ve kullanılan elektromekanik cihazlardır. Farklı projeler yapmak için Arduino ile de arayüzlenebilirler. Bu makale, bir potansiyometre ile bir döner kodlayıcı arasındaki temel farkları göstermek içindir.

Potansiyometre Nedir?

Potansiyometre bir reostattır veya buna değişken bir direnç diyebiliriz. Direnç değeri, potansiyometrenin mil dönüşüne göre değişir. Potansiyometreler sadece belirli bir mesafeye dönebilir. Hem analog hem de dijital potansiyometreler vardır, ancak bunlar neredeyse benzerdir. Analog potansiyometreler, Arduino, Raspberry Pi ve diğer cihazlardaki mikrodenetleyicilerle arayüzlenebilir. Bir potansiyometre, giriş voltajı pimi Vcc, Toprak Pimi GND ve giriş sinyali pimi olan üç pime sahiptir. Sinyal pimi Arduino'ya giriş sağlar.









Döner Kodlayıcı Nedir?

Döner kodlayıcılar, döner düğmenin açısal konumunu algılar ve mikrodenetleyiciye veya bağlı oldukları diğer herhangi bir cihaza bir sinyal gönderir. Ortak bir pime bağlı eşit aralıklı temas alanlarına sahip bir diske sahiptir. Döner kodlayıcılarda ayrıca, belirli gereksinimlere göre AÇIK ve KAPALI sinyalleri veren yerleşik bir düğme veya döner anahtar bulunur.







Pinout Diyagramı ve Döner Enkoderin Pin Tanımı

Aşağıda verilen şema, döner kodlayıcının pimlerini göstermektedir. Bu pinler şu şekilde açıklanmaktadır:

Çıkış B veya CLK



Bu pim, düğmenin veya döner kodlayıcının kaç kez döndüğünün bir çıktısını verir. Düğme her döndürüldüğünde, CLK bir YÜKSEK ve DÜŞÜK döngüsünü tamamlar. Bir devir olarak sayılır.

A veya DT Çıkışı

Bu, dönüş yönünü belirleyen döner kodlayıcının ikinci çıkış pimidir. CLK sinyalinin 90° gerisinde kalır. Bu nedenle, durumu CLK'nın durumuna eşit değilse, dönüş yönü saat yönünde, aksi takdirde saat yönünün tersinedir.

Anahtar

Anahtar pimi, basmalı düğmeye basılıp basılmadığını kontrol etmek için kullanılır.

Vcc

Bu pim 5V'luk bir kaynağa bağlıdır.

GND

Bu pin toprağa bağlı

Potansiyometre ve Döner Kodlayıcı Arasındaki Fark

Şartname Potansiyometre Döner Kodlayıcı
Döndürme Potansiyometre yalnızca bir yönde döndürülebilir ve bu da bir dairenin dörtte üçü kadardır. Döner Kodlayıcı, hem saat yönünde hem de saat yönünün tersine sürekli olarak 360° dönebilir.
Analog veya Dijital Cihaz Potansiyometre çoğunlukla, bir direncin değerindeki bir değişiklik yoluyla konumdaki değişikliği ölçen bir analog giriş cihazıdır. Döner kodlayıcı, açısal konumu algılayan ve dijital değerler sağlayan bir dijital giriş cihazıdır.

Giriş Pozisyonlarının Sayısı Bir potansiyometre, analog bir cihaz olduğu için değerlerin alınabileceği sonsuz sayıda giriş konumuna sahiptir. Döner kodlayıcıların sınırlı sayıda giriş konumu vardır.

Arduino ile Potansiyometre Kurulumu

Potansiyometrenin Arduino ile kurulumu döner kodlayıcıdan daha kolaydır. Potansiyometrenin sadece üç pini VCC, GND ve Arduino'ya bağlı bir INPUT pini vardır. Potansiyometrenin Arduino ile arayüzü aşağıda gösterilmiştir:

Potansiyometreyi Arduino'da programlamak, döner kodlayıcıdan daha kolaydır. Aşağıda her ikisi için de örnek sözdizimi kodları verilmiştir.

Potansiyometre için Örnek Kod

sabit int kap = A0; // Giriş pinini bildir
geçersiz kurulum ( ) {
   pin Modu ( kap, GİRİŞ ) ; // Potansiyometreden alınan ayar değeri gibi giriş
seri.başlangıç ( 9600 ) ;
}
boşluk döngüsü ( ) {
int potValue = analogOkuma ( tencere ) ; // Potansiyometre tarafından alınan girişin değerini okuyun
harita ( potDeğeri, 0 , 1023 , 0 , 255 ) ; // Giriş değerini eşleşecek şekilde ölçeklendirme 8 -biraz
Serial.println ( potansiyel değer ) ; // Potansiyometreye girilen değeri yazdırır
gecikme ( 100 ) ;
}

Potansiyometre kodu çok kolay ve basittir. Arduino'nun analog giriş pininin basitçe potansiyometreden girdi alacağı bildirilir ve ardından analogRead() ve map() fonksiyonları potansiyometreden okumanın tam değerini okumak ve vermek için kullanılır.

Rotary Encoder ile Arduino Arayüzü

Döner kodlayıcının beş pimi vardır. Döner kodlayıcının VCC ve GND'si Arduino'nunkine bağlıdır. Kalan pinler CLK, DT ve SW, Arduino'nun dijital giriş pinlerine bağlanır.

Döner Kodlayıcı için Arduino Kodu

// Döner Enkoder Girişleri
#define CLK_PIN 2
#DT_PIN 3'ü tanımla
#define SW_PIN 4
int sayacı = 0 ;
int geçerliCLKSdurum;
int sonCLKSdurum;
Dize akımı Yönü = '' ;
imzasız uzun lastButtonPressTime = 0 ;
geçersiz kurulum ( ) {
// Kodlayıcı pinlerini ayarla gibi girdiler
    pin Modu ( CLK_PIN, GİRİŞ ) ;
    pin Modu ( DT_PIN, GİRİŞ ) ;
    pin Modu ( SW_PIN, INPUT_PULLUP ) ;
// Seri Monitör Kurulumu
seri.başlangıç ( 9600 ) ;
// CLK'nın başlangıç ​​durumunu okuyun
lastCLKState = digitalRead ( CLK_PIN ) ;
}
boşluk döngüsü ( ) {
// CLK'nın mevcut durumunu okuyun
currentCLKState = digitalRead ( CLK_PIN ) ;
// Eğer son ve CLK'nın mevcut durumu farklıdır, Daha sonra bir nabız oluştu
// Yalnızca tepki ver 1 çift ​​sayımı önlemek için durum değişikliği
eğer ( mevcutCLKSdurum ! = son CLKSdurumu && mevcutCLKSdurum == 1 ) {
// DT durumu CLK durumundan farklıysa, Daha sonra
// kodlayıcı saat yönünün tersine dönüyor, bu nedenle azaltın
eğer ( dijitalOkuma ( DT_PIN ) ! = geçerli CLKSdurumu ) {
tezgah--;
akım Yönü = 'CCW' ;
} başka {
// Enkoder saat yönünde dönüyor, bu nedenle artış
sayaç++;
akım Yönü = 'CW' ;
}
seri.baskı ( 'Dönme Yönü:' ) ;
seri.baskı ( akımYön ) ;
seri.baskı ( ' | Sayaç Değeri: ' ) ;
Serial.println ( tezgah ) ;
}
// hatırla son CLK durumu
lastCLKSstate = mevcutCLKSdurum;
// Düğme durumunu oku
int buttonState = digitalRead ( SW_PIN ) ;
// DÜŞÜK bir sinyal algılarsak, düğmeye basılır
eğer ( buttonState == DÜŞÜK ) {
// üzerinden 50ms geçtiyse son DÜŞÜK nabız, bunun anlamı
// düğmeye basıldı, bırakıldı ve tekrar basıldı
eğer ( milis ( ) - lastButtonPressTime > elli ) {
Serial.println ( 'Düğmeye Basıldı!' ) ;
}
// hatırla son düğmeye basma olayı zaman
lastButtonPressTime = mili saniye ( ) ;
}
// Koymak içinde için hafif bir gecikme yardım okumayı iptal etmek
gecikme ( 1 ) ;
}

Yukarıdaki kodda loop() fonksiyonunda CLK pininin durumu kontrol edilmektedir. Önceki durumuna eşit değilse, döner düğmenin döndüğünü gösterir. Şimdi, topuz dönüş yönünü kontrol etmek için CLK'nin mevcut durumu DT'nin durumu ile karşılaştırılır. Her iki durum da eşit değilse, düğmenin saat yönünde döndüğünü gösterir ve döner düğmenin konumunu göstermek için sayaç değerini artırır. Tersi durumda, sayaç azalır.

Uygulamalar

Potansiyometreler esas olarak bir kontrol fonksiyonunun gerekli olduğu yerlerde kullanılır. Ses kontrolünde, LED parlaklık kontrolünde kullanılırlar. Öte yandan, Döner kodlayıcılar geniş bir uygulama yelpazesi sunar. Robotik, tıbbi ekipman, otomasyon ve oyunlarda kullanılırlar.

Çözüm

Potansiyometreler ve döner kodlayıcılar, elektronik alanında özellikle kullanışlı cihazlardır. Döner kodlayıcılar, sürekli olarak 360° dönebildikleri için potansiyometrelere kıyasla ileri düzeydedir. Benzer şekilde, modern elektronikte daha fazla uygulamaya sahiptirler ve potansiyometrelere göre kullanımları biraz daha zordur. .