18 Temmuz 2014 Cuma

Arduino 1 - Serial Monitör ile LED Kontrolü

Seri Haberleşme Uygulaması
Bilgisayar ile LED Kontrolü

Serial Monitör ekranına klavyeden A,B,C,D harflerinden herhangi biri girilerek o harflere karşılık gelen LED’lerin yanması veya sönmesi sağlanıyor.

// 9,10,11 ve 12 numaralı pinleri karışıklık olmaması için harf ile adlandırıyorum
#define A 12
#define B 11
#define C 10
#define D 9

char key; 
boolean durum[4]= {false, false, false, false};   // başlangıçta hiçbir LED’lin yanmadığı bilgisi saklanıyor

void setup()
{                
  // 9,10,11 ve 12 Numaralı pinleri dijital çıkış olarak yönlendiriyoruz
  pinMode(A, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);
  Serial.begin(9600);
}

void loop()
  if(Serial.available()>0)      // Arduino’nun klavyeden ona bilgi gönderip göndermediğimizi anlamasını sağlıyoruz
  {
    key = Serial.read();         // Klavyeden girilen harfi okutuyoruz ve key değişkeninde saklıyoruz
    Serial.print("Gelen karakter:");
    Serial.println(key);
   
    if(key=='A')        // 12 numaralı pin
    {
      yak(A);
    }
    else if(key=='B')     // 11 numaralı pin
    {
      yak(B);
    }
    else if(key=='C')    // 10 numaralı pin
    {
      yak(C);
    }
    else if(key=='D')   // 9 numaralı pin
    {
      yak(D);
    }   
  } 

void yak(int LED)  
 {
   if(LED==A)              // 12 numaralı pin ise
   {
     if(durum[0]==false)    // sömüş durumda ise yakıyoruz
     {
       digitalWrite(LED, HIGH);
       durum[0]=true;               // yanmaya başladığı bilgisini saklıyoruz
     }
     else if(durum[0]==true)        // yanmış durumda ise söndürüyoruz
     {
       digitalWrite(LED, LOW);
       durum[0]=false;             // sönmeye başladığı bilgisini saklıyoruz
     }
   }
   else if(LED==B)
   {
     if(durum[1]==false)
     {
       digitalWrite(LED, HIGH);
       durum[1]=true;
     }
     else if(durum[1]==true)
     {
       digitalWrite(LED, LOW);
       durum[1]=false;
     }
   }  
   else if(LED==C)
   {
     if(durum[2]==false)
     {
       digitalWrite(LED, HIGH);
       durum[2]=true;
     }
     else if(durum[2]==true)
     {
       digitalWrite(LED, LOW);
       durum[2]=false;
     }
   }  
   if(LED==D)
   {
     if(durum[3]==false)
     {
       digitalWrite(LED, HIGH);
       durum[3]=true;
     }
     else if(durum[3]==true)
     {
       digitalWrite(LED, LOW);
       durum[3]=false;
     }
   } 

 }




Hiç yorum yok:

Yorum Gönder