Merhaba arkadaşlar. Arduino serimizin bu yazısında sizlerle RGB LED renk değiştirme uygulaması yapacağız. Potansiyometre ile RGB LED kontrolünün nasıl yapıldığını inceleyeceğiz.

Daha önceki yazımızda LDR Devresinden bahsetmiştik >> Karanlıkta LED Yakan LDR Devresi yapalım !

Arduino ve Potansiyometre Kullanarak RGB LED Rengini Değiştirelim

RGB LED’lerin yapısında üç ayrı renk LED bulunur. Bunlar kırmızı (Red), yeşil (Green) ve mavidir (Blue). RGB LED ismi de bu renklerin baş harflerinden türemiştir. Normal LED’lerde bir anot ve bir katot pin vardır fakat RGB LED’lerde bir adet ortak anot veya ortak katot pini, bunun yanında da 3 rengi temsil eden pinler yer almaktadır.

RGB LED ile ilgili daha detaylı bilgiye yazımızdan ulaşabilirsiniz >> RGB LED Nedir?

Biz bu uygulamızda 3 adet potansiyometre kullanarak RGB LED’in renk değişimini kontrol edeceğiz.

Gerekli malzemeler: ( Not: Arduino RGB LED Uygulaması ve 10. Derse Kadar Olan Dersleri “Arduino Başlangıç Seti” İle Yapabilirsiniz. Malzemeler Bu Sette ! >)

Arduino RGB LED devremiz için devremizi aşağıdaki gibi kuralım:

RGB LED Devresi

Arduino RGB LED Kodu

RGB LED Code (RGB LED Kodu) için aşağıdaki gibi algoritma yazdık. Arduino kodumuzdaki her satırın ne anlama geldiğini hem kanalımızda hem de blogumuzda detaylı olarak açıkladık. Hadi kodumuzu yazalım !

#define red 11 //LED'imizin kırmızıyı temsil eden pini Arduino'nun 11.pinine tanımlanır
#define green 10 //Yeşili temsil eden pin 10
#define blue 9 //Maviyi temsil eden pin 9

#define pot_r A0 //Kırmızı ledi temsil eden pot tanımlanır
#define pot_g A1 //Yeşil ledi temsil eden pot tanımlanır
#define pot_b A2 //Mavi ledi temsil eden pot tanımlanır

int red_value; //Kırmızı led değeri için bir değişken tanımlanır
int green_value; //Yeşil led değeri için bir değişken tanımlanır
int blue_value; //Mavi led değeri için bir değişken tanımlanır


void deger_oku(){ //Potlardan gelen değerlerin okunması için bir döngü tanımlanır

  red_value = analogRead(pot_r); //Kırmızı ledi kontrol eden potun değeri okunur
  green_value = analogRead(pot_g); //Yeşil ledi kontrol eden potun değeri okunur
  blue_value = analogRead(pot_b); //Mavi ledi kontrol eden potun değeri okunur

  red_value = map(red_value, 0,1023, 0,255);
  green_value = map(green_value, 0,1023, 0,255);
  blue_value = map(blue_value, 0,1023, 0,255);
  ////0-1023 arası okunan değerler map komutu ile 0-255 arası değerlere dönüştürülür
}

void deger_yaz(){ //Potlardan okunan değerler RGB LED'e aktarılır

  analogWrite(red,red_value); //Kırmızı pottan gelen renk değeri RGB LED'e aktarılır
  analogWrite(green,green_value); //Yeşil pottan gelen renk değeri RGB LED'e aktarılır
  analogWrite(blue,blue_value); //Mavi pottan gelen renk değeri RGB LED'e aktarılır
}

void setup() {
  pinMode(red,OUTPUT);
  pinMode(green,OUTPUT);
  pinMode(blue,OUTPUT);
//RGB LED'in Kırmızı, Yeşil ve Mavi renkleri çıkış pini olarak tanımlanır

}

void loop() { //Ana döngüde değer okuma ve değer yazma işlemleri uygulanır
  
    deger_oku();
    deger_yaz();
}

CEVAP VER

Please enter your comment!
Please enter your name here