Arduino Arduino Dersleri Gömülü Sistemler

Arduino Ders#6: Karşılaştırma Komutları

Arduino programlamada bazı sorgularda mantıksal sınamaya ihtiyaç duyarız. Bu mantıksal sınamalardan TRUE ya da FALSE olarak iki adet sonuç döner. Bizde bu sonuca göre yapılacak ya da yapılmayacak işlemlere karar veririz. Daha çok karar yapılarında karşılaştırma operatörleri ile birlikte kullanılır.

Üç adet mantıksal operarör vardır. Bunlar;

  1. AND (VE) Operatörü (&&)
  2. OR (VEYA) Operatörü (||)
  3. NOT (DEĞİL) Operatörü (!)

1- AND (VE) Operatörü:

Ancak iki durumda doğru ise TRUE (doğru) sonuç döndürür. Diğer durumlarda FALSE (yanlış) değer döndürür. Çift ve “&&” karakterleri ile belirtilir.

Örnek olarak Arduino 3 ve 4 dijital pinine bağlı butonların her ikisine birden basınca 5 numaralı pindeki ledi yakan uygulamamızın kodlarını yazalım:

void setup() {
  pinMode(3, INPUT); // 3 numaralı dijital pin giriş
  pinMode(4, INPUT); // 4 numaralı dijital pin giriş
  pinMode(5, OUTPUT); // 5 numaralı dijital pin çıkış
}
 
void loop() 
{
  bool buton1 = digitalRead(3); // 3 numaralı girişi oku ve buton1 değişkenine aktar
  bool buton2 = digitalRead(4); // 4 numaralı girişi oku ve buton2 değişkenine aktar
  if (buton1 == 1 && buton2 == 1) { // BURAYA DİKKAT eğer buton1 "VE" buton2 değeri 1 ise 
    digitalWrite(5, HIGH); // 5 numaralı dijital çıkışı 1 yap
  } else { // değilse
    digitalWrite(5, LOW); // 5 numaralı dijital çıkışı 0 yap
  }
}

2- OR (VEYA) Operatörü:

İki durumdan herhangi biri ya da her ikiside doğru ise TRUE (doğru) sonuç döndürür. Diğer durumlarda FALSE (yanlış) değer döndürür. Çift dikey çizgi “||” karakterleri ile belirtilir.

Örnek olarak Arduino 3 ve 4 dijital pinine bağlı butonların herhangi birine ya da ikisine birden basınca 5 numaralı pindeki ledi yakan uygulamamızın kodlarını yazalım:

void setup() {
  pinMode(3, INPUT); // 3 numaralı dijital pin giriş
  pinMode(4, INPUT); // 4 numaralı dijital pin giriş
  pinMode(5, OUTPUT); // 5 numaralı dijital pin çıkış
}
 
void loop() 
{
  bool buton1 = digitalRead(3); // 3 numaralı girişi oku ve buton1 değişkenine aktar
  bool buton2 = digitalRead(4); // 4 numaralı girişi oku ve buton2 değişkenine aktar
  if (buton1 == 1 || buton2 == 1) // BURAYA DİKKAT eğer buton1 "VEYA" buton2 değeri 1 ise 
{ 
    digitalWrite(5, HIGH); // 5 numaralı dijital çıkışı 1 yap
  } 
else                                    // değilse
{ 
    digitalWrite(5, LOW); // 5 numaralı dijital çıkışı 0 yap
  }
}

3- ! (DEĞİL) Operatörü:

Değişkenin değerini terslemek için kullanılır. Eğer değer TRUE (doğru) ise FALSE (yanlış) , eğer değer FALSE (yanlış) ise TRUE (doğru) değer döndürür. Ünlem “!” karakteri ile belirtilir.

Örnek olarak Arduino 4 nolu dijital pinine bağlı butona basınca 5 numaralı pindeki ledi söndüren, bırakınca ise 5 numaralı pindeki ledi yakan uygulamamızın kodlarını yazalım:

void setup() {
  pinMode(4, INPUT); // 4 numaralı dijital pin giriş
  pinMode(5, OUTPUT); // 5 numaralı dijital pin çıkış
}
 
void loop() 
{
 bool buton = digitalRead(4); // 4 numaralı girişi oku ve buton değişkenine aktar
 if (!buton) { // BURAYA DİKKAT (BAŞTAKİ ÜNLEM İŞARETİ) eğer butona basılı değilse
    digitalWrite(5, HIGH); // 5 numaralı dijital çıkışı 1 yap
  } 
else                          // eğer butona basılı ise
{ 
    digitalWrite(5, LOW); // 5 numaralı dijital çıkışı 0 yap
  }
}

Similar Posts

Bir cevap yazın

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