Tutorial Logika Arduino: Jika, untuk, while, dan beralih pernyataan kasus

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

Penggunaan Pemrograman Arduino Struktur kontrol seperti Jika, untuk, while, dan beralih kasing untuk mengendalikan pengambilan keputusan dan loop dalam sketsa. Struktur ini memungkinkan Arduino Untuk merespons kondisi, ulangi tugas, dan jalankan blok kode yang berbeda berdasarkan input.


1. Jika pernyataan (eksekusi bersyarat)

Itu Jika pernyataan digunakan untuk menjalankan blok kode Hanya jika kondisi tertentu terpenuhi.

Sintaksis

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

Contoh: Menghidupkan LED berdasarkan tombol tekan

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
    }
}

Pernyataan If-Else

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

If-else if pernyataan

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. Untuk loop (tugas yang diulangi beberapa kali)

A untuk loop menjalankan blok kode beberapa kali tetap. Itu biasanya digunakan untuk iterasi lebih dari array atau mengendalikan tugas yang berulang.

Sintaksis

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

Contoh: Mengedipkan LED 5 kali

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
}

Contoh: Menjalankan melalui array

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. Saat loop (mengulangi sampai suatu kondisi terpenuhi)

A Saat loop menjalankan blok kode Selama kondisi yang ditentukan tetap benar.

Sintaksis

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

Contoh: Menunggu tombol tekan

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!");
}

Contoh: Penghitung waktu mundur

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. Sakelar Kasing (menangani beberapa kondisi secara efisien)

A Beralih Pernyataan Kasus digunakan saat Beberapa kondisi perlu diperiksa, menjadikannya alternatif if-else if-else rantai.

Sintaksis

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
}

Contoh: Mengontrol LED dengan sakelar putar

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;
    }
}

Contoh: Menggunakan tombol untuk memulihkan mode

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;
    }
}

Kesimpulan

  • Jika pernyataan Izinkan eksekusi bersyarat berdasarkan pembacaan sensor atau tekan tombol.
  • untuk loop berguna untuk tugas berulang dengan jumlah yang diketahui, seperti berkedip LED.
  • saat loop Jalankan kode terus menerus sampai kondisi tertentu dipenuhi.
  • Pernyataan Kasus Beralih Sederhanakan pengambilan keputusan saat menangani beberapa kondisi secara efisien.

Struktur ini Tingkatkan pemrograman Arduino Dengan membuatnya lebih mudah untuk mengelola loop, kondisi, dan kontrol perangkat. 🚀


Tinggalkan komentar

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.