Rotary encoder'lar üreticilerin projelerine etkileşimli, dokunsal kontrol ekleme biçimini değiştiriyor. Geleneksel potansiyometrelerin aksine bu bileşenler zamanla aşınmaz ve dahili bir basma düğmesiyle birlikte iki yönlü dönüş geribildirimi sağlar. Bir Arduino ile eşleştirildiğinde, tek bir KY-040 rotary encoder temel bir yapıyı profesyonel seviyede bir giriş cihazına dönüştürebilir.
Eğer hantal düğmeleri pürüzsüz, duyarlı kontrollerle değiştirmek istiyorsanız, bu beş proje dijital bir ses düğmesinden bir çalma listesi tarayıcısına kadar her şeyi inşa etmenize rehberlik edecek — hepsi aynı temel bileşeni kullanarak.
Rotary Encoder'lar Nasıl Çalışır: Yapının Bilimi
KY-040 rotary encoder, CLK (saat) ve DT (veri) pinleri olarak bilinen ve birbirinden 90 derece faz dışı iki kare dalga sinyali üreterek çalışır. Bu faz kayması kasıtlıdır: hangi sinyalin önde olduğunu izleyerek mikrodenetleyiciniz dönüş yönünü belirler. Dahili basma düğmesi üçüncü bir işlev ekleyerek seçim veya sıfırlama eylemlerine olanak tanır.
Encoder'ı Arduino ile arayüzlemek için pinleri aşağıdaki gibi bağlayın:
Arduino Pin 2 → CLK (saat sinyali)
Arduino Pin 3 → DT (veri sinyali)
Arduino Pin 4 → SW (basma düğmesi, dahili pull-up etkinleştirilmiş)
5V → VCC
GND → GNDEncoder girişini okumak için minimal bir kod parçası şöyledir:
#define CLK_PIN 2
#define DT_PIN 3
#define SW_PIN 4
int counter = 0;
int lastCLK;
void setup() {
Serial.begin(115200);
pinMode(CLK_PIN, INPUT);
pinMode(DT_PIN, INPUT);
pinMode(SW_PIN, INPUT_PULLUP);
lastCLK = digitalRead(CLK_PIN);
}
void loop() {
int currentCLK = digitalRead(CLK_PIN);
if (currentCLK != lastCLK) {
int direction = (digitalRead(DT_PIN) == currentCLK) ? 1 : -1;
counter += direction;
Serial.print("Konum: ");
Serial.println(counter);
}
lastCLK = currentCLK;
if (digitalRead(SW_PIN) == LOW) {
counter = 0;
Serial.println("SIFIRLA");
delay(200);
}
}Proje 1: Bilgisayarınız için Dijital Ses Düğmesi
Arduino'yu medya komutlarını sisteme gönderen bir donanım ses denetleyicisine dönüştürün. Bu proje encoder'ın dönüşünü kullanarak ses seviyelerini gerçek zamanlı olarak ayarlar, düğmenin ise sesi kapatma veya oynat/duraklat tetikleme için yapılandırılmasına olanak tanır.
Ana bileşenler:
- KY-040 rotary encoder
- Arduino Nano (USB üzerinden bağlı)
- Sanal klavye emülasyonu için USB kablosu
Mantık 0'dan 100'e kadar ses değerleri arasında dolaşarak ana sisteme HID komutları gönderir. Encoder düğmesinin kısa basılması sesi kapatma işlevini değiştirebilir.
Proje 2: Ayar Panelleri için LCD Menü Gezgin
Fiziksel bir rotary encoder kullanarak I2C LCD ekranındaki menülerde gezinmeye geçin. Bu, ev otomasyon panelleri, ses miksörleri veya DIY akıllı ev arayüzleri için idealdir.
Gerekli parçalar:
- KY-040 encoder
- Arduino Nano
- 16×2 I2C LCD ekran
Firmware menü indeks değişikliklerini izler ve ekranı buna göre günceller. Encoder'ı basmak vurgulanan seçeneği seçerek kusursuz bir kullanıcı deneyimi yaratır.
Proje 3: OLED Geribildirimli DC Motor Hız Denetleyicisi
Encoder'ın hassasiyetini kullanarak 12V DC motor üzerinde ince ayarlı kontrol elde edin. Bu proje KY-040'ı bir L298N motor sürücü modülü ve gerçek zamanlı hız ve yönü görüntüleyen küçük bir OLED ekranla birleştirir.
Kullanılan bileşenler:
- KY-040 encoder
- Arduino Nano
- L298N motor sürücü modülü
- 12V DC motor
- 128×64 OLED I2C ekran
Sistem encoder dönüşlerini -255'ten 255'e kadar motor hız değerlerine eşler, ekranı anında günceller ve PWM üzerinden güç çıkışını ayarlar.
Proje 4: Rotary Nota Seçimi ile Arduino Synthesizer
Encoder kullanarak müzik tonları arasında gezinmenizi sağlayan basit bir 8-notalı synthesizer inşa edin. Her dönüş adımı önceden tanımlanmış bir skalada (C4'ten B4'e) bir sonraki nota geçiş yapar ve basma düğmesi çalmayı tetikler.
Gerekli donanım:
- KY-040 encoder
- Arduino Nano
- 8Ω hoparlör veya b
Yapay zeka özeti
Explore 5 practical rotary encoder projects for Arduino to build precise digital volume knobs, menu navigators, motor controllers, synthesizers, and playlist browsers with KY-040 components.