Dalam tutorial ini kita akan menghubungkan encoder putar dengan mikrokontroler ATmega8. ATmega8 adalah rangkaian mikrokontroler atmel yang dirancang untuk aplikasi yang disematkan. Rotary encoder digunakan untuk mengetahui posisi gerakan dan gerakan sudut suatu motor atau sumbu. Ini adalah perangkat tiga terminal biasanya, dengan jumlah pin power dan ground sampai lima. 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 ROTATORY ENCODER dihidupkan dan poros 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
Perangkat keras: ATMEGA8, pin penghubung, AVR-ISP PROGRAMMER, resistor 220Ω, LED (delapan buah), resistor 1KΩ, resistor 220Ω (2 buah), kapasitor 100nF (2 buah), papan roti.
Perangkat lunak: Atmel studio 6.1, progisp atau flash magic.
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. ATMEGA8 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.
Ingat di sini kami tidak mengatur bit sekering atmega8, Jadi pengontrol akan bekerja pada kristal internal default 1Mhz.
Cara kerja antarmuka rotary encoder dengan mikrokontroler ATmega8 dijelaskan dalam kode di bawah ini.