Arduino Püf Noktası 2: Tek Butona Çok Fonksiyon Atama

Merhaba arkadaşlar. Arduino Dersleri serisinde temel olarak kodları anlattık. Bu seri ile bu kodları kullanmayı pekiştirmeyi hedefliyoruz. Bu yazımda bir butona birden fazla fonksiyon nasıl verebiliriz bunu konuşacağız. Butona basıldıkça sırayla farklı işler yaptıracağız.

Matematik dersinden çoğunuz modüler aritmetiği biliyordur. Kısaca bilmeyenler için anlatayım. Herhangi bir sayının bizim belirlediğimiz sayıya bölümünden kalanı bulma işlemine modüler aritmetik diyoruz. Butona farklı işleri modüler aritmetik sayesinde yapacağız. Herhangi bir sayıyı belirlediğimiz bir sayıya böldüğümüzde kalan kesinlikle bölen sayıdan küçüktür. Örneğin bir sayıyı üçe bölersek kalan her zaman en fazla 2 olabilir. Bu bilgiyi kullanarak kodumuzu yazacağız.

Modüler aritmetik kodu daha önce derslerimizde anlatılmıştır. İlk defa bu yazıyı okuyanlar için tekrar yazayım. x = a % b ; kodu bize a sayısının b ye bölümünden kalan rakamı x değişkenine yazdır demektedir. Ayrıca kullanacağımız x++ kodu da x in değerini 1 artır anlamı taşımaktadır. 

Örnek olarak 4 farklı fonksiyonu olan bir buton yapalım. Her bastığımızda farklı bir led yaksın. İlk önce bir değişken tanımlarız ve butona her bastığımızda bu değişkenin 1 sayı artmasını isteriz. Daha sonra değişkenimize modüler aritmetikle 4 e bölümünden kalanları bulup değişkenimize tekrar yazdırmasını isteriz. Böylece butona her bastığımızda değişkenimiz sırayla 0,1,2,3 değerlerini alır. Daha sonra if komutuyla eğer değişken 0 ise bunu, 1 ise, şunu vb. diyerek butona farklı fonksiyonlar vermiş oluruz. Aşağıya sırayla 4 led yaktığım kod bıraktım. İnceleyerek daha iyi anlayabilirsiniz.

int x; // Kalanları kaydettiğimiz değişkeni tanımladık.
void setup() {
pinMode(2,INPUT); // Butonu bağladığımız pini tanımladık.
pinMode(3,OUTPUT); // 1.ledi bağladığımız pini tanımladık.
pinMode(4,OUTPUT); // 1.ledi bağladığımız pini tanımladık.
pinMode(5,OUTPUT); // 1.ledi bağladığımız pini tanımladık.
pinMode(6,OUTPUT); // 1.ledi bağladığımız pini tanımladık.
Serial.begin(9600);  // Değişkenimizin durumuna bakmak için serial monitör başlattık.
}

void loop() {
 if(digitalRead(2)== HIGH){x++;} // Butona basıldığında x değerini 1 artır.
 x = x % 4;  // x değerinin 4 e bölümünden kalanı bulup tekrar x değişkenine yazdırır.

 if(x == 0){digitalWrite(3,HIGH);} // x değişkeni 0 olunda 1. ledi yakar.
  if(x == 1){digitalWrite(4,HIGH);}  // x değişkeni 1 olunda 2. ledi yakar.
   if(x == 2){digitalWrite(5,HIGH);}  // x değişkeni 2 olunda 3. ledi yakar.
    if(x == 3){digitalWrite(6,HIGH);}  // x değişkeni 3 olunda 4. ledi yakar.

 Serial.println(x); // x değerlerini serial monitöre yazdır.
}

Led yakmak yerine butona farklı fonksiyonlar atayarak kullanabilirsiniz. Yazılarımı beğendiyseniz, eklemek veya çıkarmak istedikleriniz varsa yorum veya iletişim bölümünden bize ulaşabilirsiniz...




COMMENTS

BLOGGER: 4
Loading...
Ad

Başlangıç Seviye,10,Ders,10,Hakkımda,1,İletişim,1,Orta seviye,3,Proje,1,Püf Nokta,2,
ltr
item
Arduino Dersleri: Arduino Püf Noktası 2: Tek Butona Çok Fonksiyon Atama
Arduino Püf Noktası 2: Tek Butona Çok Fonksiyon Atama
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR12ETZikKKgbG6nNDskFE40oE0T_tWub_YjRganBTumq9ImdyCMvEFId1jl4HtdEONwFrnB4Z16xdmRhkFPZOAHZh3tY4VqVgPN7X0ZoF7sk-fFTl20nnsaaB2rDVJo4HjINfdJj8DWjt/s320/PUF2.png
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR12ETZikKKgbG6nNDskFE40oE0T_tWub_YjRganBTumq9ImdyCMvEFId1jl4HtdEONwFrnB4Z16xdmRhkFPZOAHZh3tY4VqVgPN7X0ZoF7sk-fFTl20nnsaaB2rDVJo4HjINfdJj8DWjt/s72-c/PUF2.png
Arduino Dersleri
https://arduinodersi.blogspot.com/2017/03/arduino-puf-noktas-2.html
https://arduinodersi.blogspot.com/
http://arduinodersi.blogspot.com/
http://arduinodersi.blogspot.com/2017/03/arduino-puf-noktas-2.html
true
3083925267398540913
UTF-8
Tüm Yayınlar Yüklendi Başka Yayın Bulunamadı Tüm Yayınları Görüntüle Daha Fazla Oku Yanıtla Yanıtı İptal Et Sil By Ana Sayfa Sayfada Yayında üm Yayınları Görüntüle Sizin İçin Önerilen Etiket Arşiv Site İçinde Ara Tüm Yayınlar Aramanızla İlgili Yazı Bulunamadı Anasayfaya Dön Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Takipçiler Bizi Takip Edin THIS CONTENT IS PREMIUM Please share to unlock Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy