Merhaba arkadaşlar. Bugün sizlerle beraber Arduino ile RGB LED kontrolü yapacağız.

Gerekli malzemelerimiz:

 

 

 

Benim kullandığım kitte bulunan RGB LED’imiz ortak anoda sahip. Bu yüzden Arduino için hazırlayacağımız kod ortak anoda göre çalışacak. Eğer ortak katot bir LED kullanmak istersek, kodumuzda ufak bir değişiklik yapmamız gerekecek.

RGB LED İçin Arduino Kodu

İlk dersimizde Arduino yazılımı içinde mevcut olan örnek kodu değiştirmiştik. Bu sefer kodumuzu kendimiz yazıyoruz:

int kirmiziPin = 9;
int yesilPin = 10;
int maviPin = 11;

void setup()
{
 pinMode(kirmiziPin, OUTPUT);
 pinMode(yesilPin, OUTPUT);
 pinMode(maviPin, OUTPUT);
}

void loop()
{
 renkAyarla(255, 0, 0); //kirmizi
 delay(1500);
 renkAyarla(0, 255, 0); //yesil
 delay(1500);
 renkAyarla(0, 0, 255); //mavi
 delay(1500);
 renkAyarla(255, 255, 0); //sari
 delay(1500);
 renkAyarla(80, 0, 80); //mor
 delay(1500); 
 renkAyarla(0, 255, 255); //acik mavi
 delay(1500);
 renkAyarla(255, 255, 255); //beyaz
 delay(1500);
}

void renkAyarla(int kirmizi, int yesil, int mavi)

{
 kirmizi = 255 - kirmizi;
 yesil = 255 - yesil;
 mavi = 255 - mavi;
 analogWrite(kirmiziPin, kirmizi);
 analogWrite(yesilPin, yesil);
 analogWrite(maviPin, mavi);
}

RGB LED’imizin kırmızı bacağını 9 numaralı pine, yeşil bacağını 10 numaralı pine ve mavi pinini 11 numaralı pine 220 Ω’luk dirençler ile bağlıyoruz. Kullandığımız LED ortak anot yapıya sahip olduğu için anot bacağını da kartımızın 5V pinine bağlıyoruz.

Kodumuzun setup fonksiyonunda kullanacağımız pinleri çıkış olarak tanımlıyoruz. Ayrıca yazdığımız renkAyarla isimli fonksiyondaki analogWrite komutu, bize her bir PWM çıkış pininden alacağımız voltajın yüksekliğini ayarlamamızı sağlıyor. analogWrite komutu şu şekilde kullanılıyor:

analogWrite(PWM çıkış pin numarası, 0-255 arası sayısal değer);

analogWrite komutunda 255 değeri maksimum çıkış voltajını yani 5V’u temsil ediyor. 0 ile 255 arası tüm değerler 0 – 5V arası voltaj değerlerine denk düşüyor. Örneğin analogWrite(9 , 80) komutu, 9 numaralı pinden 5V x (80/255) = 1,57V geriliminde çıkış almamızı sağlıyor. Farklı parlaklıklardaki kırmızı mavi ve yeşil ışığı karıştırarak istediğimiz renkte ışık elde etmemiz bu sayede mümkün oluyor.

Eğer kullandığımız LED ortak anot yerine ortak katot yapıya sahipse, ortak bacağı +5V yerine GND pinlerine bağlamamız ve koddaki renkAyarla fonksiyonundaki

kirmizi = 255 - kirmizi;
yesil = 255 - yesil;
mavi = 255 - mavi;

kısmını silmemiz gerekiyor.

loop fonksiyonunda ise kartımız, oluşturduğumuz renkAyarla kodunu tekrar tekrar çağırarak çıkışlara istediğimiz değerleri yazmamızı sağlıyor. delay fonksiyonu bildiğimiz üzere her komut arasında kartımızın işlem yapmadan beklemesini sağlıyor. Bu fonksiyonun değerini değiştirerek istediğimiz hızda renkler arası geçiş sağlayabiliriz. Sizler de farklı parlaklık değerleriyle oynayarak farklı renkler elde edebilirsiniz