/*Enkoder ile LED Parlaklığını Değiştirme: Arduino’ ya bağlı bir LED ve bir rotary encoder bulunacaktır. Enkoder
çevrildikçe LED’ in parlaklığı kademe kademe arttırılıp azaltılabilecektir. Parlaklık maksimum ya da minimum
değere ulaştığı zaman artık değeri değişmemelidir.*/
int led=6;
int clk=3;
int dt=4;
int sayi=0;
int brightness=0;// başkangıç parlaklığı
int sonDurumdt=0;
void setup() {
pinMode(led,OUTPUT);
pinMode(dt,INPUT);
pinMode(clk, INPUT);
sonDurumdt=digitalRead(dt);
Serial.begin(9600);
}
void loop() {
int durumDT=digitalRead(dt);
int durumCLK=digitalRead(clk);
if(durumDT!= sonDurumdt){ //çevrilme durumu
if(durumDT==0){
if(durumCLK==1){
brightness=brightness+10;
}
else{
brightness=brightness-10;
}
if (brightness<0){
brightness=0;
}
if(brightness>255){
brightness=255;
}
analogWrite(led,brightness);
}
}
sonDurumdt=durumDT;
Serial.println(brightness);
}
//brightness 0-255 arasına indirgendi. 8 bitlik adc , pinden 0-255 arası değer verecek
//led PWM pinine bağlandı.DT pini ilk durumu kaydedildi.enkoderin çevrilme durumunu
// anlamak için yeni pin durumu eskisiyle karşılaştırıldı.dt nin low olduğu durumda
//clk high ise parlaklık arttırıldı,low ise azaltıldı.