Kodlama Arası #7: Buton İle RGB Led yakmak

Geçen yazımızda sizlerle birlikte 3 potansiyometre ile RGB led yakmıştık. Bu yazımızda ise sizlerle birlikte buton ile RGB led çalıştıracağız. Bunun için gerekli olan malzemeler:

1 adet arduino uno kart,

 

1 adet breadboard,

1 adet RGB led,

3 adet buton,

3 adet 10k direnç,

3 adet 1k direnç

11 adet jumper kablo erkek-erkek,



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

Devremizi kurarken ilk olarak breadboard’ın herhangi bir yerine RGB led koyalım. RGB led’in iç tarafında görülen büyük parçanın solunda kalan ayağa 330 ohmluk direnç koyalım. Ardından dirençten “9” numaralı pin’e jumper kablo koyalım. Ortak ayağın sağındaki ayağa da 330 ohmluk direnç koyalım. Dirençten “10” numaralı pin’e jumper kablo koyalım. En sağda bulunan ayağa da 330 ohmluk direnç koyalım. Dirençten ise “11” numaralı pin’e jumper kablo bağlayalım.

Ortak bacaktan (büyük parçanın bağlı olduğu ayak) Breadboard’ın eksi hattına jumper kablo koyalım.

NOT: Eğer sizin RGB led’imizin ortak bacağı anot (artı) ise kod kısmında RGB led’i yakarken “HIGH” yazmamız gereken yerde “LOW” yazarak RGB led’i çalıştıracağız. Anot veya katot  olduğunu anlamamız için denememiz gereklidir.

RGB led’i bağladıktan sonra 3 butonu breadboard’ın iki tarafına da bağlı olacak şekilde koyalım.

Ardından da butonun bir bacağından direnç yardımıyla breadboard’ın eksi hattına bağlayalım. Direnci bağladığımız bacağın karşısından jumper kablo yardımıyla breadboard’ın artı hattına bağlayalım.

Butonun diğer bacağından kartta bulunan “6”, “7” ve “8” numaralı girişlere bağlayalım.

Son olarak da Breadboard’ın artı hattını kartta bulunan 5v hattına bağlayalım. Breadboard’ın eksi hattından ise kartta bulunan GND pin’ine bağlayalım. Böylece devremizi kurduk. Hadi kod kısmına geçelim.

 

Kod kısmında ise ilk olarak “void setup” kısmının üstüne butonları tanıtalım. Kod kısmında önce “int” yazalım. Ardından “buton1” yazalım. “=” koyalım ve bağlı olduğu pin’i yani “6” yazalım. Satırı bitirmek için ise “;” koyalım. Diğer iki buton için ise “buton2” ve “buton3” diye isim atayalım. Ancak doğru pin’i yazmayı unutmayalım.

 

 

 

 

 

Butonlardan sonra RGB led’i 3 farklı led olarak tanıtalım. Bunun için “int” yazalım ve atadığımız isim olan “led1″ yazalım.”=” koyalım ve bağlı olduğu pin’i yani “9” yazalım. Satırı bitirmek için ise “;” koyalım. Diğer iki led için de “led2” ve “led3” diye isim atayarak aynısını yazalım. Ancak doğru pin’i yazmayı unutmayalım.

 

 

 

 

 

 

 

Burada en son olarak “butondurum1”, “butondurumu2” ve “butondurumu3” diye değişken atayalım. Bunun için ilk olarak “int” komutunu yazalım. ardından atadığımız isim olan “butondurumu1” yazalım ve satırı bitirmek için ise “;” koyalım. “butondurumu2” ve “butondurumu3” için de aynısını yazalım. Böylece “void setup” kısmına geçebiliriz.

 

 

 

 

 

 

 

 

 

“void setup” kısmında ilk olarak butonları bir giriş birimi olarak tanıtalım. Bunun için “pinMode” komutunu yazalım. Yazdıktan sonra parantez açalım ve içine atadığımız isim olan “buton1” yazalım ve virgül koyalım.Giriş birimi olduğunu belirtmek için “INPUT” yazalım ve parantezi kapatalım. Ardından satırı bitirmek için “;” koyalım. “buton2” ve “buton3” içinde aynısını yazalım.

 

 

 

 

 

 

 

 

Ardından ise led’leri bir çıkış birimi olarak tanıtalım. Bunun için yine “pinMode” komutunu kullanalım. Ardından parantez açalım ve içine atadığımız isim olan “led1” yazalım ve virgül koyalım. Virgülden sonra ise çıkış birimi olduğunu belirtmek için “OUTPUT” yazalım ve parantezi kapatalım. Satırı bitirmek için ise “;” koyalım. “led2” ve “led3” için de aynısını yazalım. Böylece “void setup” kısmını da bitirdik. Hadi “void loop” kısmına geçebiliriz.

 

 

 

 

 

 

 

 

 

