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;
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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 } } |
İ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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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 } } |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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 } } |
Arduino ile exor işlemi nasıl yapabilirim?