Arduino'da operatörler ve eşitlik ifadeleri, değişkenlerle işlem yapmak, karar verme mekanizmaları oluşturmak ve programlama yapılarının temelini oluşturur. Bu konuyu Matematiksel Operatörler, Mantıksal Operatörlerve Eşitlikler olarak üç başlık altında ele alacağız. Her bir başlıkta detaylı açıklamalar, tablolar ve örneklerle konuyu pekiştireceğiz.
1. Matematiksel Operatörler
Matematiksel operatörler, Arduino'da temel aritmetik işlemleri yapmak için kullanılır. Bu operatörler, sensörlerden gelen verileri işlemek, matematiksel hesaplamalar yapmak ve kontrol mekanizmalarını yönetmek için sıklıkla kullanılır.
Matematiksel Operatörler Tablosu
Operatör | Açıklama | Örnek Kullanım | Sonuç |
---|---|---|---|
+ | Toplama | x + y | x ve y’nin toplamı |
- | Çıkarma | x - y | x ve y’nin farkı |
* | Çarpma | x * y | x ve y’nin çarpımı |
/ | Bölme | x / y | x’in y’ye bölümü |
% | Mod Alma (Kalan Bulma) | x % y | x’in y’ye bölümünden kalan |
++ | Bir artırma | x++ | x’in değeri 1 artar |
-- | Bir azaltma | x-- | x’in değeri 1 azalır |
Matematiksel Operatörlerle Örnekler
Örnek 1: İki Sensör Değerinin Toplamını ve Ortalamasını Hesaplama
int sensor1 = A0; // Sensör 1 pini
int sensor2 = A1; // Sensör 2 pini
int toplam;
float ortalama;
void setup() {
Serial.begin(9600);
}
void loop() {
int deger1 = analogRead(sensor1); // Sensör 1 değerini oku
int deger2 = analogRead(sensor2); // Sensör 2 değerini oku
toplam = deger1 + deger2; // Değerleri topla
ortalama = toplam / 2.0; // Ortalamayı hesapla
Serial.print("Toplam: ");
Serial.println(toplam);
Serial.print("Ortalama: ");
Serial.println(ortalama);
delay(1000);
}
Örnek 2: LED Yanıp Sönme Süresini Mod Alma ile Ayarlama
int ledPin = 13;
int sure = 1000; // Başlangıç süresi
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, HIGH);
delay(sure % 1500); // Mod işlemi ile süreyi belirle
digitalWrite(ledPin, LOW);
delay(sure % 1500);
sure += 100; // Süreyi artır
}
2. Mantıksal Operatörler
Mantıksal operatörler, birden fazla koşulu değerlendirmek ve karar mekanizmalarını oluşturmak için kullanılır. Koşullar arasında "VE" (&&
), "VEYA" (||
) gibi bağlantılar kurulmasını sağlar.
Mantıksal Operatörler Tablosu
Operatör | Açıklama | Örnek Kullanım | Sonuç |
---|---|---|---|
&& | VE (Tüm koşullar doğruysa doğru) | x > 5 && y < 10 | x, 5’ten büyük VE y, 10’dan küçükse true |
|| | VEYA (Koşullardan biri doğruysa) | x > 5 || y < 10 | x, 5’ten büyük VEYA y, 10’dan küçükse true |
! | DEĞİL (Koşulun tersini alır) | !(x > 5) | x, 5’ten büyük DEĞİLSE true |
Mantıksal Operatörlerle Örnekler
Örnek 1: İki Sensör Değerine Göre LED Kontrolü
int sensor1 = A0;
int sensor2 = A1;
int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
int deger1 = analogRead(sensor1);
int deger2 = analogRead(sensor2);
// Her iki sensör de belirli bir aralıkta ise LED yansın
if (deger1 > 500 && deger2 < 300) {
digitalWrite(ledPin, HIGH); // LED yanar
} else {
digitalWrite(ledPin, LOW); // LED söner
}
delay(1000);
}
Örnek 2: VEYA Operatörü ile Alarm Sistemi
int motionSensor = 2;
int smokeSensor = 3;
int alarmPin = 13;
void setup() {
pinMode(motionSensor, INPUT);
pinMode(smokeSensor, INPUT);
pinMode(alarmPin, OUTPUT);
}
void loop() {
int motion = digitalRead(motionSensor);
int smoke = digitalRead(smokeSensor);
// Hareket algılandı VEYA duman algılandıysa alarm çalışır
if (motion == HIGH || smoke == HIGH) {
digitalWrite(alarmPin, HIGH); // Alarm çalar
} else {
digitalWrite(alarmPin, LOW); // Alarm durur
}
delay(500);
}
3. Eşitlikler ve Karşılaştırma Operatörleri
Eşitlik ifadeleri, iki değerin birbiriyle ilişkisini kontrol etmek için kullanılır. Bu operatörler, karar verme mekanizmalarının temelidir.
Eşitlik Operatörleri Tablosu
Operatör | Açıklama | Örnek Kullanım | Sonuç |
---|---|---|---|
== | İki değerin eşit olup olmadığını kontrol eder. | x == y | x ve y eşitse true |
!= | İki değerin eşit olmadığını kontrol eder. | x != y | x ve y eşit değilse true |
> | Soldaki değer sağdakinden büyükse doğru döner. | x > y | x, y’den büyükse true |
< | Soldaki değer sağdakinden küçükse doğru döner. | x < y | x, y’den küçükse true |
>= | Soldaki değer sağdakine büyük veya eşitse doğru döner. | x >= y | x, y’den büyük veya eşitse true |
<= | Soldaki değer sağdakine küçük veya eşitse doğru döner. | x <= y | x, y’den küçük veya eşitse true |
Eşitliklerle Örnek
Örnek: Sıcaklık Kontrolü
int tempSensor = A0;
int led = 13;
void setup() {
pinMode(led, OUTPUT);
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(tempSensor);
int temperature = map(sensorValue, 0, 1023, -40, 125);
if (temperature == 25) { // Sıcaklık 25 derece ise
digitalWrite(led, HIGH); // LED yanar
} else {
digitalWrite(led, LOW); // LED söner
}
Serial.print("Temperature: ");
Serial.println(temperature);
delay(1000);
}
Bu yazıda, Arduino'da operatörleri matematiksel ve mantıksal olarak iki gruba ayırdık ve ayrıca eşitlik ifadelerini detaylı şekilde ele aldık. Her başlık için tablolar, açıklamalar ve örnekler sunarak konuyu pekiştirdik. Sıkça Sorulan Sorular
Arduino'da matematiksel operatörler şunlardır:
+
(Toplama): İki değeri toplar.-
(Çıkarma): İki değerin farkını alır.*
(Çarpma): İki değeri çarpar./
(Bölme): Bir değeri diğerine böler.%
(Mod): Bir değerin diğerine bölümünden kalanı bulur.
Örneğin:
int toplam = 10 + 5; // Sonuç: 15
Mod operatörü (%
), bir sayının diğerine bölümünden kalan değeri bulur. Örneğin:
int kalan = 10 % 3; // Kalan: 1
Bu, döngülerde veya zamanlama işlemlerinde faydalıdır.
Mantıksal operatörler, koşulları değerlendirmek için kullanılır:
&&
(VE): Tüm koşullar doğruysa sonuçtrue
.||
(VEYA): Koşullardan biri doğruysa sonuçtrue
.!
(DEĞİL): Koşulun tersini alır.
Örnek:
if (x > 5 && y < 10) {
// Şartlar doğruysa işlemleri gerçekleştir
}
Eşitlik operatörleri, iki değerin ilişkisini kontrol eder:
==
(Eşittir): İki değerin eşit olup olmadığını kontrol eder.!=
(Eşit Değildir): İki değerin eşit olmadığını kontrol eder.>
(Büyüktür): Soldaki sağdakinden büyüksetrue
.<
(Küçüktür): Soldaki sağdakinden küçüksetrue
.>=
(Büyük veya Eşittir): Soldaki sağdakine büyük ya da eşitsetrue
.<=
(Küçük veya Eşittir): Soldaki sağdakine küçük ya da eşitsetrue
.
Matematiksel operatörlerle LED yanıp sönme süresi ayarlanabilir. Örneğin:
int sure = 1000; // Süre
digitalWrite(13, HIGH);
delay(sure % 1500); // Süreyi mod operatörü ile ayarla
digitalWrite(13, LOW);
delay(sure % 1500);
Hareket ve duman algılandığında alarm veren bir sistem:
if (motion == HIGH || smoke == HIGH) {
digitalWrite(alarmPin, HIGH); // Alarm çalar
}
Sıcaklık sensöründen gelen veriyi işleyerek hesaplama yapabilirsiniz:
int temperature = map(sensorValue, 0, 1023, -40, 125);
if (temperature > 30) {
Serial.println("Sıcaklık yüksek!");
}
İki sensör verisini eşitlik operatörleriyle karşılaştırabilirsiniz:
if (sensor1 > sensor2) {
Serial.println("Sensör 1 daha büyük.");
}
Mantıksal VE, iki koşulun aynı anda doğru olduğu durumlarda kullanılır. Örneğin:
if (x > 10 && y < 20) {
Serial.println("Koşullar sağlandı.");
}
!
operatörü, bir koşulun tersini alır. Örneğin:
if (!isOn) {
digitalWrite(ledPin, HIGH); // LED yanar
}
Burada, isOn
yanlışsa LED yanacaktır.
Bu Gönderiye Yorum Yapılmamış