DERS-4: Arduino RGB Led Kullanımı
Arduino RGB Led Kullanımı
RGB Led diğer çeşitli rekli ledlerden farklı olarak bir parça led içerisinde üç farklı renk bir arada bulunmaktadır. Bu renkler kırmızı, yeşil ve mavidir. Bu üç renk bacağına çeşitli değer aralığında (0 ile 255 aralığında) değerler göndererek renk karışımı elde ederiz.
Örnek olarak kırmızı renk için (255,0,0) değerlerini vermemiz gerekir. Yeşil için (0,255,0), mavi içinse (0,0,255) değerlerini RGB Led bacağına vermemiz gerekecektir.
İki çeşit RGB led var. Ortak Katot ve Ortak Anot. Bizim bu derste kullanacağımız RGB Led Ortak Anot (+) LGB Led dir. Bu yüzden RGB Ledimizin bir bacağını +5V takacağız.
Bu arada arduino uno tüm pinlerini kullanamayız bu proje için PWM çıkış pinlerini kullanmamız gerekir. Bu pinler arduino uno kart için 3, 5, 6, 9, 10 ve 11 numaralı pinlerdir.
Yukarıda arduino uno karttaki PWM çıkışlı pinler görülmektedir. RGB ledimizin kırmızı, yeşil ve mavi uçlarını 9,10,11 numaralı pinleri kullanarak devreyi tasarlıyacağız. Aşağıda bu devrenin tasarlanmış halini görebilirsiniz.
Öncelikle yukarıdaki devrede ortak anotlu RGB Led kullanılmıştır. Bu yüzden soldan 2. bacak +5V girişine takılmıştır. Eğer ortak katotlu RGB Led kullanacaksanız 2. bacağı GND pinine takmalısınız.
Soldan birinci bacak kırmızı bacak 330 ohm direnç ile birlikte 9 numaralı pine takılmıştır. 3.bacak yeşil uç ise 10 numaralı pine takıldı. Son olarak son bacak mavi bacak ise kartın 11 numaralı girişine takılmıştır.
Şimdi ise kodlara bir göz atalım:
int kpin=9;
int ypin=10;
int mpin=11;
void setup() {
pinMode(kpin,OUTPUT);
pinMode(ypin,OUTPUT);
pinMode(mpin,OUTPUT);
}
void loop() {
renk(255,0,0);
delay(1500);
renk(0,255,0);
delay(1500);
renk(0,0,255);
delay(1500);
renk(80,0,80);
delay(1500);
renk(0,255,255);
delay(1500);
}
void renk(int kirmizi,int yesil,int mavi)
{
analogWrite (kpin,kirmizi);
analogWrite (ypin,yesil);
analogWrite (mpin, mavi);
}
Öncelikle kpin, ypin ve mpin isimli 3 değişken oluşturduk ve bu değişkenleri void setup içerisinde pin çıkışı olarak ayarlarken kullandık.
Programın loop döngüsü içerisinde renk isimli bir fonksiyonu 3 parametre ile bilgilerimizi yolluyoruz. Bu bilgiler (R,G,B) değerleridir. renk(255,0,0) komut satırı parantez içerisindeki üç değerle birlikte renk fonksiyonunu çağırır. Şimdi isterseniz renk fonksiyonunu inceleyelim. Çünkü RGB Led yakma işlemi fonksiyon içerisinde gerçekleşmektedir.
#RENK FONKSİYONU...
void renk(int kirmizi,int yesil,int mavi)
{
analogWrite (kpin,kirmizi);
analogWrite (ypin,yesil);
analogWrite (mpin, mavi);
}
Fonksiyonlarla ilgili detaaylı ders anlatımını aşağıdaki linkte bulabilirsiniz.
https://www.btogrenme.com/python-fonksiyonlar/
Burada renk fonksiyonu 3 parametresi ile oluşturulmuştur. void loop içerisinde renk(255,0,0) komutu ile çağırdığımızda kirmizi,yeşil ve mavi parametreleri sırayla üzerilerine 255,0,0 değerlerini alacaktır. Sonra analogWrite(kpin,kirmizi) komutu ile RGB ledimizin kırmızı bacağı aktif hale getirilir. kpin değeri programın başında oluşturduğumuz değerdir. Kırmızı için kpin değeri 9 dur. çünkü kırmızı bacak arduino uno kartta 9 nolu pine takılıdır. Alttaki diğer 2 kod satırı ise yeşil ve mavi bacaklar için yazılmıştır.
Tekrar void loop içerisine dönecek olursak fonksiyon çağırma ve delay ile bekleme işlemi gerçekleştirilmiştir. Tam olarak 1 defa döngü de 5 defa renk fonksiyonu çağrılmıştır. İçerisindeki parametreler RGB renk kodlarıdır. Her renk kodu 0 ile 255 arası değer alır ve alınan değerlere göre renkler ortaya çıkar. Örneğin:
(255,255,0) Sarı renk
(0,255,255) Açık mavi
(80,0,80) Mor
Void Loop içerisindeki kodlar bittiğinde tekrar başa döner (Loop) ve sonsuz bir döngü içerisinde kodlar tekrarlanır.