Arduino Dersi 6: Buton Led Uygulaması İf Else Komutu Karşılaştırma ve Mantık Operatörleri

Merhaba arkadaşlar. Bugün sizlere if(){} ve else{} komutunu konuşacağız ve bunu butonla led kontrolü uygulamasıyla pekiştireceğiz.
if(){} komutu parantez () içerisinde yazılan şart sağlandığı taktirde süslü parantez{} içerisinde yazan komutların gerçekleştirilmesini sağlar. Parantez () içindeki şartı karşılaştırma operatörleri(büyüktür, küçüktür, eşittir vb.) ve mantık operatörleri(ve, veya) kullanarak yazarız.
Karşılartırma Operatörleri:
a == b  //   a eşittir b
a != b  //   a eşit değildir b ye
a < b  //    a değeri b değerinden küçük
a > b  //    a değeri b değerinden büyük
a <= b  //    a değeri b değerinden eşit veya küçük
a >= b  //    a değeri b değerinden eşit veya büyük
Mantık Operatörleri: 
a == x && b == y  //   Şartın sağlanması için hem a=x hem de b=y olmak zorundadır.
a == x || b == y  //    Şartın sağlanması için a=x veya b=y şartından birinin olması yeterlidir.

Buton kullanımında if(){} komutundan faydalanıyoruz. Komutun şart kısmını parantez() içine yazarken o butonun bağlı oldu pinin okunmasını ve 5v gerilim varsa işlem yapmasını istiyoruz. Pinin değerinin okunmasını yeni kodumuz digitalRead(pin numarası) kodu ile yapıyoruz. Bu kod pinin okumasını yapıyor. Sonra koşul belirtmek için de karşılaştırma operatörlerinden eşittiri == kullanacağız. Yani kodumuz if(digitalRead(pin numarası) == HIGH){} şeklinde olacak. Süslü parantez içine de butona basıldıktan sonra gerçekleşmesini istediğimiz komutları yazıyoruz. Eğer 2 nolu pine bir buton, 3 nolu pine bir led bağlayıp yakmak isteseydik kodumuz
 if(digitalRead(2) == HIGH) {digitalWrite(3, HIGH);}
şeklinde olurdu.
Bu şekilde butona basılmadığı zaman ne yapılmasını gerektiğini belirtmezsek butona bastığımızda led yanar, buton bırakıldıktan sonra da yanmaya devam eder. Butona bastığımızda ledin yanmasını, elimizi çektiğimizde sönmesini isteseydik bu durum için de kod yazmamız gerekirdi. Bunu iki şekilde yapabiliriz. Birincisi else{} komutu ile bir önceki if komutundaki şartların gerçekleşmediğinde ne yapılması gerektiğini belirtmektir. Bu durumda kodumuz
if(digitalRead(2) == HIGH) {digitalWrite(3, HIGH);}
else{digitalWrite(3, LOW);}
şeklinde olurdu. İkinci yöntem ise else komutu yerine, "eğer buton durumu kapalı ise led durumu kapalı olsun" şeklinde ikinci bir şart yazmak olacaktır. Bu durumda kodumuz
if(digitalRead(2) == HIGH) {digitalWrite(3, HIGH);}
else if(digitalRead(2) == LOW) {digitalWrite(3, LOW;} 
şeklinde olacaktır.

Kodlarımızı anlattıktan sonra Buton Bağlantısı ve PULL DOWN dirençlemeden bahsetmek istiyorum. Buton bağlantısı led bağlantısından farklıdır. Led bağlantısında enerji arduinodan lede aktarılacak şekilde bağlanırken, buton bağlantısında dışarından enerji arduinonun okuma yapılacak pinine aktarılacak şekilde bağlanır. Butonun bir ayağı sistemin 5v hattına(5v Arduino üzerindeki vcc pininden de alınabilir) diğer ayağı arduinonun input olarak kullanacağımız bacağa bağlanır. Böylece butona basıldığı zaman enerji arduinoya aktarılır ve okunur. Butona basılmadığı zaman ise arduinoya elektrik gitmez. Fakat arduinonun bacağı okumaya devam eder. Elektriksel gürültü(Analog Veri okuma dersinde bunu görüntüleyeceğiz.) dediğimiz anakart üzerindeki oluşan küçük elektromanyetizma yüzünden buton basılmasa da değişik değerler okur ve sistemin yanlış çalışmasına neden olur. Bunu önlemek için arduinoya giden bacak ayrıca GND hattına bağlanır. Böylece buton basılmadığı durumda GND hattını okur yani sıfır değeri okuyarak gürültü toprak hattına aktarılmış olur. İşte bu noktada bir sorun oluşmaktadır. Butona basıldığı zaman akım için gideceği iki yol oluşur. Birisi GND hattı, diğeri arduinonun input pinidir. Akım her zaman direnç olmayan hattı seçeceği için arduinoya gitmeden direkt GND hattına giderek kısa devre oluşturur. Bunu önlemek için butonu GND hattına bağlamadan önce 10K ohm direnç bağlarız. Bu direnç bağlama sistemine PULL DOWN direnç denilmektedir.

 Biraz uzun anlattım kusura bakmayın fakat elektriğe yeni başlamış arkadaşlar için zor anlaşılan bir konudur. Elimden geldiğince açıklayıcı olmaya çalıştım.
Yazılarımı beğendiyseniz ve eleştirmek isterseniz yorumlarınızı bekliyorum. İlerleyen derslerde görüşmek üzere...

COMMENTS

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 Dersi 6: Buton Led Uygulaması İf Else Komutu Karşılaştırma ve Mantık Operatörleri
Arduino Dersi 6: Buton Led Uygulaması İf Else Komutu Karşılaştırma ve Mantık Operatörleri
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZV_tviOFKM1vva11uvLfq06ccP2DL3JlSrH5fK5D-G6P_HkDTIUxWQ7vNQ8bo6-U-e-1uhnhE3CIxu2YV6cp39d2XJBL1PnGa4fYrjvBphQvasQJgzwoE3Vv_Y0ottMP_yVdo_ipHzhht/s320/DERS6.png
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZV_tviOFKM1vva11uvLfq06ccP2DL3JlSrH5fK5D-G6P_HkDTIUxWQ7vNQ8bo6-U-e-1uhnhE3CIxu2YV6cp39d2XJBL1PnGa4fYrjvBphQvasQJgzwoE3Vv_Y0ottMP_yVdo_ipHzhht/s72-c/DERS6.png
Arduino Dersleri
http://arduinodersi.blogspot.com/2017/03/arduino-dersi-6-if-else-komutu-buton.html
http://arduinodersi.blogspot.com/
http://arduinodersi.blogspot.com/
http://arduinodersi.blogspot.com/2017/03/arduino-dersi-6-if-else-komutu-buton.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