Arduino Logic Tutorial: if, voor, while en schakel van casusverklaringen

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

Arduino -programmering gebruikt Controlestructuren zoals if, voor, terwijl en schakel van geval om besluitvorming en lussen in een schets te beheersen. Deze structuren staan ​​het toe Arduino Om te reageren op voorwaarden, taken herhalen en verschillende blokken van code uit te voeren op basis van invoer.


1. IF VERKLARING (Voorwaardelijke uitvoering)

De Als verklaring wordt gebruikt om een ​​blok code uit te voeren Alleen als aan een gespecificeerde voorwaarde wordt voldaan.

Syntaxis

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

Voorbeeld: een LED inschakelen op basis van een knopdruk

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 verklaring

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

If-else if verklaring

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. voor lus (taken herhalen een vast aantal keren)

A voor een lus voert een blok code uit een vast aantal keren. Het wordt vaak gebruikt voor itereren over arrays of het beheersen van repetitieve taken.

Syntaxis

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

Voorbeeld: 5 keer knipperen een 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
}

Voorbeeld: door een array rennen

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. Terwijl lus (herhalen totdat aan een toestand is voldaan)

A Terwijl lus voert een blok code uit Zolang een gespecificeerde toestand waar blijft.

Syntaxis

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

Voorbeeld: Wachten op een knop Druk op

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

Voorbeeld: 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. Schakelgeval (meerdere omstandigheden efficiënt afhandelen)

A Schakel Case Statement wordt gebruikt wanneer Meerdere voorwaarden moeten worden gecontroleerd, waardoor het een alternatief is if-else if-else kettingen.

Syntaxis

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
}

Voorbeeld: een LED besturen met een roterende schakelaar

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

Voorbeeld: een knop gebruiken om door modi te fietsen

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

Conclusie

  • Als uitspraken Sta voorwaardelijke uitvoering toe op basis van sensorwaarden of knopdrukken.
  • voor lussen zijn nuttig voor repetitieve taken met een bekende telling, zoals knipperen een LED.
  • terwijl lussen Voer de code continu uit totdat aan een specifieke voorwaarde is voldaan.
  • Schakel Case -verklaringen Vereenvoudig de besluitvorming bij het efficiënt omgaan met meerdere omstandigheden.

Deze structuren Verbeter Arduino -programmering Door het gemakkelijker te maken om lussen, voorwaarden en apparaatregeling te beheren. 🚀


Laat een reactie achter

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.