«

»

May 31

Rotary Encoder

Encoder banyak digunakan dalam odometri, dimana kita perlu mengetahui seberapa jauh motor berputar. Encoder sering juga digunakan untuk mengukur kecepatan putar motor. Encoder yang biasa digunakan untuk kebutuhan odometri, biasanya memiliki dua kanal, A dan B. Keduanya memiliki beda fasa 90 derajat.Bila kita memperhatikan kedua gambar di atas (berputar ke kanan dan ke kiri), kita akan melihat bahwa ketika pulsa pada kanal A, baik sisi positif maupun negatif, pulsa pada kanal B memiliki logika yang berlawanan. Dengan melihat kondisi ini maka kita dapat menentukan apakah putaran motor ke kanan atau ke kiri. Berikut adalah contoh ISR – interrupt service routine dengan CodeVision AVR, dimana output kanal A dihubungkan dengan INT0 dan output kanal B dihubungkan dengan PORTC.4:

interrupt [EXT_INT0] void ext_int0_isr(void)
{
if ( PINC.4 == 1 ) {
nCounter++;    // turn right
}
else {
nCounter--;    // turn left
}
}

Dalam konteks pengukuran jarak tempuh, kita perlu mengukur keliling dari roda yang digunakan. Bila diasumsikan, encoder memiliki resolusi 10 pulsa / revolusi dan roda yang digunakan memiliki keliling 10 cm, maka satu cacahan encoder mewakili jarak tempuh 1 cm.