A Encoder putar adalah sensor yang mengubah gerakan rotasi menjadi sinyal digital, memungkinkan kontrol yang tepat atas posisi, kecepatan, dan arah. Itu biasanya digunakan dalam Kontrol Volume, Robotika, Mesin CNC, dan Navigasi Menu. Panduan ini akan menunjukkan kepada Anda cara mengatur dan menggunakan rotary encoder dengan raspberry pi menggunakan python.
Apa yang Anda Butuhkan
- Raspberry Pi (Model apa pun dengan dukungan GPIO, mis., Pi 3, pi 4)
- Rotary Encoder (mis., KY-040)
- Papan tempat memotong papan dan kabel jumper
- Python terpasang di raspberry pi
Langkah 1: Memahami cara kerja encoder putar
A Encoder putar memiliki dua output utama:
- Clk (a) - sinyal denyut nadi jam
- Dt (b) - Sinyal arah
- Sw (opsional) - tombol tekan (digunakan untuk memilih opsi)
Saat diputar, Pin Clk dan DT menghasilkan pulsa. Urutan pulsa ini menentukan arah rotasi.
Langkah 2: Pengkabelan rotary encoder ke raspberry pi
Pin Encoder Rotary | Raspberry Pi Pin | Fungsi |
---|---|---|
Vcc | 3.3V (pin 1) | Catu daya |
Gnd | Ground (pin 6) | Tanah |
Clk (a) | GPIO17 (pin 11) | Denyut nadi jam |
Dt (b) | Gpio27 (pin 13) | Sinyal arah |
Sw (tombol) | Gpio22 (pin 15) | Tombol tekan |
Langkah 3: Instal perpustakaan yang diperlukan
Perbarui Raspberry Pi Anda dan instal Rpi.gpio Perpustakaan untuk menangani interupsi GPIO.
Langkah 4: Kode Python Untuk Membaca Rotary Encoder Input
Kode Python dasar untuk membaca rotasi
Menambahkan Deteksi Tekan Tombol
Langkah 5: Aplikasi Encoder Rotary dengan Raspberry Pi
- Navigasi menu - Gulir melalui menu LCD atau OLED.
- Kontrol volume - Sesuaikan volume dalam aplikasi media.
- Mesin CNC - Kontrol gerakan yang tepat dalam aplikasi motor stepper.
- Robotika - Mendeteksi rotasi roda untuk pelacakan kecepatan dan posisi.
- Otomatisasi Rumah Cerdas - Gunakan sebagai pemilih untuk fungsi rumah yang berbeda.
Pemecahan masalah
-
Encoder putar tidak menanggapi
- Periksa penugasan kabel dan pin gpio.
- Memastikan resistor pull-up diaktifkan (
PUD_UP
).
-
Melewatkan langkah atau gerakan yang tidak menentu
- Menambahkan Debounce Delay (
time.sleep(0.01)
). - Menggunakan GPIO menyela alih -alih pemungutan suara (
GPIO.add_event_detect
).
- Menambahkan Debounce Delay (
-
Tombol tekan tidak terdeteksi
- Memastikan Pin tombol terhubung dengan benar ke gnd.
- Tambahkan a Debounce Time 300ms di dalam
GPIO.add_event_detect
.
Kesimpulan
A Encoder putar adalah perangkat input serbaguna untuk navigasi menu, kontrol motor, dan pelacakan posisi. Dengan mengikuti panduan ini, Anda dapat dengan mudah mengintegrasikan rotary encoder dengan Anda Raspberry Pi untuk proyek interaktif. 🚀