Dalam projek ini kita akan menghubungkan ROTARY ENCODER dengan ARDUINO. ARDUINO UNO adalah papan pengembangan berasaskan pengawal ATMEGA yang direka untuk jurutera elektronik dan peminat. Di ARDUINO kami mempunyai 20 pin I / O, jadi kami dapat memprogram 20 pin UNO untuk digunakan sebagai input atau output.
A ROTARY PENGEKOD digunakan untuk mengetahui kedudukan pergerakan dan pergerakan sudut motor atau paksi. Ini adalah peranti tiga terminal biasanya, dengan power dan pin ground terdapat total 5 terminal. Modul ROTARY ENCODER ditunjukkan di bawah.
Pin pengekod putar adalah:
- Tanah
- Positif disambungkan ke + 5V
- Isyarat output A pin
- Pin isyarat B keluaran
- Pin jam atau pin biasa
ENCODER memberikan denyutan yang menunjukkan perubahan pada kedudukan poros agar sistem dapat difahami. Pertimbangkan ROTARY ENCODER dihidupkan dan poros digerakkan.
Seperti yang ditunjukkan dalam jadual di atas, perhatikan poros digerakkan mengikut arah jam. Dengan ini akan ada Falling Edge di terminal A kemudian di terminal B.
Anggaplah poros digerakkan dengan cara Anti jam. Dengan ini akan ada Falling Edge di terminal B kemudian di terminal A.
Tepi ini akan berlaku sekali untuk 360/20 = 18 darjah (Ini untuk Encoder dengan 20 kedudukan, ini berubah dari jenis ke jenis, semakin tinggi kiraannya semakin tinggi ketepatannya).
Dengan kedua-dua keadaan di atas, kita dapat memperoleh arah dan tahap putaran. Oleh itu, kami mendapat parameter yang diperlukan untuk mendapatkan kedudukan poros.
Komponen Diperlukan
Perkakasan: Arduino uno board, pin penghubung, 220Ω perintang, LED (lapan keping), 1KΩ perintang, 220Ω perintang (2 buah), 100nF kapasitor (2 keping), papan roti.
Perisian: Arduino setiap malam
Diagram Litar dan Penjelasan Kerja
Kapasitor di sini adalah untuk meneutralkan kesan memantul kenalan di ENCODER. Tanpa kapasitor tersebut akan ada beberapa masalah serius dalam membaca kedudukan.
Apabila poros digerakkan akan ada perbezaan waktu antara dua output pin output. Arduino UNO akan menyedari perbezaan masa ini untuk putaran jam mengikut arah pusingan jam.
Sekiranya putaran mengikut arah jam, kiraan binari bertambah satu, dan kiraan ini ditunjukkan dalam port LED seperti yang ditunjukkan dalam gambar.
Sekiranya putaran adalah Anti jam, kiraan binari dikurangkan satu dan kiraan binari ditunjukkan pada LED byte.
Kerja Arduino dengan Rotary Encoder dijelaskan langkah demi langkah dalam kod C yang diberikan di bawah.