ตัวเข้ารหัสโรตารี่ KY-040 เป็นอุปกรณ์เชิงกลที่ใช้ในการวัดตำแหน่งเชิงมุมหรือการหมุน มันมักจะใช้ในการควบคุมระดับเสียงการนำทางเมนูและการติดตามตำแหน่งในหุ่นยนต์ บทช่วยสอนนี้จะแนะนำคุณผ่านการเชื่อมต่อและใช้ตัวเข้ารหัสโรตารี่ KY-040 กับ Arduino
สิ่งที่คุณต้องการ
- KY-040 โมดูล rotary encoder
- คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
- เครื่องหั่นขนมปังและสายจัมเปอร์
- คอมพิวเตอร์ที่ติดตั้ง Arduino IDE
ขั้นตอนที่ 1: ทำความเข้าใจกับตัวเข้ารหัสโรตารี KY-040
ตัวเข้ารหัส KY-040 ประกอบด้วยหน้าปัดหมุนที่สร้างพัลส์เมื่อหมุน นอกจากนี้ยังมีปุ่มกดในตัว
ky-040 pinout
เข็มหมุด | การทำงาน |
---|---|
gnd | พื้น |
+ | แหล่งจ่ายไฟ (5V) |
ลูกนก | สัญญาณชีพจรนาฬิกา |
DT | สัญญาณชีพจรข้อมูล |
SW | สัญญาณกดปุ่ม |
ขั้นตอนที่ 2: เดินสาย KY-040 ไปยัง Arduino
นี่คือวิธีเชื่อมต่อ KY-040 กับ Arduino Uno:
ky-040 pin | พิน Arduino |
---|---|
gnd | gnd |
+ | 5V |
ลูกนก | พิน 2 |
DT | พิน 3 |
SW | พิน 4 |
ขั้นตอนที่ 3: อัปโหลดรหัส
รหัสตัวอย่างต่อไปนี้จะอ่านการหมุนของตัวเข้ารหัสแบบโรตารี่และตรวจจับการกดปุ่ม:
#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: ทดสอบการตั้งค่า
- เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB
- เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ ภายใต้ เครื่องมือ เมนู.
- อัปโหลดรหัสโดยคลิก อัพโหลด.
- เปิดมอนิเตอร์อนุกรม (เครื่องมือ > จอภาพอนุกรม) และตั้งค่าอัตราการรับส่งข้อมูลเป็น
9600
. - หมุนตัวเข้ารหัสแล้วกดปุ่ม สังเกตข้อความกดปุ่มและปุ่มในการตรวจสอบแบบอนุกรม
แอปพลิเคชันของโปรแกรมเข้ารหัสโรตารี่ KY-040
- การควบคุมระดับเสียงหรือความสว่าง
- การนำทางเมนู
- การติดตามตำแหน่งมอเตอร์
- หุ่นยนต์และระบบอัตโนมัติ
การแก้ไขปัญหา
- ไม่มีการตรวจจับการหมุน: ตรวจสอบการเดินสาย CLK และ DT และตรวจสอบให้แน่ใจว่าพินตรงกับรหัส
- การอ่านที่ไม่แน่นอน: เพิ่มความล่าช้าเล็ก ๆ น้อย ๆ เพื่อทำให้สัญญาณเข้ารหัสเสถียร
-
ไม่พบปุ่ม: ตรวจสอบว่าพิน SW เชื่อมต่ออย่างเหมาะสมและใช้งาน
INPUT_PULLUP
โหมด.
บทสรุป
คุณสามารถเชื่อมต่อเครื่องเข้ารหัสแบบโรตารี่ KY-040 ได้สำเร็จกับ Arduino โมดูลอเนกประสงค์นี้ช่วยให้คุณสามารถเพิ่มฟังก์ชั่นการติดตามการหมุนและปุ่มในโครงการของคุณ ทดลองใช้ในแอปพลิเคชันที่แตกต่างกันเช่นการสร้างการควบคุมที่กำหนดเองหรือนำทางเมนูในระบบของคุณ!