Kodlama Arası #6: 3 Led’i 1 Potansiyometre ile Çalıştırma

Geçen yazımızda sizlerle birlikte potansiyometre ile led yakmıştık. Bu yazımızda ise sizlerle birlikte 3 ayrı led’i 1 potansiyometre ile çalıştıracağız. Potansiyometre’nin çalışma aralığı “0-1023” arasındadır. Potansiyometre’nin gösterdiği derece eğer “340” değerinden düşük olursa kırmızı led, “340-700” arasında ise yeşil led, “700” değerinden büyük ise sarı led yakacağız. Bunun için gerekli olan malzemeler:

1 adet arduino uno,

1 adet breadboard,

1 tane yeşil, 1 tane kırmızıled, 1 tane sarı led,

3 adet 330 ohmluk dirençler,

1 adet potansiyometre,

7 adet erkek-erkek jumper kablo,

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


Breadboard’ın herhangi üç yerine led’lerimizi kuralım.

Ardından led’lerin eksi bacağından breadboard’da bulunan eksi hatta 330 ohmluk dirençleri yerleştirelim.

Led’lerin artı bacağından kartta bulunan dijital pin’lerden üç tnesine bağlayalım.

Ardından breadboard’ın herhangi bir yerine potansiyometre yerleştirelim.

Potansiyometre’nin sol veya sağ bacağından kartta bulunan 5v pin’ine bağlayalım. Diğer bacağını ise breadboard’ın eksi hattına bağlayalım.

Potansiyometre’nin ortadaki ortak bacaktan ise kartta bulunan analog pin’lerden A0 pin’ine bağlayalım. En son olarak da breadboard’ın eksi hattından kartta bulunan GND pin’ine bağlayalım.

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

 

Kod kısmında ilk olarak “void setup” kısmının üst kısmında üç led’i tanıtalım. Bunun için ilk olarak “int” komutunu kullanalım. Ardından sırasıyla led’i “led1”, “led2”, “led3” olarak isim atayalım. Her birinden sonra “=” koyalım. Sonrasında sırasıyla bağladığınız pin numaralarını yazalım. Led’leri “8”, “9”, “10” numaralı pin’lere bağladım. Her birinin sonuna satırı bitirmek için “;” koyalım.

 

 

 

 

 

 

 

Yine aynı yerde potansiyometre’yi tanıtalım. “int” komutunu yazdıktan sonra “pot” yazalım ve “=” . Ardından bağlı olduğu yerleri yazalım. Potansiyometre’yi “A0” pin’ine bağladım. Satırı bitirmek için “;” yazalım.

 

 

 

 

 

 

 

 

Bu kısımda en son olarak da “potdurumu” diye bir değişken tanıyalım. Bunun için ilk olarak “int” komutunu yazalım. Satırı bitirmek için ise “;” koyalım. Böylece “void setup” kısmına geçebiliriz.

 

 

 

 

 

 

 

 

“void setup” kısmında ise led’leri teker teker birer çıkış birimi olduğunu yazalım. Bunun için ilk olarak “pinMode” komutunu yazalım ve parantez açalım. Parantez içine ise teker teker “led1”, “led2” ve “led3” yazalım. Ardından virgül koyalım ve sonrasına çıkış birimi olduğunu yazalım. Bunun için virgülden sonra “OUTPUT” yazalım. Parantezi kapatalım ve her satırı bitirmek için teker teker “;” koyalım.

 

 

 

 

 

 

 

Potansiyometre’yi giriş birimi olarak tanıtalım. Bunun için yine “pinMode” komutunu yazalım ve içine atadığımız isim olan “pot” yazalım. Virgül koyduktan sonra ise giriş birimi olduğunu belirtmek için “INPUT” yazalım. Satırı bitirmek için ise “;” koyalım.

 

 

 

 

 

 

 

 

 

Diğer satırda ise seri ekranda değer görmek için kart ile bilgisayar arasında iletişim başlatmamız lazım. Bunun için ilk olarak “Serial.begin” komutunu yazalım ve içine iletişim hızı olarak “9600” yazalım ve parantezi kapatalım. Satırı bitirmek için ise “;” koyalım.

