Arduino RGB Led Uygulaması | Ders 3: RGB Led Disko
Bu uygulamamızda Arduino RGB led uygulaması ile karşınızdayız. Daha önce sizlere arduino uno’ da normal tek renk ledler ile farklı uygulamaları anlattık. Bu sefer biraz farklı bir uygulama ile arduino’ yu daha detaylı anlamaya çalışacağız.
Projemizde gerekli olan malzemeler aşağıdaki gibidir.
- Arduino Uno
- 1 Adet RGB Led (Tercihen Ortak Katot)
- 3 adet 220 Ω
- Breadboard
- Bir kaç adet Kablo çifti (erkek uç-erkek uç)
Öncelikle sizlere RGB’ nin ne olduğundan bahsedelim. RGB aslında ingilizce Red Green Blue kelimelerinin baş harflerinden oluşmuş bir kısaltmadır. Türkçe kırmızı yeşil ve mavi anlamlarına gelen RGB teknik olarak da şunu ifade eder; bir ışık kaynağını kullanarak insan gözünün görebildiği ana renkler ve birçok ara rengin de oluşturulduğu bir standardın adıdır. 3 ana rengi belirli oranlarla karışımı ile gözümüzün algıladığı birçok rengi bu modda oluşturmak mümkündür.
Arduino RGB Led Uygulaması ve RGB Led’ in Çalışması
Yukarıdaki tanımı da baz alırsak RGB led aslında 3 ana rengi de oluşturabiliyor. Yani Kırmızı Yeşil ve Mavi renklerini oluşturabilen bir ışık kaynağımız var. Fakat bu led ile ana renklerin dışındaki milyonlarca ton rengi oluşturmamız mümkün müdür? Evet elbette mümkündür. Arduino Uno ile bunu programlayarak oldukça güzel uygulamalar geliştirebilir, hem RGB modu daha iyi kavrayabilir, hem de program yazma yeteneğinize katkıda bulunabilirsiniz.
Öncelikle şunu düşünün, bir ressam ağacı boyamak için kullanacağı koyu yeşil rengini nasıl elde eder? Palete önce ana yeşil rengi katar, sonrasında biraz siyah biraz farklı ton renkleri de ilave eder ve boyamaya, çizmeye başlar.
İşte biz de RGB ledi farklı tondaki renkleri oluşturmak için kullanırken, farklı miktarlarda voltajlar kullanacağız. (Resim 1) Bildiğiniz gibi Arduino Uno 0 ya da 5v ile çalışır. Çıkışlara gönderdiğimiz bu değerlere göre devrelerimizi besleriz. Ancak bu kez bizlere 0,25v- 0,50v – 0,75, 1 – 1,25 – 1,5 …… 4,5v 5,0 gibi ara voltaj değerleri gerekiyor. Bu ara değerleri oluşturmak istiyorsanız arduino uno da tüm çıkışları kullanamazsınız. Bu ara değerleri veren çıkışlara PWM çıkışları ismi verilir ve üzerlerinde ∼ işareti bulunmaktadır. (Resim 2)
RGB LED Devre Şeması
Biz de bu uygulamamızda sizlerle bu çıkışlardan herhangi birini kullanmak zorundayız. Çünkü RGB lede farklı voltajlar verip onu farklı renklerler yakmayı deneyeceğiz. Devremizi aşağıdaki gibi kuralım. Öncelikle şunu belirteyim. Ben FE-RGB olarak adlandırılan bir ortak katot RGB led kullanmayı seçtim. Bazı rgb ledlerdeki bacak dizilimleri farklı olabilir. Bununla ilgili araştırma yapıp ilgili bacaklara göre devrenizi kurun. Yine benim kullandığım led için R yani kırmızı ucu PWM çıkış olan 3, G yani yeşil ucu 5’e ve B yani mavi ucu da 6′ ya bağladığımı belirtmek isterim.
int KirmiziLed=3; // Pin tanımlamaları int YesilLed=5; int MaviLed=6; void setup() { //Çıkışlar pinMode(MaviLed,OUTPUT); pinMode(YesilLed,OUTPUT); pinMode(KirmiziLed,OUTPUT); } void loop() { //Kırmızı LED' i yakıyoruz... digitalWrite(MaviLed,LOW); digitalWrite(YesilLed,LOW); digitalWrite(KirmiziLed,HIGH); delay(1000); //1 sn gecikme komutu //Yeşil LED' i yakıyoruz... digitalWrite(MaviLed,LOW); digitalWrite(YesilLed,HIGH); digitalWrite(KirmiziLed,LOW); delay(1000); //Mavi LED 'i yakıyoruz... digitalWrite(MaviLed,HIGH); digitalWrite(YesilLed,LOW); digitalWrite(KirmiziLed,LOW); delay(1000); }
Yukarıdaki kod için bizler aslında henüz sadece ana renkleri oluşturduk. Bu ilk program kodlarıyla aslında ledinizin sağlamlık kontrolünü de yapmış olacaksınız. Pin tanımlamalarını 3,5,6 olarak sırasıyla R, G, ve B olarak ayarlıyoruz. Sonrasında digitalWrite komutu ile ledimizin uçlarına 5v veya 0v olarak değerler gönderip 3 ana rengi elde ediyoruz.
Şimdi çok daha eğlenceli başka bir program kodunu uygulayalım. Devre şemamız aynı şekilde kalmak şartı ile yeni kodumuzu Arduino Uno’ ya yüklüyoruz. Aşağıdaki kod ile aslında az önce yaptığımız örnekteki ana renkleri kullanarak, kendi aralarında renkler arasında geçiş sırasında ara renkleri kulanarak geçtiğini görüyoruz. Bunun için bu ana renklerin 0-255 arasında bir değer alması sağlanıyor. For döngüsü ile bu değerler belirli oranlarda arttırılıp diğer renge geçiyor.
#define yesil 5 #define mavi 6 #define kirmizi 3 #define delayTime 5 void setup() { pinMode(yesil, OUTPUT); pinMode(mavi, OUTPUT); pinMode(kirmizi, OUTPUT); digitalWrite(yesil, HIGH); digitalWrite(mavi, HIGH); digitalWrite(kirmizi, HIGH); } int kirmiziOran; int maviOran; int yesilOran; void loop() { int kirmiziOran = 255; int maviOran = 0; int yesilOran = 0; for( int i = 0 ; i < 255 ; i += 6 ){ yesilOran += 6; kirmiziOran -= 6; analogWrite( yesil, 255 - yesilOran ); analogWrite( kirmizi, 255 - kirmiziOran ); delay( delayTime ); } kirmiziOran = 0; maviOran = 0; yesilOran = 255; for( int i = 0 ; i < 255 ; i += 6 ){ maviOran += 6; yesilOran -= 6; analogWrite( mavi, 255 - maviOran ); analogWrite( yesil, 255 - yesilOran ); delay( delayTime ); } kirmiziOran = 0; maviOran = 255; yesilOran = 0; for( int i = 0 ; i < 255 ; i += 6 ){ kirmiziOran += 6; maviOran -= 6; analogWrite( kirmizi, 255 - kirmiziOran ); analogWrite( mavi, 255 - maviOran ); delay( delayTime ); } }
Yukarıdaki örneklerle birlikte sizlere RGB Led’ in çalışma mantığını ve Arduino Uno’ da nasıl kullanılacağı ile ilgili bilgiler aktarmaya çalıştık. Sonraki yazılarımızda tekrar görüşmek dileğiyle.
Not: Arduino RGB Led Uygulaması | Ders 3: RGB Led Disko isimli makale içerisindeki anlatımlar özgün içeriktir. Alıntı yapmadan kullanı[email protected]