Potansiyometreler ve döner enkoderler ilk bakışta neredeyse aynı gibi görünse de farklı şekillerde çalışırlar. Her ikisini de bir Arduino ile nasıl kullanacağınızı keşfedin.

Elektronik kullanıcı kontrol bileşenleri arasında döner düğmeler, kullanımı en tatmin edici olanlardan bazıları olarak öne çıkıyor. Dokunmatik ekranları ve diğer giriş cihazlarını tamamlayabilir, ayrıca düğmeler ve anahtarlarla iyi çalışabilirler. Ancak kendi DIY Arduino projelerinize nasıl düğme ekleyebilirsiniz?

İki ana seçeneğiniz vardır: potansiyometre veya döner kodlayıcı. Bu bileşenler benzer görünebilir, ancak bunları Arduino mikrodenetleyici kartı gibi bir cihazla kullanma yöntemleri çok farklıdır. Birbirleriyle nasıl karşılaştırıldıklarını görelim.

Potansiyometre vs. Döner Enkoderler

Kendin Yap meraklılarının karşılaşacağı potansiyometrelerin ve döner kodlayıcıların çoğu benzer bir form faktörüne sahiptir. Konnektör ayaklarının takılı olduğu küboid veya silindirik bir tabana ve bükülen ve üzerine bir kapağın oturması için oyukları olan yuvarlak bir şafta sahiptirler.

instagram viewer

Müzik karıştırma güvertelerinde bulunanlar gibi uzun slaytlar şeklinde gelenler gibi bazı potansiyometreler farklı görünüyor. Bununla birlikte, döner tür söz konusu olduğunda, ilk bakışta döner kodlayıcılarla neredeyse aynı görünürler, bu nedenle aynı olduklarını düşündüğünüz için affedilirsiniz.

Potansiyometre Nedir?

Bir potansiyometre özünde değişken bir dirençtir. Şaft döndükçe, potansiyometre içindeki direnç değişir ve kullanıcının devreyi yeniden kurmak zorunda kalmadan bir devrenin özelliklerini değiştirmesine olanak tanır. Potansiyometreler hem analog hem de dijital olabilir, ancak dijital potansiyometreler analog olanları taklit eder ve bu onları kullanıma çok benzer kılar.

Potansiyometrelerin her zaman milin artık döndürülemeyeceği tanımlanmış bir başlangıç ​​ve bitiş noktası vardır. Bazı potansiyometreler döndürüldüğünde engebeli bir his verir, ancak çoğu eski stereolarda bulunanlar gibi pürüzsüzdür.

Analog olmasına rağmen, potansiyometreler mikrodenetleyicilerle iyi çalışır. kolayca yapabilirsin Raspberry Pi Pico ile bir potansiyometre kurun veya arduino.

Döner Kodlayıcı Nedir?

Döner kodlayıcılar, bağlı oldukları cihaza analog veya dijital bir sinyal sağlamak için bir sensör kullanarak millerinin konumunu belirler. Bu, cihaza kodlayıcının hangi konumda olduğunu söyler. Dönen milin yanı sıra, döner kodlayıcılarda genellikle milin aşağı doğru itilmesiyle çalıştırılan yerleşik bir düğme de bulunur.

Potansiyometrelerin aksine, döner kodlayıcılar durmadan dönebilir ve milin her konumu için neredeyse her zaman dokunsal tümseklere sahiptirler. Birçok modern araba, eğlence sistemlerini kontrol etmek için döner kodlayıcılar kullanır.

Arduino ile Potansiyometre Nasıl Kullanılır

Basit tasarımları sayesinde Arduino ile potansiyometre kullanmak basittir. Potansiyometrenizin üç konektörü vardır: toprak, çıkış ve vref. Toprak ve vref pinleri sırasıyla Arduino'nuzdaki GND ve 5V konektörlerine bağlanırken, potansiyometrenin çıkış pini kartınızdaki analog girişlerden birine bağlanır.

Arduino Potansiyometre Kodu

Arduino potansiyometre kodunuz temel ile başlar kurmak() Ve döngü() Arduino IDE'de yeni bir dosya oluşturduğunuzda göreceğiniz şablon. İlk önce bir ekleyin sabit int potun analog pin bağlantısını kaydetmek için kodun başlangıcındaki değişken - bu durumda, A0.

sabitint potansiyometre = A0;

Bunu takiben, kurmak() işlev basittir: potansiyometrenizin pimini bir giriş olarak bildirmeniz yeterlidir. Teşhis için PC'nize veri göndermek istiyorsanız seri bağlantı da başlatabilirsiniz.

geçersizkurmak(){
pinMode (potansiyometre, GİRİŞ);
Seri.başlamak(9600);
}

Ardından, kurulum zamanı döngü() işlev. oluşturarak başlayın int kullanarak değişken analogOkuma() Potansiyometrenizin konumunu kaydetme işlevi. Bunu takiben, kullanabilirsiniz harita() Uğraştığınız değerin boyutunu küçültme işlevi — bu örnekte, örneğin bir LED'in parlaklığını kontrol etmek için PWM spesifikasyonlarına uyması için. Kararlılığı sağlamak için kısa bir gecikme ekleyin.

geçersizdöngü(){
int potansiyometreDeğeri = analogRead (potansiyometre);
harita (potansiyometreDeğeri, 0, 1023, 0, 255);
Seri.println(potansiyometreDeğeri);
gecikme (10);
}

Artık potansiyometrenizin konumuna sahip olduğunuza göre, onu kodun diğer bölümleriyle kullanabilirsiniz. Örneğin, bir eğer ifadesi, potansiyometre belirli bir konumdayken kodu tetiklemek için iyi çalışır.

sabitint potansiyometre = A0;

