Arduino RGB Led Kontrolü Uygulaması

Merhaba arkadaşlar, bu yazımda çok sevdiğimiz ledlerin başka bir çeşidi olan RGB Led yani Red - Green - Blue Ledlerin kullanımını anlatacağım. RGB Ledler aydınlatma, efekt, pano ve hatta video ekranı olarak birçok uygulamada kullanılıyorlar. Her bir RGB Led bünyasinde barındırdığı kırmızı, yeşil ve mavi ledlerin karışımından olucak şekilde ışık yayarlar. Böylece istediğimiz ışık rengini tek bir led üzerinden elde edebiliriz. Biliyoruz ki doğada renkler kırmızı (red) , yeşil (green) ve mavi (blue) renklerin karışımıyla oluşur. Görüntü teknolojisinde de bu sistem sıkça kullanılmaktadır. Bunun dışında CMYK renk kodlaması da yapılır.

Elektronik uygulamalarda kullandığımız RGB ledler iki çeşittir. Birincisi Ortak Anot a Sahip RGB Ledler ve diğeri Ortak Katot a sahip RGB ledler. Buradaki temel fark birinde yanan ledi belirli değerde aydınlığını azaltarak istenilen renk elde edilirken diğerinde ise RGB len içerisindeki ledler belirli miktarlarda aydınlatılarak istenilen renk elde edilir.

RGB Led Kontrolü 


Anot RGB ledlerde ortak anot uçtan +5V verilip tüm renkler (RGB) yakılır. Sonra her bir renk pininden voltaj verilip bu gerilim farkı azaltılarak istenilen renk değerlerine ulaşılır.

Katot RGB ledlerde ise ortak katot uç toprağa (GND) bağlıdır. Sönük durumda olan ledin her bir renk pinine voltaj değeri gönderilerek aydınlatılır ve istenilen renk değerine ulaşılır. Aşağıda Ortak Anot RGB Led ve Ortak Katot RGB Led şekilleri vardır.

Ortak Katot RGB ledlerde renk pinleri aldıkları değerleri direk gösterirlerken , Ortak Anot RGB Ledlerde renk pinlerine uyguladığınız voltaj ortak anot pininden gelen +5V gerilime karşı olacağından renklerde oluşacak değer (+5V - PinVoltaj) şeklinde olacaktır. Bunun farkını uygulamalarımızda göreceğiz.


Gelelim uygulamamıza.. İlk uygulama RGB Led Kontrolü için temel bir uygulama olacak. Bu uygulamada RGB ledteki renkleri nasıl kullanacağımızı göreceğiz. Katot ortak uca sahip bir RGB led kullandığımızı farzederek yazacağız. Uygulamada RGB ledimiz 2 saniye aralıklarla önce Kırmızı, Yeşil ve Mavi renkler yanacak sonra ardından seçmiş olduğumuz herhangi 3 farklı renkte yanacak. 

Örnek olarak kullanacağımız rastgele şu renkleri seçelim;

RGB(122,68,45) yani ----                
RGB(55,61,117) yani ----                
RGB(95,186,33) yani ----                


int RedPin = 11; 
int GreenPin = 10;
int BluePin = 9;
void setup()
{
  pinMode(RedPin, OUTPUT);
  pinMode(GreenPin, OUTPUT);
  pinMode(BluePin, OUTPUT);
}
void loop()
{
  // Kırmızı ışık için
  analogWrite(RedPin,255); // kırmızı max aydınlıkta yanıyor
  analogWrite(GreenPin,0); // Yeşil Sönük
  analogWrite(Bluepin,0);  // Mavi Sönük
  delay(2000);
  // Yeşil ışık için
  analogWrite(RedPin,0);     // Kırmızı sönük
  analogWrite(GreenPin,255); // Yeşil max aydınlıkta yanıyor
  analogWrite(Bluepin,0);    // Mavi Sönük
  delay(2000);
  // Mavi ışık için
  analogWrite(RedPin,0);    // Kırmızı sönük
  analogWrite(GreenPin,0);  // Yeşil sönük
  analogWrite(Bluepin,255); // Mavi max aydınlıkta yanıyor
  delay(2000);
  // RGB(122,68,45) rengi için
  analogWrite(RedPin,122); 
  analogWrite(GreenPin,68); 
  analogWrite(Bluepin,45);  
  delay(2000);
  // RGB(55,61,117) rengi için
  analogWrite(RedPin,55); 
  analogWrite(GreenPin,61); 
  analogWrite(Bluepin,117);  
  delay(2000);
  // RGB(95,186,33) rengi için
  analogWrite(RedPin,55); 
  analogWrite(GreenPin,61); 
  analogWrite(Bluepin,117);  
  delay(2000);
}

Bu temel uygulamanın ardından, bir de farklı bir örnek olacak şekilde bir uygulama yapalım bu uygulamada ise Rastgele (Random) renk kodları elde edecek şekilde bir algoritma yazlım ve RGB Led imiz bu rastgele renkleri saniyede bir değişecek şekilde göstersin.


int RedPin = 11; 
int GreenPin = 10;
int BluePin = 9;
int RedRandom;
int GreenRandom;
int BlueRandom;
void setup()
{
  pinMode(RedPin, OUTPUT);
  pinMode(GreenPin, OUTPUT);
  pinMode(BluePin, OUTPUT);
}
void loop()
{
  // Bu aşamada her adımda 0 ila 256 arasında, 0 dahil 256 hariç integer sayı seçer.
  RedRandom= random(0,256);
  GreenRandom= random(0,256);
  BlueRandom= random(0,256);
  // Seçilen rastgele renk değerleri ayrı ayrı analog olarak renk pinlerine yazılır.
  analogWrite(RedPin,RedRandom);
  analogWrite(GreenPin,GreenRandom);
  analogWrite(BluePin,BlueRandom);
  
  delay(1000);
}

Bir Sonraki uygulamada ise butonlar ile RGB Led Rengi Değiştirme Uygulaması yapacağız. Takipte Kalın kolay gelsin.