Arduino Ders 26: Potansiyometre ile RGB Led Kontrolü


3 potansiyometre ile RGB led içindeki üç renk ayrı ayrı kontrol edilerek ara renkleri elde etmek de mümkündür. Bu işlem için arduinoya bağlı 3 potansiyometreden okunan değerleri RGB ledin renk pinlerine pwm sinyali olarak göndermek yeterli


Daha önceki yazımızda Arduino ile RGB led kontrolününün nasıl yapılacağını öğrenmiştik. Bu yazımızda ise potansiyometre ile RGB led kontrolü yapmaya çalışacağız.
Bildiğimiz gibi potansiyometreler 0-1023 arasında analog değerler üretmektedir. Potansiyometreden alınan analog değerler map komutu ile 0-255 arasındaki pwm sinyallerine dönüştürülerek, arduino üzerindeki pwm pinlerine bağlı RGB led pinlerine aktarılarak RGB led kontrol edilebilir. Bu sayede kırmızı, yeşil ve mavi dışında tüm ara renkleri de potansiyometreleri hareket ettirilerek ara renkler elde edilebilmektedir.
Şimdi hep birlikte potansiyometre ile RGB led nasıl kontrol edilir? Devre şemasını ve arduino kodlarını inceleyelim.


Devre şeması incelendiğinde RGB led renk pinleri arduino 3,5,6 numaralı pwm pinlerinde bağlandı. Potansiyometrelerin veri pinleri ise sırayla A0,A1,A2 analog pinlerine bağlandı.

int pGiris = 0; //Potansiyometre A0 'a bağlı
int pDeger = 0; //Bu değişken potansometre değerini tutacak, başlangıçta sıfırlıyoruz
 
int kirmizi = 9;  
int yesil = 10;  
int mavi = 11;  
 
int kDeger = 0; //kirmizi değer
int yDeger = 0; // yeşil değer
int mDeger = 0; // mavi Değer
 
void setup()
{
  pinMode(kirmizi, OUTPUT);   
  pinMode(yesil, OUTPUT);   
  pinMode(mavi, OUTPUT); 
}
 
// ana program
void loop()
{
  pDeger = analogRead(pGiris);   // Potansiyometre değerini okuyoruz
 
  if (pDeger < 341)  // Potansyometre aralığının en düşük bölümü (0-340)
  {                  
    pDeger = (pDeger * 3) / 4; // 0-255 arasına çekiyoruz
 
    kDeger = 256 - pDeger;  
    yDeger = pDeger;        
    mDeger = 1;            
  }
  else if (pDeger < 682) // Potansiyometre aralığının ortası (341-681)
  {
    pDeger = ( (pDeger-341) * 3) / 4; // 0-255 arasına çekiyoruz
 
    kDeger = 1;           
    yDeger = 256 - pDeger;
    mDeger = pDeger;       
  }
  else  
  {
    pDeger = ( (pDeger-683) * 3) / 4; // 0-255 arasına çekiyoruz
 
    kDeger = pDeger;    
    yDeger = 1;           
    mDeger= 256 - pDeger; 
  }

//RGB ledimize değerleri gönderiyoruz
  analogWrite(kirmizi, kDeger);  
  analogWrite(yesil, yDeger); 
  analogWrite(mavi, mDeger);  
}
Yukarıdaki devre şemasını doğru bir şekilde kurup, arduino kodlarını yüklediğinizde potansiyometreleri çevirerek RGB led renk kontrolünü kolaylıkla gerçekleştirebileceksiniz.

2 Yorumlar

  1. Yalnız en son kısımda else içerisinde, potansiyometre maksimum 1023 olduğunda 683 çıkartıp *3 /4 yaptığınızda bu nasıl 0-255 arasına daraltılıyor? En son kısımda bir eksiklik var gibi sanki.

    YanıtlaSil
Daha yeni Daha eski