KY-040 döner kodlayıcı, açısal pozisyonu veya dönüşü ölçmek için kullanılan mekanik bir cihazdır. Hacim kontrollerinde, menü navigasyonunda ve robotikte konum izlemesinde yaygın olarak kullanılır. Bu öğretici, KY-040 Rotary Encoder'ı Arduino ile bağlayarak ve kullanarak size rehberlik edecektir.
Ne İhtiyacınız Olacak
- KY-040 Döner Kodlayıcı Modülü
- Arduino Kurulu (örn. UNO, Mega, Nano)
- Breadboard ve jumper telleri
- Arduino IDE kurulu bir bilgisayar
1. Adım: KY-040 döner kodlayıcıyı anlamak
KY-040 kodlayıcı, döndürüldüğünde darbeler üreten bir döner kadrandan oluşur. Ayrıca yerleşik bir itme düğmesi içerir.
KY-040 Pinout
Pin | İşlev |
---|---|
Gnd | Zemin |
+ | Güç kaynağı (5V) |
Clk | Saat darbe sinyali |
DT | Veri nabız sinyali |
Sw | Push Düğme Sinyali |
2. Adım: KY-040'ın Arduino'ya bağlanması
KY-040'ı bir Arduino Uno'ya nasıl bağlayacağınız aşağıda açıklanmıştır:
KY-040 PIN | Arduino pimi |
---|---|
Gnd | Gnd |
+ | 5V |
Clk | Pim 2 |
DT | Pim 3 |
Sw | Pim 4 |
Adım 3: Kodu yükleyin
Aşağıdaki örnek kod, döner kodlayıcının dönüşünü okur ve düğme baskılarını algılar:
#define CLK 2 // Clock pin
#define DT 3 // Data pin
#define SW 4 // Switch pin
int counter = 0; // Counter to track rotation
int currentStateCLK;
int lastStateCLK;
void setup() {
pinMode(CLK, INPUT);
pinMode(DT, INPUT);
pinMode(SW, INPUT_PULLUP); // Internal pull-up for the button
Serial.begin(9600);
// Read the initial state of the CLK pin
lastStateCLK = digitalRead(CLK);
Serial.println("KY-040 Rotary Encoder Test");
}
void loop() {
// Read the current state of the CLK pin
currentStateCLK = digitalRead(CLK);
// If the state has changed, the encoder has rotated
if (currentStateCLK != lastStateCLK) {
// Check the DT pin to determine the rotation direction
if (digitalRead(DT) != currentStateCLK) {
counter++;
} else {
counter--;
}
Serial.print("Counter: ");
Serial.println(counter);
}
// Save the last state of CLK
lastStateCLK = currentStateCLK;
// Check if the button is pressed
if (digitalRead(SW) == LOW) {
Serial.println("Button pressed!");
delay(200); // Debounce delay
}
}
4. Adım: Kurulumu test edin
- Arduino'yu USB üzerinden bilgisayarınıza bağlayın.
- Arduino IDE'yi açın ve doğru seçin Pano Ve Liman altında Aletler menü.
- Kodu tıklayarak yükleyin Yüklemek.
- Seri monitörü açın (Aletler > Seri monitör) ve baud hızını ayarlayın
9600
. - Kodlayıcıyı döndürün ve düğmeye basın. Seri monitördeki sayaç ve düğmeye basın mesajları gözlemleyin.
KY-040 Rotary Encoder uygulamaları
- Hacim veya parlaklık kontrolü
- Menü Gezinme
- Motor pozisyon izleme
- Robotik ve Otomasyon Sistemleri
Sorun giderme
- Rotasyon Tespiti Yok: CLK ve DT kablolarını kontrol edin ve pimlerin kodla eşleştiğinden emin olun.
- Kararsız okumalar: Enkoder sinyallerini stabilize etmek için küçük bir debounce gecikmesi ekleyin.
-
Düğme Tespit edilmedi: SW piminin düzgün bağlandığını ve kullandığını doğrulayın
INPUT_PULLUP
mod.
Çözüm
KY-040 döner kodlayıcıyı Arduino ile başarıyla arayüz ettiniz. Bu çok yönlü modül, projelerinize rotasyon izleme ve düğme işlevselliği eklemenizi sağlar. Sistemlerinizde özel kontroller oluşturmak veya menüleri gezmek gibi farklı uygulamalarda deneyin!