“void loop” kısmında ilk olarak “butondurumu1” değişkeni içine “buton1” okutalım ve yazdıralım. Bunun için ise değişkenin içine yazalım ve “=” koyalım. Ardından okutma komutu olan “digitalRead” yazalım ve parantez açalım. Parantez içine “buton1″ yazalım ve parantezi kapatalım ve satırı bitirmek için ise”;” koyalım. “butondurumu2” ve “butondurumu3” için de aynısını yazalım.

 

 

 

 

 

 

 

 

 

 

 

 

Değişkenleri yazdırdıktan sonra ilk “if” komutunu yazalım ve parantez açalım. Parantez içine olası olayı yazalım. Olası olay ise “butondurumu1 eğer 1 olursa” olasılığıdır. Bunun için parantez içine “butondurumu1==1” olasılığını yazalım. Ardından süslü parantez açalım ve kapatalım. İki süslü parantez içine led1 led’inin yanmasını ve diğer led’lerin sönmesini yazalım. Bunun için olan komut ise “digitalWrite” komutudur. Komutu yazdıktan sonra parantez açalım ve parantez içine “led1” yazalım. Virgül koyalım ve yakma komutu olan “HIGH” yazalım. Parantezi kapatalım ve satırı bitirmek için ise “;” koyalım. Diğer satırda ise yine “digitalWrite” yazalım ve parantez açalım. Parantez içine atadığımız isim olan” led2″ yazalım ve virgül koyalım. Virgülden sonra söndürme komutu olan “lOW” yazalım ve parantezi kapatalım. Satırı bitirmek için “;” koyalım. “led3” için ise “led2” ile aynısını yazalım.

 

 

 

 

 

 

 

 

Diğer satırda ise yine “if” komutunu yazalım. Ardından yine bir parantez açalım ve içine “butondurumu2==1” yazalım ve parantezi kapatalım. Parantez sonrasında süslü parantez açalım ve süslü parantezi kapatmayı unutmayalım. İki süslü parantez arasına yakma komutu olan “digitalWrite” komutunu yazalım ve parantez açalım. Parantez içine atadığımız isim “led1” yazalım ve virgül koyalım. Virgülden sonra söndürme komutu olan “LOW” yazalım ve parantezi kapatalım. Satırı bitirmek için ise “;” koyalım.”led3″ için de “led1” ile aynı kodu yazalım. “led2” i için ise “digitalWrite” yazalım ve parantez açalım. Parantez arasına “led2” yazalım ve virgül koyalım. Virgülden sonra yakma komutu olan “HIGH” yazalım. Parantezi kapatalım ve satırı bitirmek için “;” koyalım.

 

 

 

 

 

 

 

 

 

 

Son “if” komutunu kullanalım ve parantez açalım. Parantez içine ise son ihtimalimizi yazıyoruz.  Bu ihtimalimiz “butondurumu3==1” ihtimalidir. Bu ihtimali yazdıktan sonra parantezi kapatalım. Süslü parantez açalım ve kapatalım. İki süslü parantez arasına “led1” ve “led2” için “digitalWrite” yazalım. Parantez açalım ve içine “led1” veya “led2” yazalım ve virgül koyalım. Virgülden sonra söndürme komutu olan “LOW” yazalım ve parantezi kapatalım. Satırı bitirmek için ise”;” koyalım. “led3” için ise yine “digitalWrite” yazalım ve parantez açalım. Parantez içine “led3” yazalım ve virgül koyalım. Virgülden sonra “HIGH” yazalım ve parantezi kapatalım. Satırı bitirmek için ise “;” koyalım.

 

 

 

 

 

 

 

 

 

 

En son olarak da “eğer hiçbir butona basılmazsa” ihtimalidir. Bunun için “else” yazalım ve süslü parantez açalım. Süslü parantezi kapatalım ve iki süslü parantez arasına “led1”, “led2” ve “led3” için önce “digitalWrite” yazalım ve parantez açalım. Parantez içine sırasıyla atadığımız isimleri yazalım. Atadığımız isimlerden sonra virgül koyalım ve söndürme komutu olan “LOW” yazalım. Parantezi kapatalım ve satırı bitirmek için “;” koyalım. Bunu her led için yazalım.

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

 

 

 

 

 

 

 

 

 

NOT 1: Eğer sizin RGB led’inizin ortak bacağı katot (-) ise “LOW” yazdığımız yerlere “HIGH”, “HIGH” yazan yerlere “LOW” yazalım. 

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

int buton1=6;
int buton2=7;
int buton3=8;
int led1=9;
int led2=10;
int led3=11;
int butondurumu1;
int butondurumu2;
int butondurumu3;</pre>
void setup() {
pinMode(buton1,INPUT):
pinMode(buton2,INPUT);
pinMode(buton3,INPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
}

void loop() {
butondurumu1=digitalRead(buton1);
butondurumu2=digitalRead(buton2);
butondurumu3=digitalRead(buton3);
if (butondurumu1==1) {
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
}
if (butondurumu2==1) {
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
}
if (butondurumu3==1) {
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,HIGH);
}
else {
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
}
}

 

Bir cevap yazın

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