Arduino Mantık Eğitimi: İfadesi, Sour ve Switch Vaka İfadeleri

Arduino Logic Tutorial: If, For, While, and Switch Case Statements

Arduino Programlama Kullanımları kontrol yapıları örneğin Eğer, iken ve geçiş davası karar vermeyi kontrol etmek ve bir taslakta döngüler. Bu yapılar izin verir Arduino Koşullara yanıt vermek, görevleri tekrarlamak ve girişe göre farklı kod blokları yürütmek için.


1. İfade (koşullu yürütme)

. eğer ifade bir kod bloğu yürütmek için kullanılır Yalnızca belirli bir koşul karşılanırsa.

Sözdizimi

if (condition) {
   // Code to execute if condition is true
}

Örnek: Bir düğmeye göre bir LED'i açma

const int buttonPin = 2;  // Button connected to pin 2
const int ledPin = 13;    // LED connected to pin 13

void setup() {
    pinMode(buttonPin, INPUT);
    pinMode(ledPin, OUTPUT);
}

void loop() {
    int buttonState = digitalRead(buttonPin);  // Read button state

    if (buttonState == HIGH) {
        digitalWrite(ledPin, HIGH); // Turn LED on if button is pressed
    } else {
        digitalWrite(ledPin, LOW);  // Turn LED off otherwise
    }
}

IF-ELSE İfadesi

if (temperature > 30) {
    Serial.println("It's too hot!");
} else {
    Serial.println("Temperature is normal.");
}

If-ELSE İfadesi

if (temperature > 30) {
    Serial.println("It's too hot!");
} else if (temperature < 10) {
    Serial.println("It's too cold!");
} else {
    Serial.println("Temperature is comfortable.");
}

2. Döngü için (sabit sayıda görevi tekrarlamak)

A döngü için bir kod bloğu çalıştırır sabit sayıda. Genel olarak kullanılır diziler üzerinde tekrarlamak veya tekrarlayan görevleri kontrol etmek.

Sözdizimi

for (initialization; condition; increment) {
   // Code to execute in each iteration
}

Örnek: 5 kez bir LED yanıp sönüyor

const int ledPin = 13;

void setup() {
    pinMode(ledPin, OUTPUT);
}

void loop() {
    for (int i = 0; i < 5; i++) { // Loop runs 5 times
        digitalWrite(ledPin, HIGH);  // Turn LED on
        delay(500);  // Wait 500 ms
        digitalWrite(ledPin, LOW);   // Turn LED off
        delay(500);
    }
    delay(2000); // Pause before repeating
}

Örnek: Bir diziden koşmak

int numbers[] = {1, 2, 3, 4, 5};

void setup() {
    Serial.begin(9600);
}

void loop() {
    for (int i = 0; i < 5; i++) {
        Serial.println(numbers[i]);  // Print each number in the array
    }
    delay(2000);
}

3. Döngü iken (bir koşul karşılanana kadar tekrarlanır)

A döngü bir kod bloğu çalıştırır Belirli bir durum doğru kaldığı sürece.

Sözdizimi

while (condition) {
   // Code to execute while the condition is true
}

Örnek: Bir düğmeye basmayı bekliyorum

const int buttonPin = 2;

void setup() {
    pinMode(buttonPin, INPUT);
    Serial.begin(9600);
}

void loop() {
    Serial.println("Waiting for button press...");
    
    while (digitalRead(buttonPin) == LOW) {
        // Stay in loop until button is pressed
    }
    
    Serial.println("Button pressed!");
}

Örnek: Geri Sayım Zamanlayıcısı

int count = 10;

void setup() {
    Serial.begin(9600);
}

void loop() {
    while (count > 0) {
        Serial.print("Countdown: ");
        Serial.println(count);
        count--;
        delay(1000);
    }
    Serial.println("Liftoff!");
    delay(5000); // Restart countdown after delay
    count = 10;  // Reset count
}

4. Anahtar Durumu (birden çok koşulun verimli bir şekilde işlenmesi)

A Switch Case Beyan ne zaman kullanılır Birden fazla koşulun kontrol edilmesi gerekiyor, bunu bir alternatif haline getiriyor IF-ELSE IF-ELSE zincirler.

Sözdizimi

switch (variable) {
    case value1:
        // Code to execute if variable == value1
        break;
    case value2:
        // Code to execute if variable == value2
        break;
    default:
        // Code to execute if none of the cases match
}

Örnek: Bir LED'i döner anahtarla kontrol etmek

const int ledPin = 13;
int mode = 1;  // Example mode variable

void setup() {
    pinMode(ledPin, OUTPUT);
    Serial.begin(9600);
}

void loop() {
    switch (mode) {
        case 1:
            Serial.println("Mode 1: LED ON");
            digitalWrite(ledPin, HIGH);
            break;
        case 2:
            Serial.println("Mode 2: LED BLINKING");
            digitalWrite(ledPin, HIGH);
            delay(500);
            digitalWrite(ledPin, LOW);
            delay(500);
            break;
        case 3:
            Serial.println("Mode 3: LED OFF");
            digitalWrite(ledPin, LOW);
            break;
        default:
            Serial.println("Invalid Mode");
            break;
    }
}

Örnek: Modlar arasında geçiş yapmak için bir düğme kullanma

const int buttonPin = 2;
int mode = 1;

void setup() {
    pinMode(buttonPin, INPUT);
    Serial.begin(9600);
}

void loop() {
    if (digitalRead(buttonPin) == HIGH) {
        mode++;
        if (mode > 3) mode = 1;  // Reset mode to 1 if it exceeds 3
        delay(500);  // Debounce delay
    }

    switch (mode) {
        case 1:
            Serial.println("Mode 1: Low Power Mode");
            break;
        case 2:
            Serial.println("Mode 2: Normal Mode");
            break;
        case 3:
            Serial.println("Mode 3: High Performance Mode");
            break;
        default:
            Serial.println("Invalid Mode");
            break;
    }
}

Çözüm

  • İfadeler Sensör okumalarına veya düğmeye basarak koşullu yürütmeye izin verin.
  • Döngüler için bir LED'i yanıp sönme gibi bilinen bir sayıya sahip tekrarlayan görevler için kullanışlıdır.
  • Döngülerken Belirli bir koşul karşılanana kadar kodu sürekli olarak yürütün.
  • Anahtar Vaka Bildirimleri Birden fazla durumu verimli bir şekilde işlerken karar vermeyi basitleştirin.

Bu yapılar Arduino programlamasını geliştirin Döngüleri, koşulları ve cihaz kontrolünü yönetmeyi kolaylaştırarak. 🚀


Yorum bırak

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.