Vous êtes sur la page 1sur 6

LED yakıp söndürme …

Yeni bir programlama dili öğrendiğimizde ilk başta nasıl "Merhaba Dünya" yazıyorsak, Arduino
programlamanın da giriş uygulaması LED (lamba) yakıp söndürmektir. Daha önce LED'in ne
olduğundan bahsetmiştik. Şimdi de LED'in nasıl kullanıldığından bahsedelim. LED bilindiği gibi bir
çeşit diyottur, akım sadece bir yönde akmaktadır. Bu yüzden LED'in devreye bağlanma yönü
önemlidir.

LED'in yönünü iki şekilde anlayabiliriz. İlk yöntemimiz LED'in ayak uzunluklarıdır. LED'in iki
ayağından uzun olanı + (anot), kısa olan – (katot) ucunu göstermektedir. Böylece Arduino'dan
gelen kabloyu LED'in uzun ayağına, kısa ayağını da toprağa (GND) bağlayacağız. Bu yöntem ile
anot ve katot uçlarını ayırmak kolay olsa da güvenilir değildir. Eğer LED daha önce kullanılmış ise
ayak uzunlukları değiştirilmiş olabilir.

Diğer ve daha güvenilir olan ikinci yöntemle LED'in anot ve katot uçlarını daha kolay anlayabiliriz.
LED'in içine bakıldığında, arası açık bir köprü görülür. Bu köprünün kısa yolu + (anot), uzun yolu
ise – (katot) ucu göstermektedir.

LED'in bağlantısının nasıl yapılacağını öğrendik. Fakat LED'i devreye doğrudan bağlama pek
önerilen bir yöntem değildir. LED'in bağlı olduğu hatta akımı azaltmak için direnç bağlanmalıdır.
Genellikle 220 veya 330 ohm değerinde direnç bağlanır. Bu değerlerden daha büyük bir direnç
hatta bağlanırsa, LED'in parlaklığı azalır.

Bu uygulamayı yapmak için ihtiyacınız olan malzemeler:

 1 x Arduino
 1 x LED (rengi farketmez)
 1 x 220 ohm direnç (220 ile 10k arasında bir direnç de olur)
 1 x Breadboard

Resimde görüldüğü gibi devrenizi kurunuz. Arduino'nun 7 numaralı pininden bir kablo yardımıyla
çıkış alıp Breadboard üzerindeki dirence bağlayınız. Daha sonra direncin diğer ucunu LED'in +
ucuna bağlayın. LED'in diğer ucunu ise Arduino'nun toprağına bağlayın. Aynı hat üzerindeki akım
her yerde aynı olduğu için direncin LED'den önce veya sonra bağlanması önemli değildir.
Arduino kodunu yazmaya başlayalım. Amacımız 1 saniye boyunca yanan ve sonra 1 saniye
boyunca sönük kalan LED yapmaktır. Bunun için setup fonksiyonu içerisinde LED'in bağlı olduğu
Arduino'nun 7. pinini çıkış olarak ayarlayacağız. Daha sonra loop fonksiyonu içerisine 1 saniye
aralıklı LED yakma ve söndürme kodunu yazacağız. Loop fonksiyonu sürekli döngü halinde
olduğu için bir kere LED yakma ve söndürme kodunu yazmamız yeterli olacaktır. 1 saniyelik
bekleme için delay fonksiyonu kullanılmıştır.

void setup()
{
pinMode(7, OUTPUT); /* 7 numaralı pini çıkış yaptık */
}

void loop()
{
digitalWrite(7,HIGH); /* 7 numaralı pine enerji verildi */
delay(1000); /* 1000 milisaniye = 1 saniye bekleme */
digitalWrite(7,LOW); /* 7 numaralı pindeki enerji kesildi */
delay(1000); /* 1 saniye bekleme */
}

KARA ŞİMŞEK UYGULAMASI

 1 x Arduino
 8 x LED
 8 x 220 Ohm Direnç
 1 x Breadboard

LED'leri 2'den 9'a pinlere sırası ile takalım. Bu pinleri bir diziye kaydederek LED'leri daha kolay
kontrol edeceğiz. Dizi kullanılmasının nedeni, program içerisinde for döngüsünün kullanılacak
olmasıdır. Her bir for döngüsünde bir sonraki LED'e kolayca geçiş yapılabilir.

Not: LED geçişlerinin daha yumuşak olması için her LED'in artı ve eksi pinlerine kondansatör
konulabilir.

const int LEDdizisi[] = {2,3,4,5,6,7,8,9};

