อัน เครื่องเข้ารหัสแบบโรตารี่ เป็นเซ็นเซอร์ที่แปลงการเคลื่อนที่แบบหมุนเป็นสัญญาณดิจิตอลช่วยให้สามารถควบคุมตำแหน่งความเร็วและทิศทางได้อย่างแม่นยำ มันมักจะใช้ใน การควบคุมระดับเสียงหุ่นยนต์เครื่องซีเอ็นซีและการนำทางเมนู- คู่มือนี้จะแสดงวิธีการตั้งค่าและใช้ rotary encoder กับ Raspberry Pi โดยใช้ Python
สิ่งที่คุณต้องการ
- Raspberry Pi (รุ่นใด ๆ ที่มีการสนับสนุน GPIO เช่น PI 3, PI 4)
- rotary encoder (เช่น KY-040)
- เครื่องหั่นขนมปังและสายจัมเปอร์
- ติดตั้ง Python บนราสเบอร์รี่ pi
ขั้นตอนที่ 1: ทำความเข้าใจว่าเครื่องเข้ารหัสแบบโรตารี่ทำงานอย่างไร
อัน เครื่องเข้ารหัสแบบโรตารี่ มีสองเอาต์พุตหลัก:
- clk (a) - สัญญาณชีพจรนาฬิกา
- dt (b) - สัญญาณทิศทาง
- SW (ไม่จำเป็น) - ปุ่มกด (ใช้สำหรับการเลือกตัวเลือก)
เมื่อหมุน หมุด clk และ dt สร้างพัลส์- ลำดับของพัลส์เหล่านี้กำหนด ทิศทางของการหมุน.
ขั้นตอนที่ 2: เดินสายตัวเข้ารหัสโรตารี่ไปยัง Raspberry Pi
พิน rotary encoder | Raspberry Pi Pin | การทำงาน |
---|---|---|
VCC | 3.3V (พิน 1) | แหล่งจ่ายไฟ |
gnd | พื้นดิน (พิน 6) | พื้น |
clk (a) | GPIO17 (พิน 11) | ชีพจรนาฬิกา |
dt (b) | GPIO27 (พิน 13) | สัญญาณทิศทาง |
SW (ปุ่ม) | GPIO22 (พิน 15) | กดปุ่ม |
ขั้นตอนที่ 3: ติดตั้งไลบรารีที่ต้องการ
อัปเดต Raspberry Pi ของคุณและติดตั้งไฟล์ rpi.gpio ห้องสมุดสำหรับการจัดการขัดจังหวะ GPIO
ขั้นตอนที่ 4: รหัส Python เพื่ออ่านอินพุต rotary encoder
รหัส Python พื้นฐานเพื่ออ่านการหมุน
การเพิ่มปุ่มกดตรวจจับ
ขั้นตอนที่ 5: แอปพลิเคชันของ rotary encoder กับ Raspberry Pi
- การนำทางเมนู - เลื่อนผ่านเมนู LCD หรือ OLED
- การควบคุมระดับเสียง - ปรับระดับเสียงในแอปพลิเคชันสื่อ
- เครื่องซีเอ็นซี - การควบคุมการเคลื่อนไหวที่แม่นยำในแอปพลิเคชันมอเตอร์สเต็ปเปอร์
- หุ่นยนต์ - ตรวจจับการหมุนของล้อสำหรับความเร็วและการติดตามตำแหน่ง
- ระบบอัตโนมัติในบ้านอัจฉริยะ - ใช้เป็นตัวเลือกสำหรับฟังก์ชั่นบ้านที่แตกต่างกัน
การแก้ไขปัญหา
-
ตัวเข้ารหัสแบบโรตารี่ไม่ตอบสนอง
- ตรวจสอบ การกำหนดสายไฟและ GPIO PIN.
- ทำให้มั่นใจ เปิดใช้งานตัวต้านทานแบบดึงขึ้น (
PUD_UP
).
-
การข้ามขั้นตอนหรือการเคลื่อนไหวที่ไม่แน่นอน
- เพิ่ม ความล่าช้า debounce (
time.sleep(0.01)
). - ใช้ GPIO ขัดจังหวะ แทนที่จะสำรวจ (
GPIO.add_event_detect
).
- เพิ่ม ความล่าช้า debounce (
-
ไม่ตรวจพบปุ่มกด
- ทำให้มั่นใจ ปุ่มปุ่มเชื่อมต่ออย่างถูกต้อง ถึง gnd.
- เพิ่มไฟล์ เวลา debounce 300ms ใน
GPIO.add_event_detect
.
บทสรุป
อัน เครื่องเข้ารหัสแบบโรตารี่ เป็นอุปกรณ์อินพุตอเนกประสงค์สำหรับ การนำทางเมนูการควบคุมมอเตอร์และการติดตามตำแหน่ง- โดยทำตามคำแนะนำนี้คุณสามารถรวมตัวเข้ารหัสแบบหมุนได้อย่างง่ายดาย Raspberry Pi สำหรับโครงการเชิงโต้ตอบ 🚀