/*Encoder ile Yürüyen Işık: Arduino’ ya bağlanan 8 adet LED ve bir adet Rotary Encoder
bulunacaktır. Enkoder döndürüldüğü zaman Arduino’ ya bağlı LED’ ler encoder yönüne göre
bir sonrakine ya da bir öncekine geçecektir. En son LED geldiği zaman sıranın diğer
ucuna gitmelidir.*/
int led1=2;
int led2=3;
int led3=4;
int led4=5;
int led5=6;
int led6=7;
int led7=8;
int led8=9;
int clk=12;
int dt=13;
int sonDurumclk;
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(clk, INPUT);
pinMode(dt, INPUT);
Serial.begin(9600);
digitalWrite(2, HIGH); // ilk led açık
sonDurumclk = digitalRead(clk);
}
void loop() {
int clkDurum = digitalRead(clk);
if (clkDurum != sonDurumclk) {
if(clkDurum==0){// clk nin low olduğu durumda dt ile karşılaştırmasını yaptık.
int dtDurum = digitalRead(dt);
if (dtDurum == HIGH) {// dt high iken ileri yönde
digitalWrite(led1, LOW);
led1++;
if (led1 > 9) led1 = 1;
} else {// dt low iken geri yönde
digitalWrite(led1, LOW);
led1--;
if (led1 < 1) led1 = 9;
}
digitalWrite(led1, HIGH);
}
sonDurumclk = clkDurum;
}
}