geçersizkurmak(){
pinMode (potansiyometre, GİRİŞ);
Seri.başlamak(9600);
}

geçersizdöngü(){
int potansiyometreDeğeri = analogRead (potansiyometre);
harita (potansiyometreDeğeri, 0, 1023, 0, 255);
Seri.println(potansiyometreDeğeri);
gecikme (10);
}

Arduino ile Rotary Encoder Nasıl Kullanılır?

Döner kodlayıcılar, potansiyometrelerden daha karmaşık kodlar gerektirir, ancak bunlarla çalışmak yine de oldukça kolaydır. Döner kodlayıcınızın beş pimi vardır: topraklama, VCC, bir düğme pimi (SW), çıkış A (CLK) ve çıkış B (DT). SW, CLK ve BT pinleri Arduino'daki ayrı dijital konektörlere bağlanırken, zemin ve VCC pinleri sırasıyla Arduino'nuzdaki zemin ve 5V konektörlerine bağlanır.

Arduino Rotary Enkoder Kodu

Kodumuzu daha basit ve daha kolay çalışmak için MPogramlar tarafından oluşturulan SimpleRotary Arduino kütüphanesini kullanacağız. GitHub. Kodunuz üzerinde çalışmaya başlamadan önce bu kitaplığın kurulu olduğundan emin olun.

Potansiyometre kodunuz gibi, döner kodlayıcı betiğinizi temel Arduino ile başlatabilirsiniz. kurmak() Ve döngü() işlev şablonu. SimpleRotary kitaplığını bildirerek ve kodlayıcı pinlerinizi bu sırayla atayarak başlayın; CLK, DT ve SW.

#katmak 
BasitDöner döner(1,2,3);

herhangi bir şey eklemenize gerek yok kurmak() döner kodlayıcınızı teşhis etmek için seri monitörü kullanmak istemediğiniz sürece işlev.

geçersizkurmak(){
Seri.başlamak(9600);
}

bu döngü() işlev farklı bir hikaye. Enkoder milinin dönüşünün belirlenmesi bir rotary.döndür() atanan işlev çağrısı int değişken. Sonuç 1 ise kodlayıcı saat yönünde dönüyordur. Sonuç 2 ise kodlayıcı saat yönünün tersine dönüyor demektir. Kodlayıcı son kontrolden bu yana dönmediyse sonuç her zaman 0 olacaktır.

Kullanabilirsiniz eğer kodlayıcının dönme yönüne bağlı olarak diğer kodu tetikleyen ifadeler.

geçersizdöngü(){
int kodlayıcıDöndürme;
encoderRotation = rotary.rotate();

eğer (kodlayıcı Döndürme == 1) {
Serial.println("saat yönünde");
}

eğer (kodlayıcı Döndürme == 2) {
Serial.println("saat yönünün tersine");
}
}

Kodlayıcınızın düğmesi için de bazı kodlar eklemeniz gerekir. döngü() işlev. Bu işlem çok benzer, tek farkla rotary.push() işlev yerine rotary.döndür().

geçersizdöngü(){
int kodlayıcıDüğmesi;
encoderButton = rotary.push();

eğer (kodlayıcıDüğmesi == 1) {
Serial.println("düğmesine basıldı");
}
}

Bu komut dosyası oldukça basittir ve onu kendinize ait hale getirmek için çok şey yapabilirsiniz. Tüm temel özelliklerini kullandığınızdan emin olmak için SimpleRotary proje belgelerini incelemeye değer. Bir araya getirildiğinde, kodlayıcı kodunuz böyle görünmelidir.

#katmak 
BasitDöner döner(1,2,3);

geçersizkurmak(){
Seri.başlamak(9600);
}

geçersizdöngü(){
int kodlayıcıDöndürme;
encoderRotation = rotary.rotate();

eğer (kodlayıcı Döndürme == 1) {
Serial.println("saat yönünde");
}

eğer (kodlayıcı Döndürme == 2) {
Serial.println("saat yönünün tersine");
}

int kodlayıcıDüğmesi;
encoderButton = rotary.push();

eğer (kodlayıcıDüğmesi == 1) {
Serial.println("düğmesine basıldı");
}
}

Projeler İçin Potansiyometreler ve Döner Kodlayıcılar Arasında Nasıl Seçim Yapılır?

Gördüğünüz gibi döner kodlayıcılar ve potansiyometreler oldukça farklı çalışıyor. Bu bileşenlerin her ikisi de elektronik projelerinizi kontrol etmeniz için size yeni yollar sunar, ancak hangisini seçmelisiniz?

Potansiyometreler ekonomiktir ve kullanımı kolaydır, ancak yalnızca sınırlı bir giriş aralığına izin verir. Bu, bir LED'in parlaklığını kontrol etmek veya belirli bileşenlere giden gücü artırmak ve azaltmak ve diğer benzer görevler istediğinizde onları harika kılar.

Döner kodlayıcılar, potansiyometrelerden çok daha fazla kapsam sağlar. Bir düğmenin dahil edilmesi, birçok modern arabada görüldüğü gibi, menü kontrol sistemleri için harika oldukları anlamına gelir. Bu tip bileşen, mekanik klavye oluşturma alanında çok popüler hale geldi. hatta yapabilirsin küçük bir makropad oluşturun yerleşik bir kodlayıcı ile.

Benzer Görünüm, Farklı Bileşenler

Tüm bu bilgiler elinizin altındayken, bir potansiyometre veya döner kodlayıcı ile bir elektronik projeye başlamaya hazır olmalısınız. Bu bileşenler, oluşturduğunuz devreler üzerinde size çok fazla kontrol sağlayabilir, ancak projeniz için doğru seçeneği seçtiğinizden emin olmanız gerekir.