İlk olarak kullanacağımız malzemelerin listesini yazalım.
- 1 adet Arduino (Ben bu uygulamada UNO modelini kullandım.)
- 5 adet 330Ω direnç
- 1 adet 10kΩ direnç
- 5 adet LED
- 1 adet buton
- Yeterli sayıda kablo
Malzemeleri temin ettikten sonra breadboard çizimine bakarak devreyi kendi breadboardumuza kuruyoruz. Kurulumdan sonra breadboardumuzda şöyle bir görüntü elde edeceğiz.
Kurulum bittiğine göre şimdi kodu yazmaya başlayabiliriz.
Kod:
int buton1 = 8; //pinleri ayarladık.Kodumuzu derleyicide yazıp kartımıza yükledikten sonra devremiz çalışabilir duruma geliyor. Devrenin çalışma şeklini linkleki gif yardımıyla görebilirsiniz : http://www.gfycat.com/UnrulyAgitatedCoqui
int L1 = 9; //pinleri ayarladık.
int L2 = 10; //pinleri ayarladık.
int L3 = 11; //pinleri ayarladık.
int L4 = 12; //pinleri ayarladık.
int L5 = 13; //pinleri ayarladık.
int buton1kontrol; //buton1kontrol adlı bir değişken atadık.
int sayma; //sayma adlı bir değişken atadık. Bu değişken butona basma sayımızı hafızasında tutacaktır.
void setup() {
pinMode(buton1, INPUT); //buton1'i giriş olarak tanımladık
pinMode(L1, OUTPUT); //L1'i çıkış olarak tanımladık
pinMode(L2, OUTPUT); //L2'i çıkış olarak tanımladık
pinMode(L3, OUTPUT); //L3'i çıkış olarak tanımladık
pinMode(L4, OUTPUT); //L4'i çıkış olarak tanımladık
pinMode(L5, OUTPUT); //L5'i çıkış olarak tanımladık
}
void loop() {
buton1kontrol = 0; //buton1kontrol değişkenini 0'a eşitledik.
delay(500);
buton1kontrol = digitalRead(buton1); //dijital olarak okuduğumuz buton1 değerini buton1kontrol değişkenine atadık.
if(buton1kontrol == HIGH) {
sayma=sayma+1; //eğer butona basılıysa sayma değişmenini 1 arttırdık.
}
switch(sayma)
{
case 1: digitalWrite(L1, HIGH); //sayma değerimiz bir ise 1.LED yakılacak.
break; //kodun devam etmemesi için break koyduk.
case 2: digitalWrite(L2, HIGH); //sayma değerimiz iki ise 2.LED yakılacak.
break; //kodun devam etmemesi için break koyduk.
case 3: digitalWrite(L3, HIGH); //sayma değerimiz üç ise 3.LED yakılacak.
break; //kodun devam etmemesi için break koyduk.
case 4: digitalWrite(L4, HIGH); //sayma değerimiz dört ise 4.LED yakılacak.
break; //kodun devam etmemesi için break koyduk.
case 5: digitalWrite(L5, HIGH); //sayma değerimiz beş ise 5.LED yakılacak.
break;
}
if (sayma>5) //sayma değişkeninin 5'ten büyük olup olmadığını kontrol ettik. Eğer büyükse sayma değerini sıfırladık ve LED'leri söndürdük.
{
sayma=0;
digitalWrite(L1, LOW); //1.LED'i söndürdük.
digitalWrite(L2, LOW); //2.LED'i söndürdük.
digitalWrite(L3, LOW); //3.LED'i söndürdük.
digitalWrite(L4, LOW); //4.LED'i söndürdük.
digitalWrite(L5, LOW); //5.LED'i söndürdük.
}
}
NOT: Switch case komutunu kullanırken break komutunu kullanmamızın sebebi Switch case komutunda ilk sağlanan değişkenden sonraki fonksiyonların yapılmasını engellemekti.
İlgilenebileceğiniz Diğer Uygulamalar :
Hiç yorum yok:
Yorum Gönder