Arduino Logic Tutorial: If, für, während und Wechsel -Fallanweisungen

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

Arduino -Programmierung verwendet Kontrollstrukturen wie zum Beispiel Wenn, für, während und Schalterfall Entscheidungsfindung und Schleifen in einer Skizze zu kontrollieren. Diese Strukturen erlauben das Arduino Um auf Bedingungen zu reagieren, Aufgaben zu wiederholen und verschiedene Codeblöcke basierend auf der Eingabe auszuführen.


1. Wenn Anweisung (bedingte Ausführung)

Der wenn Anweisung wird verwendet, um einen Codeblock auszuführen Nur wenn ein bestimmter Zustand erfüllt ist.

Syntax

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

Beispiel: Ein Einschalten einer LED basierend auf einer Taste Drücken Sie

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

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

IF-ELSE IF ARKTION

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. Für Schleife (Wiederholungsaufgaben eine feste Anzahl von Male)

A Für Schleife leitet einen Codeblock aus eine feste Häufigkeit oft. Es wird üblicherweise für verwendet Iterieren über Arrays oder steuerende sich wiederholende Aufgaben.

Syntax

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

Beispiel: 5 -mal blinken eine LED

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
}

Beispiel: Durch ein Array laufen

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. Während der Schleife (Wiederholung, bis ein Zustand erfüllt ist)

A Während der Schleife leitet einen Codeblock aus Solange ein bestimmter Zustand wahr bleibt.

Syntax

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

Beispiel: Warten auf eine Taste Drücken Sie drücken

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

Beispiel: Countdown -Timer

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. Schaltkoffer (Umgang mit mehreren Bedingungen effizient)

A Schaltfall -Anweisung wird verwendet, wenn Mehrere Bedingungen müssen überprüft werden, es zu einer Alternative zu einer Alternative zu If-ELSE IF-ELSE Ketten.

Syntax

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
}

Beispiel: Steuerung einer LED mit einem Drehschalter steuern

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

Beispiel: Verwenden einer Taste, um die Modi zu durchlaufen

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

Abschluss

  • Wenn Aussagen Ermöglichen Sie eine bedingte Ausführung basierend auf Sensorwerte oder Tastendrücken.
  • für Schleifen sind nützlich für sich wiederholende Aufgaben mit bekannter Zählung, wie z. B. ein LED zu blinken.
  • während Schleifen Führen Sie den Code kontinuierlich aus, bis eine bestimmte Bedingung erfüllt ist.
  • Switch -Fallanweisungen Vereinfachen Sie die Entscheidungsfindung beim effizienten Umgang mit mehreren Bedingungen.

Diese Strukturen Verbessern Sie die Arduino -Programmierung Indem Sie es einfacher machen, Schleifen, Bedingungen und Gerätesteuerung zu verwalten. 🚀


Hinterlasse einen Kommentar

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.