Arduino RGB Led Kullanımı

Malzemeler

1 adet Arduino (örnekte uno kullandım)

1 adet RGB led (örnekte katot kullandım, anot kullanırken GND yerine 5v yada 3V3 e bağlayın)

3 adet direnç(Ben 270 ohm kullandım, 1k ya kadar yolu var, eğer direnç değeri az olursa RGB Led                           bozulabilir)(eğer 5V yerine 3V3 e bağlıyacaksanız gerek yok)
1 adet Breadboard (kullanmadan da yapabilirsiniz ama zor olur )

Jumper yada kablo

Devre Şeması

Ortak anot RGB de uzun bacak güç girişi olacak ve direnç sadece burada kullanılacak(şemada 1K), ortak katot için ise uzun bacak GND ye gidecek ve 3 adet direnç (270 lik kullandım) renk bacaklaına bağlanacak.

Arduino RGB Led KullanımıOrtak Katot Arduino Devresi

Arduino RGB Led KullanımıOrtak Anot RGB Arduino devresi

Programlama

Devremizi kurduk sıra geldi kodlamaya. Kod yazmaya başlamadan önce RGB ledimizin Anot veya Katot olmasının burada da fark yaratacığını belirtmek isterim. Aşağıda ki kod Anot için olacak ancak siz katot kullanacaksanız ters düşünmeniz gerekecek yani Anot ta HIGH kapatmak için, LOW açmak için kullanılacak, tabi PWM ile işlem yaparken 0 en yüksek değer 255 ise en düşük değer olacak. Aşağıdaki örnek için katot kullanıcıları PWM değeri X(mesela 100) iken 255-X(255-100) yazarsanız da aynı sonucu alırsınız. Anot ile katot ayırt etme işini ürün alırken öğrenmeniz iyi olacak.

int yesil = 9; //yesil bacağın 9. pinde olacağını belirtiyoruz
int mavi = 10; //mavi 10 da
int kirmizi = 11; // kırmızı 11 de
int bekleme = 5; //renk geçişleri arası beklenecek süreyi yazıyoruz
void setup() {
//pinleri çıkış olarak ayarlıyoruz
pinMode(yesil, OUTPUT);
pinMode(mavi, OUTPUT);
pinMode(kirmizi, OUTPUT);

}
void loop() {
// her bir bacak için ilk değer oluşturuyoruz

int kirmizi_degeri = 255;
int mavi_degeri = 0;
int yesil_degeri = 0;

//bir for göngüsü oluşturuyoruz ve i değerini 255 e kadar birer birer artmasında for içindeki görevler yapılacak
for( int i = 0 ; i < 255 ; i += 1 ){
yesil_degeri += 2; // yeşil değeri iki iki artacak
mavi_degeri += 1;  //mavi bir bir azalacak
kirmizi_degeri -= 1; // kırmızı bir bir azalacak

//daha sonra değerler bacaklara yazılıyor
analogWrite( yesil, yesil_degeri );
analogWrite( kirmizi, kirmizi_degeri );
analogWrite( mavi, mavi_degeri);

// eğer ortak katot ise
//analogWrite( yesil, 255 - yesil_degeri); gibi yazılacak

//bekleme süresi kadar bekleniyor
delay( bekleme );
}
}

int redPin = 11;
int greenPin = 10;
int bluePin = 9;
int brightness = 0; // ilk parlaklık değeri sıfır yaptık
int fadeAmount = 5; // parlaklık adımları değeri. her seferinde 5 birim artar azalır demek.
//ilk kurulum değerleri. Resetten sonra bir kez yapılır.

//Ortak anot led kullanıyorsanız alttaki satırı yorum satırından çıkartın
//#define COMMON_ANODE

void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}

void loop()
{
setColor(255, 0, 0); // red
delay(1000);
setColor(0, 255, 0); // green
delay(1000);
setColor(0, 0, 255); // blue
delay(1000);
setColor(255, 255, 0); // yellow
delay(1000);
setColor(80, 0, 80); // purple
delay(1000);
setColor(0, 255, 255); // aqua
delay(1000);
setColor(80, 80, 80); // farklı renkler
delay(1000);
setColor(255, 255, 255); // beyaz
delay(1000);
setColor(255, 0, 255); // güçlü mor
delay(1000);

}

void setColor(int red, int green, int blue)
{
#ifdef COMMON_ANODE
red = 255 – red;
green = 255 – green;
blue = 255 – blue;
#endif
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}

Yorum bırakın

Scroll to Top