Dalam tutorial ini kita akan menghubungkan pengekod putar dengan mikrokontroler ATmega8. ATmega8 adalah siri mikrokontroler atmel yang direka untuk aplikasi tertanam. Pengekod putar digunakan untuk mengetahui kedudukan pergerakan dan pergerakan sudut motor atau paksi. Ini adalah peranti tiga terminal biasanya, dengan jumlah daya dan pin ground hingga lima. Modul pengekod putar 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 ROTATORY 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
Perkakasan: ATMEGA8, pin penghubung, AVR-ISP PROGRAMMER, perintang 220Ω, LED (lapan keping), perintang 1KΩ, perintang 220Ω (2 keping), kapasitor 100nF (2 keping), papan roti.
Perisian: Atmel studio 6.1, progisp atau flash magic.
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. ATMEGA8 akan mengenali 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.
Ingat di sini kita tidak menetapkan bit fius atmega8, jadi pengawal akan menggunakan kristal dalaman lalai 1Mhz.
Cara kerja pengekodan rotary encoder dengan mikrokontroler ATmega8 dijelaskan dalam kod di bawah.