Böylece “void setup” kısmını bitirelim. “void loop” kısmına geçelim.

 

 

 

 

 

 

 

 

“void loop” kısmında ise ilk önce potansiyometre’den okuduğu değeri “potdurumu” değişkeni içine yazdıracağız. Bunu için ilk olarak atadığımız ismi yazalım ve “=” koyalım. Ardından potansiyometre’yi okuması için “analogRead” yazalım ve parantez açalım. İçine Atadığımız isim olan “pot” yazalım ve parantezi kapatalım. Sonuna satırı bitirmek için “;” koyalım.

 

 

 

 

 

 

 

 

 

Diğer satırda ise değerleri seri ekranda değer görmek için “Serial.println” yazalım. Ardından parantez açalım ve içine “pot” yazalım. Parantezi kapatalım ve satırı bitirmek için “;” koyalım.

 

 

 

 

 

 

 

 

 

 

 

Bu satırdan sonra ilk “if” komutunu yazalım ve parantez açalım. Parantez içine “potdurumu<340” yazalım ve parantezi kapatalım. Ardından süslü parantez açalım. Süslü parantezi kapatmayı unutmayalım. Bu satırda “eğer potansiyometre “340” değerinden düşük olursa” diye bir olasılık belirttik.

 

 

 

 

 

 

 

 

 

 

 

İki süslü parantez içine yukarıdaki olay olursa olacak olan durumları yazalım. Yukarıdaki olay olursa “led1” (kırmızı led) yanacak. Diğerleri sönecektir. Bunun için ilk olarak “digitalWrite” komutunu yazalım ve parantez açalım. Parantez içine “led1” yazalım ve virgül koyalım. Ardından “HIGH” yazalım. Parantezi kapatalım ve sonuna “;” koyalım. Diğer iki led için de “HIGH” yerine “LOW” yazarak aynısını yazalım. Böylece “340” değerinden düşük olursa kırmızı led yandı.

 

 

 

 

 

 

 

 

 

 

Diğer satırda ise “else if” komutunu kullanalım. “else if” komutu, yukarıdaki olay olmazsa ve bu olay olursa anlamındadır. Burada da parantez açalım ve içine “340<potdurumu<700” yazalım. Yani “potansiyometre bu değer arasında olursa aşağıdaki olaylar olsun” diye komut verdik. Parantez kapandıktan sonra da süslü parantez açalım. Kapatmayı unutmayalım. İki süslü parantez arasına “digitalWrite” yazalım ve parantez açalım. Parantez içine “led1” yazalım ve virgül koyalım. Virgülden sonra “LOW” yazalım. Parantezi kapatalım ve “;” koyalım. “led2” için “LOW” yerine “HIGH” yazalım. “led3” için ise “led1” ile aynısını yazalım. Böylece değer 340 ile 700 arasında olursa yeşil led yanacak diğer iki led sönecektir.

 

 

 

 

 

 

 

 

 

 

Son bir “if” yazalım ve parantez açalım. Parantez içine “potdurumu>700″ yazalım. Böylece eğer potansiyometre 700 değerinden büyük olursa aşağıdaki olayları olsun” diye komut verdik. Parantez sonrasında süslü parantez açalım. Kapatmayı unutmayalım. İki süslü parantez içine, “pinMode” komutunu yazalım ve parantez açalım. Parantez içine “led1” yazalım. Virgül koyalım ve sonrasında “LOW” yazalım. Parantezi kapatalım ve sonuna “;” koyalım. “led2” için de aynısını yazalım. “led3” için “LOW” yerine “HIGH” yazalım.

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

 

 

 

 

 

 

 

 

 

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

int led1=8;
int led2=9;
int led3=10;
int pot=A0;
int potdurumu;

void setup() {
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(pot,INPUT);
Serial.begin(9600);
}

void loop() {
potdurumu=analogRead(pot);
Serial.println(pot);
if (potdurumu<340) {
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
}
else if (340<potdurumu<700){
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
}
if (potdurumu>700) {
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,HIGH);
}
}

One thought to “Kodlama Arası #6: 3 Led’i 1 Potansiyometre ile Çalıştırma”

Bir cevap yazın

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