Ocak 2018 Arduino Başlangıç (11) 0 Okunma Sayısı: 1508
Merhaba arkadaşlar. Bu dersimizde Buton kontrollü RGB led uygulması yapacağız.RGB uygulamasi için gerekli RGB ledı ve diğer malzemeleri aşağıdaki linklerden temin edebilirsiniz.
Gerekli malzemeler:
Daha önceki derslerimizde beraber RGB LED uygulaması yapmıştık. Yine aynı şekilde dijital giriş dersimizde push butonlar ile LED yakıp söndürmeyi öğrenmiştik. Bu uygulamayı geçmişte yaptığımız iki uygulamanın birleşimi olarak düşünebiliriz. 3 adet butonumuz RBG LED’in kırmızı, yeşil ve mavi renklerinin parlaklıklarını kontrol edecek. Bu şekilde RGB leddeki farklı renkleri her seferinde kodu değiştirmeden elde edebileceğiz.

Kodumuz:
int kirmiziLEDPin = 11;
int yesilLEDPin = 10;
int maviLEDPin = 9;
int kirmiziSwitchPin = 7;
int yesilSwitchPin = 6;
int maviSwitchPin = 5;
int kirmizi = 0;
int mavi = 0;
int yesil = 0;
void setup()
{
pinMode(kirmiziLEDPin, OUTPUT);
pinMode(yesilLEDPin, OUTPUT);
pinMode(maviLEDPin, OUTPUT);
pinMode(kirmiziSwitchPin, INPUT_PULLUP);
pinMode(yesilSwitchPin, INPUT_PULLUP);
pinMode(maviSwitchPin, INPUT_PULLUP);
}
void loop()
{
if (digitalRead(kirmiziSwitchPin) == LOW)
{
kirmizi ++;
if (kirmizi > 255) {
kirmizi = 0;
}
}
if (digitalRead(yesilSwitchPin) == LOW)
{
yesil ++;
if (yesil > 255) {
yesil = 0;
}
}
if (digitalRead(maviSwitchPin) == LOW)
{
mavi ++;
if (mavi > 255) {
mavi = 0;
}
}
renkAyarla(kirmizi, yesil, mavi);
delay(10);
}
void renkAyarla(int kirmizi, int yesil, int mavi)
{
kirmizi = 255 - kirmizi; //ortak katot kullanılıyorsa silin
yesil = 255 - yesil; //ortak katot kullanılıyorsa silin
mavi = 255 - mavi; //ortak katot kullanılıyorsa silin
analogWrite(kirmiziLEDPin, kirmizi);
analogWrite(yesilLEDPin, yesil);
analogWrite(maviLEDPin, mavi);
}
RGB LED kodumuzu hatırlayacak olursak, orada bulunan renkAyarla fonksiyonunu bu uygulamamızda tekrar kullandığımızı görebilirsiniz. Yaptığımız uygulamada, her bir renk için parlaklığı arttıran bir push buton mevcut. Bu butonlara basıldığı sürece o rengin parlaklık değeri artıyor, 255’e ulaştığında ise tekrardan 0’lanıyor.
Sizin kullandığınız LED, ortak katot yapıya sahipse, ilk RBG uygulamamızdaki değişikliklerin aynısını burada uygulayabilirsiniz.
İpucu: Her rengin o anki parlaklık değerini görmek isterseniz, seri port ekranına yazdırabilirsiniz. setup fonksiyonuna Serial.begin(9600) satırını ekl… hadi biraz da siz düşünün. Seri port haberleşme dersimizden kopya çekebilirsiniz