Anda di halaman 1dari 13

Mengakses Rotary Encoder

Menggunakan Interupsi eksternal


Oleh : Agus Pracoyo
Rotary Encoder adalah:
 Rotary encoder, juga disebut sbg shaft
encoder, adalah perangkat elektro-
mekanis yang mengubah posisi sudut atau
gerakan poros atau sudut menjadi sinyal
keluaran analog atau digital.Rotary
Encoder dapat disebut sebagai potensio
meter digital
Prinsip kerja
Incremental rotary encoder
Pada dasarnya incremental rotary encoder terdiri atas
dua track atau single track dan dua sensor yang disebut
kanal A dan B

LAB. MICROPROCESSOR Polinema


Diagram Waktu Saat diputar
Maju

LAB. MICROPROCESSOR Polinema


Diagram Waktu Saat Diputar Mundur
Rotary Encoder deteksi posisi
Rotary Encoder pengganti potensio meter

OFF

ON
Akses Rotary Encoder
 Clk terhubung ke INT0
 DT terhubung ke PIND3
 SW terhubung ke PIND4
 Pada awal program LED SW on, LED CCW off, dan LED CW on
 Jika SW ditekan maka LED SW akan Toggle (berbalik logika)
 Jika rotary encoder diputar ke kanan maka LED CW on dan LED
CCW off
 Jika rotary encoder diputar ke kiri maka LED CW off dan LED CCW
on
 Rancang algoritma untuk kasus diatas
Flochart
START ISR

PA0, PB0, PB1 sbg. Output


Ke Kanan ?
PD2, PD3, PD4 sbg. Input
R-pullup PD2, PD3, PD4

CW ON, CCW OFF CW OFF, CCW ON


PB1 ON : CW
PB0 OFF : CCW
PA0 OFF: SW

INT0: transisi naik


Enable INT0 Return from
Enable global interupsi Interrupt

N
SW ON ?
Y

Toggle PA0
#include <avr/io.h>
#include <avr/interrupt.h>

int main(void){
DDRD &= ~(1<<PD2 & ~(1<<PD3) & ~(1<<PD4);
PORTD |= (1<<PD2) | (1<<PD3) | (1<<PD4);
DDRA |= (1<<PA0); DDRB |= (1<<PB0) | (1<<PB1);
PORTB |= (1<<PB0); PORTB &= ~(1<<PB1); PORTA &= ~(1<<PA0);

MCUCR |= (1<<ISC01) | (1<<ISC00);//INT0 aktif transisi naik


GICR |= (1<<INT0);//enable interupsi INT0
sei();//enable global int
while (1){
if((PIND & 0x10)==0){
PORTA ^= (1<<PA0);
while((PIND & 0x10)==0){}
}
}

ISR(INT0_vect){
if (PIND & 0x08){
PORTB |= (1<<PB0); PORTB &= ~(1<<PB1);
}
else {
PORTB |= (1<<PB1); PORTB &= ~(1<<PB0);
}
}
Terima kasih

Anda mungkin juga menyukai