Arduino Ders 24: RGB Led

Arduino Uygulaması

Arduino ile RGB LED Kullanımı

RGB LED bağlantısını, PWM ile renk kontrolünü ve rastgele renk üretmeyi öğreneceğiz.

Arduino RGB LED kullanımı

RGB LED, Arduino projelerinde projenin işleyişine göre farklı renkte ışık elde etmek için kullanabileceğiniz ve kullanımı oldukça basit bir modüldür. Bu yazıda RGB LED Arduino’ya nasıl bağlanır ve Arduino ile RGB LED kullanmak için gerekli kodlar nelerdir sorularının cevaplarını öğreneceğiz.

RGB LED, içerisinde kırmızı, yeşil ve mavi olmak üzere üç farklı LED barındıran bir LED çeşididir. 4 bacaklı tek LED olarak veya hazır modül şeklinde bulunabilir.

Kırmızı, yeşil ve mavi renklerin parlaklığı ayrı ayrı ayarlanarak farklı renk tonları elde edilir.

RGB LED’ler ortak anot ve ortak katot olmak üzere iki farklı yapıda olabilir. Ortak anot LED’lerde kırmızı, yeşil ve mavi LED’lerin artı uçları birleştirilmiştir. Ortak katot LED’lerde ise eksi uçlar birleştirilmiştir.

Ortak anot RGB LED’de ortak uç 5V’a bağlanır. Ortak katot RGB LED’de ortak uç GND’ye bağlanır. Kırmızı, yeşil ve mavi renkleri kontrol eden diğer üç uç ise Arduino’nun PWM destekli dijital pinlerine bağlanmalıdır.

4 bacaklı RGB LED kullanıyorsanız her renk bacağı için uygun seri direnç kullanılmalıdır. Hazır RGB LED modüllerinde dirençler kart üzerinde bulunabilir.

RGB LED içerisindeki her renk için 0-255 arasında PWM sinyali ile parlaklık ayarı yapılabilir. Bu nedenle Arduino’da ~ işareti ile gösterilen PWM destekli dijital pinler tercih edilmelidir.

Bu örnekte kırmızı pin 3 numaralı pine, yeşil pin 5 numaralı pine, mavi pin ise 6 numaralı pine bağlanmıştır.

Arduino RGB LED bağlantı şeması

analogWrite() komutu ile seçili PWM pinine 0 ile 255 arasında değer gönderilir. Değer 0 olduğunda ilgili renk sönük olur, 255 olduğunda tam parlaklıkta yanar.

Ortak katot RGB LED’de değer arttıkça parlaklık artar. Ortak anot RGB LED’de ise mantık ters çalışır; yüksek değer LED’i söndürür, düşük değer yakar. Bu nedenle ortak anot kullanıyorsanız PWM değerlerini ters çevirmek gerekir.

int r = 3;
int g = 5;
int b = 6;

void setup() {
  pinMode(r, OUTPUT);
  pinMode(g, OUTPUT);
  pinMode(b, OUTPUT);
}

void loop() {
  analogWrite(r, 0);
  analogWrite(g, 255);
  analogWrite(b, 180);

  delay(500);
}

Bu kod ortak katot RGB LED için uygundur. Kırmızıya 0, yeşile 255 ve maviye 180 değeri gönderilerek karışım bir renk elde edilir.

int r = 3;
int g = 5;
int b = 6;

void setup() {
  pinMode(r, OUTPUT);
  pinMode(g, OUTPUT);
  pinMode(b, OUTPUT);

  randomSeed(analogRead(A0));
}

void loop() {
  int rDeger = random(0, 256);
  int gDeger = random(0, 256);
  int bDeger = random(0, 256);

  analogWrite(r, rDeger);
  analogWrite(g, gDeger);
  analogWrite(b, bDeger);

  delay(1000);
}

Bu kodda random() komutu ile 0-255 aralığında rastgele değerler üretilir ve her saniyede RGB LED’in rengi değiştirilir. Üst sınır 256 verilmiştir çünkü Arduino’da random(min, max) fonksiyonunda max değeri dahil edilmez.

int r = 3;
int g = 5;
int b = 6;

void renkYaz(int rDeger, int gDeger, int bDeger) {
  // Ortak anot RGB LED kullanılıyorsa değerler ters çevrilir.
  analogWrite(r, 255 - rDeger);
  analogWrite(g, 255 - gDeger);
  analogWrite(b, 255 - bDeger);
}

void setup() {
  pinMode(r, OUTPUT);
  pinMode(g, OUTPUT);
  pinMode(b, OUTPUT);
}

void loop() {
  renkYaz(0, 255, 180);
  delay(500);
}

Elinizdeki RGB LED ortak anot ise bu sürümdeki gibi PWM değerleri 255’ten çıkarılarak ters çevrilmelidir.

Yorum Gönder

Daha yeni Daha eski