void setup () {

for(int i=0; i<8 ;i++)


{ /* For dongusuyle LEDdizisi elemanlarina ulasiyoruz */
pinMode(LEDdizisi[i], OUTPUT); /* LED pinleri cikis olarak ayarlandi
*/
}

void loop() {
for(int i=0; i<8; i++){ /* Tum LEDleri sirayla 50 milisaniye yakip
sonduruyoruz */
digitalWrite(LEDdizisi[i],HIGH);
delay(50);
digitalWrite(LEDdizisi[i],LOW);
}

for(int j=7;j>-1; j--)


{ /* LEDleri geri yonde 50 milisaniye yakip sonduruyoruz */
digitalWrite(LEDdizisi[j],HIGH);
delay(50);
digitalWrite(LEDdizisi[j], LOW);
}
}

DÜĞME KULLANIMI

Kullanıcıyla etkileşim halinde olan birçok projede düğme kullanılmaktadır. Düğme, arasında az bir
boşluk bulunan iki tel gibi düşünülebilir. Kullanıcı düğmeye bastığında bu boşluk kapanır ve
düğme iletken duruma geçer, üzerinden akım akar. Kullanıcı düğmedan elini çektiğinde devrenin
eski konumuna dönmesi için, pull up ve pull down denilen direnç bağlantıları kullanılır. Pull up ve
pull down direnç ismi değil, dirençlerin bağlanma şeklidir. Genellikle 10K ohm direnç kullanılır.
Pull Down Direnç: Düğmeye basıldığında gerilim kaynağıyla Arduino'nun girişi kısa devre olur.
Elinizi düğmeden çektiğinizde hat üzerinde hâlâ enerji kalır. Bu enerji düğmeye basılmadığı
durumunda bile Arduino'nun düğmeye basılmış gibi davranmasına neden olur. Bu enerjinin yok
edilmesi için hat genellikle 10K ohm'luk bir direnç ile toprağa bağlanır. Bu dirence pull down
direnç denir.

Pull Up Direnç: Düğmeye basılmadığı durumlarda Arduino'nun giriş pini 5 volt düzeyindedir.
Düğmeye basıldığında akım, Arduino'nun giriş pini yerine doğrudan toprağa ulaşmaktadır.
Böylece pull-down direnç sistemini tam tersi çalışmaktadır. Arduino düğmeye basıldığında 0,
düğmeye basılmadığında 1 değerini görmektedir. Pull-up direnci kullanma amacımız ise,
düğmeye basıldığında toprak ve besleme hattının direkt olarak kısa devre olmasını engellemektir.
Pull-down dirençte olduğu gibi pull-up dirençlerde genellikle 10K ohm olur.
Düğmelerin Arduino'ya nasıl bağlanacağını öğrendik. Resimde breadboard (Eskiden
elektronikçiler buna gofret derlerdi) üzerine düğme ve LED devresi kurulmuştur. Siz de resimdeki
devreyi kurabilirsiniz.

Bu uygulamayı yapmak için ihtiyacınız olan malzemeler:

 1 x Arduino
 1 x düğme
 1 x 10K ohm direnç
 1 x LED
 1 x 220 ohm direnç
 1 x breadboard (gofret)

Bu devredeki düğmenin amacı LED'i kontrol etmek olacaktır. Kullanıcı düğmeye bastığında LED
yanıyorsa sönecek, sönük ise de yanacaktır. Burada bilmemiz gereken bir diğer nokta ARK
olaylarıdır. Düğmeye basıldığı anda oluşan atlamalardan dolayı Arduino çok kısa zamanda
yüzlerce kere düğmeye basıldığını sanmaktadır. Bu istenmeyen durumdan kurtulmak için
basıldığı anda Arduino'yu biraz bekleteceğiz (delay fonksiyonu ile). Böylece devremiz, düğmeye
basıldığında oluşan istenmeyen dalgalanmalardan korunmuş olacaktır. Delay fonksiyonuna
yazılan bekleme zamanı insanın fark edemeyeceği kadar kısa bir süredir.

Düğmeye her basıldığında yeni bir işlem yapılmasını istiyoruz. Bunu sağlamak için düğmeye
basıldığında yapılması gereken işlem yapıldıktan sonra, kişinin düğmeden elini çekmesi
beklenmelidir. Eğer bunu yapmazsak kişi, düğmeye bastığında LED'i sürekli yanıp sönecektir. Bu
işlem o kadar hızlı olacaktır ki insan gözü bunu algılayamaz.

Düğmenin durumu digitalRead fonksiyonu ile kontrol edilecektir. Okunan düğme değeri
'dugmeDurumu' değişkenine yüklenecektir. Eğer düğmeye basılmışsa LED'in durumunu
değiştireceğiz. LED'in düğmeye her basıldığında konumunun değişmesi için, LED durumu bir
değişkene atanır ve LED'in eski durumuna göre LED farklı konuma getirilir.
Arduino kodu
const int Dugme = 6; /* düğmenin bağlı olduğu pin */
const int LED = 5; /* LEDin bağlı olduğu pin */

int dugmeDurumu = 0; /* düğmenin durumu */


int LEDDurumu = 0; /* birinci yöntem için LED durumu */

void setup() {
pinMode(LED, OUTPUT); /* LED pini çıkış olarak ayarlandı */
pinMode(Dugme, INPUT); /* düğme pini giriş olarak ayarlandı */
}

void loop(){
dugmeDurumu = digitalRead(Dugme); /* düğmenin durumu okundu ve değişkene
aktarıldı */
if(dugmeDurumu == HIGH) { /* düğmeye basılmış ise */
delay(10); /* dalgalanmalar için biraz bekleyelim */
if(LEDDurumu == 0){ /* LED yanmıyorsa */
digitalWrite(LED, HIGH); /* LEDi yak */
LEDDurumu = 1;
}else { /* LED yanıyorsa */
digitalWrite(LED, LOW); /* LEDi sondur */
LEDDurumu = 0;
}

while(dugmeDurumu == HIGH){ /* düğmeye basili olduğu surece bekle */


dugmeDurumu = digitalRead(Dugme); /* düğmenin durumunu kontrol et */
}
delay(10); /* dalgalanmalar için biraz bekleyelim */
}
}

https://arduinomblog.wordpress.com/2017/12/17/arduino-ile-buzzer-calistirma/

Vous aimerez peut-être aussi