Arduino Ders 6: RGB Led çalıştırmak

Geçen yazımızda sizlerle birlikte 3 led’i 1 potansiyometre ile çalıştırdık. Bu yazımızda ise RGB led çalıştıracağız.

RGB led’i şöyle düşünebiliriz: Ana renklere sahip 3 tane led’in birleşmesi sonucu oluşan led’dir. Böylece 3 ana renkten tüm renkleri elde edebiliriz. Kod kısmında da 3 tane led varmış gibi düşünüp kod’unu ona göre yazacağız. RGB led devresi kurmak için gerekli olan malzemeler:

1 adet arduino uno kart,

1 adet breadboard,

1 adet RGB led,


3 adet potansiyometre,

3 adet 1k direnç renk kodu kahve rengi-siyah-kırmızı,

15 adet jumper kablo erkek-erkek,

Malzemelerimizi aldığımıza göre devremizi kuralım.

Breadboard’ın herhangi bir yerine RGB led’imizi kuralım. RGB led’in içine baktığımız zaman, büyük parçanın solunda kalan bacak kırmızı led’in bacağıdır. Büyük parçanın bulunduğu bacak ortak bacaktır. Ortak bacak anot (+) veya katot(-) olabilir. Bunu deneyerek bulabilirsiniz. Eğer bacak anot ise farklı, katot ise farklı kod yazacağız. Ortak bacağın sağındaki bacak yeşil led’in bacağıdır. En sağdaki bacak ise mavi led’in bacağıdır.

 

 

 

Ortak bacak hariç her bir bacağa 1k direnç yerleştirelim. Dirençlerin uçlarını jumper kabloyla kartta bulunan 9, 10 ve 11 numaralı pin’lere yerleştirelim.

Ardından üç potansiyometre’yi breadboard’a yerleştirelim. 

Potansiyometre’lerin sağ veya sol ayaklarını breadboard’ın artı hattına takın. Diğer bacağını da breadboard’ın eksi hattına takalım.

Ortadaki ayakları da sırasıyla “A0”, “A1” ve “A2” analog girişlerine takalım.

Breadboar’ın eksi hattını kartta bulunan GND pin’ine bağlayalım. Artı hattını da kartta bulunan 5v pin’ine bağlayalım.

Son olarak RGB led’in ortak bacağını breadboard’ın eksi hattına bağlayalım. Benim RGB led’imin ortak bacağı katot (-) olduğu için eksi hattına bağladım. Eğer sizin led’iniz her şeyi doğru yapmanıza rağmen çalışmazsa ortak bacağı artı hattına bağlayın.

Böylece devremiz bitti. Hadi kod kısmına geçelim.

 

Kod kısmında ilk olarak “void setup” kısmının üstüne her potansiyometre’yi “pot1”, “pot2” ve “pot3” diye adlandıralım. “int” komutunu yazalım. Ardından “pot1”  yazalım ve “=” koyalım. Bağlı olduğu pin’i yazalım. “A0” yazdıktan sonra satırı bitirmek için “;” yazalım. Bu işlemleri “pot2” ve “pot3” içinde aynısını yazalım. Ancak doğru pin’leri yazmayı unutmayalım.

 

 

 

 

 

 

 

Ardından led’leri “led1”, “led2” ve “led3” diye isim atayalım. Bunun için olan komut “int” komutunu yazalım. Ardından “led1” yazalım ve “=” koyalım. Ardından bağlı olduğu pin’i yani “9” yazalım. Satırı bitirmek için “;” koyalım. “led2” ve “led3” için de aynısını yazalım. Ancak doğru pin’leri yazmayı unutmayalım.

 

 

 

 

 

 

 

Burada en son olarak “potdurumu1”, “potdurumu2” ve “potdurumu3” diye değişkenler atayalım. Bunun için ilk olarak “int” komutunu yazalım. Ardından “potdurumu1” yazalım ve satırı bitirmek için “;” koyalım. “potdurumu2” ve “potdurumu3” için de aynısını yapalım. Böylece “void setup” kısmına geçebiliriz.

 

 

 

 

 

 

 

“void setup”  kısmında ise potansiyometre’yi bir giriş birimi olarak göstereceğiz. Bunun için ilk olarak “pinMode” yazalım. Parantez açalım ve içine atadığımız isim olan “pot1” yazalım. Virgül koyalım ve sonrasında “INPUT” yazalım. Parantezi kapatalım ve sonuna “;” koyalım. “pot2” ve “pot3” için de aynısını yazalım.

 

 

 

 

 

 

 

 

 

 

 

Ardından led’leri birer çıkış birimi olarak tanıtalım. Bunun için “pinMode” komutunu kullanalım ve parantez açalım. Parantez içine “led1” yazalım ve virgül koyalım. Virgül sonrasına “OUTPUT” yazalım. Parantezi kapatalım ve satırı bitirmek için “;” koyalım. Böylece “void loop” kısmına geçebiliriz.

 

 

 

 

 

 

 

 

 

 

 

 

“void loop” kısmında ise ilk olarak potansiyometre’yi okutalım ve değişkenin içine atayalım. Bunun için ise ilk olarak değişkeni yazalım. “potdurumu1” yazdıktan sonra “=” koyalım. Ardından okutma komutu olan “analogRead” yazalım ve parantez açalım. Parantez içine “pot1” yazalım. Parantezi kapatalım ve satırı bitirmek için “;” koyalım. “potdurumu2” ve “potdurumu3” için de aynısını yapalım.

 

 

 

 

 

 

 

 

 

 

 

 

Ardından potansiyometre ile led’in hızını eşitlememiz gerekiyor. Bunun için ilk olarak “potdurumu1” yazalım. Ardından “=” koyalım ve “map” yazalım ve parantez açalım. Parantez içine ilk olarak “potdurumu1” yazalım ve virgül koyalım. Virgülden sonra led’in en küçük değeri olan “o” yazalım ve virgül koyalım. Virgülden sonra led’in en yüksek değerini yani “255” yazalım. Ardından tekrar virgül koyalım ve potansiyometre’nin en küçük değerini yani “0” koyalım. Ardından potansiyometre’nin en büyük değeri yani “1023” yazalım. Parantezi kapatalım ve satırı bitirmek için “;” koyalım. Bunu “potdurumu2” ve “potdurumu3” için de yapalım.

 

 

 

 

 

 

 

 

 

 

 

Diğer satırda ise led’leri yakacağız. Bunu için “analogWrite” yazacağız. Ardından parantez açalım ve atadığımız isim olan “led1” yazalım. Ardından virgül koyalım ve “potdurumu1” yazalım. Parantezi kapatalım ve “;” koyalım. Diğer led’ler için de aynısını yazalım.

Böylece kod kısmı da bitti. Doğru kart ve port’u seçtikten sonra karta programı yükleyelim.

 

 

 

 

 

 

 

 

 

 

NOT: Uğraşmak istemeyen arkadaşlar için hazır kod aşağıdadır. Lütfen yorum yapmayı unutmayın.

int pot1=A0;
int pot2=A1;
int pot3=A2;
int led1=9;
int led2=10;
int led3=11;
int potdurumu1;
int potdurumu2;
int potdurumu3;

void setup() {
pinMode(pot1,INPUT);
pinMode(pot2,INPUT);
pinMode(pot3,INPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
}

void loop() {
potdurumu1=analogRead(pot1);
potdurumu2=analogRead(pot2);
potdurumu3=analogRead(pot3);
potdurumu1=map(potdurumu1,0,255,0,1023);
potdurumu2=map(potdurumu2,0,255,0,1023);
potdurumu3=map(potdurumu3,0,255,0,1023);

}

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir