Dalam proyek ini kita akan menghubungkan ROTARY ENCODER dengan ARDUINO. ARDUINO UNO adalah papan pengembangan berbasis pengontrol ATMEGA yang dirancang untuk insinyur elektronik dan penghobi. Di ARDUINO kami memiliki 20 pin I / O, sehingga kami dapat memprogram 20 pin UNO untuk digunakan sebagai input atau output.
Sebuah ROTARY ENCODER digunakan untuk mengetahui posisi gerakan dan gerakan angular motor atau sumbu. Ini adalah perangkat tiga terminal biasanya, dengan pin daya dan ground ada total 5 terminal. Modul ROTARY ENCODER ditunjukkan di bawah ini.
Pin dari encoder putar adalah:
- Tanah
- Positif terhubung ke + 5V
- Sinyal keluaran pin
- Sinyal keluaran pin B.
- Pin jam atau pin umum
ENCODER memberikan pulsa yang mewakili perubahan posisi poros agar sistem dapat memahami. Pertimbangkan sebuah ROTARY ENCODER dihidupkan dan porosnya digerakkan.
Seperti yang ditunjukkan pada tabel di atas, pertimbangkan poros digerakkan searah jarum jam. Dengan ini akan ada Falling Edge di terminal A lalu di terminal B.
Pertimbangkan poros digerakkan Anti jam bijaksana. Dengan ini akan ada Falling Edge di terminal B lalu di terminal A.
Tepi ini akan terjadi sekali selama 360/20 = 18 derajat (Ini untuk Encoder dengan posisi 20, ini berubah dari tipe ke tipe, semakin tinggi hitungan semakin besar akurasinya).
Dengan kedua kondisi di atas, kita bisa mendapatkan arah dan derajat rotasi. Dengan demikian kami mendapatkan parameter yang dibutuhkan untuk mendapatkan posisi poros.
Komponen Diperlukan
Perangkat Keras: Arduino uno board, pin penghubung, resistor 220Ω, LED (delapan buah), resistor 1KΩ, resistor 220Ω (2 buah), kapasitor 100nF (2 buah), papan roti.
Perangkat lunak: Arduino setiap malam
Diagram Sirkuit dan Penjelasan Kerja
Kapasitor di sini adalah untuk menetralkan efek pantulan kontak di ENCODER. Tanpa kapasitor tersebut akan ada beberapa masalah serius dalam pembacaan posisi.
Ketika poros digerakkan maka akan terjadi perbedaan waktu antara dua keluaran pin keluaran. Arduino UNO akan mengenali perbedaan waktu ini untuk rotasi berlawanan arah jarum jam dari arah jarum jam.
Jika rotasi searah jarum jam, hitungan biner bertambah satu, dan hitungan ini ditampilkan di port LED seperti yang ditunjukkan pada gambar.
Jika rotasinya Anti clock, jumlah biner dikurangi satu dan jumlah biner ditampilkan pada byte LED.
Cara kerja Arduino dengan Rotary Encoder dijelaskan selangkah demi selangkah dalam kode C yang diberikan di bawah ini.