Arduino Logic Tutorial: Kung, Para sa, Habang, at Lumipat ng Mga Pahayag ng Kaso

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

Mga gamit sa programming ng Arduino Mga istruktura ng kontrol tulad ng Kung, para sa, habang, at lumipat ng kaso Upang makontrol ang paggawa ng desisyon at mga loop sa isang sketch. Pinapayagan ng mga istrukturang ito ang Arduino Upang tumugon sa mga kondisyon, ulitin ang mga gawain, at magsagawa ng iba't ibang mga bloke ng code batay sa input.


1. Kung ang pahayag (pagpapatupad ng kondisyon)

Ang kung pahayag ay ginagamit upang magsagawa ng isang bloke ng code Kung ang isang tinukoy na kondisyon ay natutugunan.

Syntax

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

Halimbawa: Ang pag -on ng isang LED batay sa isang pindutan ng pindutan

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 na pahayag

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

Kung-Else kung pahayag

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. Para sa loop (paulit -ulit na mga gawain ng isang nakapirming bilang ng beses)

A para sa loop Nagpapatakbo ng isang bloke ng code isang nakapirming bilang ng beses. Ito ay karaniwang ginagamit para sa iterating sa mga arrays o pagkontrol sa paulit -ulit na mga gawain.

Syntax

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

Halimbawa: kumikislap ng isang LED 5 beses

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
}

Halimbawa: Tumatakbo sa pamamagitan ng isang 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. Habang ang loop (paulit -ulit hanggang sa matugunan ang isang kondisyon)

A habang loop Nagpapatakbo ng isang bloke ng code Hangga't ang isang tinukoy na kondisyon ay nananatiling totoo.

Syntax

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

Halimbawa: Naghihintay para sa isang pindutan ng pindutan

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

Halimbawa: 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. Lumipat ng kaso (paghawak ng maraming mga kondisyon nang mahusay)

A Pahayag ng Kaso ng Kaso ay ginagamit kung kailan Maramihang mga kondisyon ay kailangang suriin, ginagawa itong alternatibo sa IF-Else if-Else chain.

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
}

Halimbawa: Pagkontrol ng isang LED na may isang rotary switch

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

Halimbawa: Paggamit ng isang pindutan upang mag -ikot sa pamamagitan ng mga 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;
    }
}

Konklusyon

  • Kung ang mga pahayag Payagan ang kondisyon na pagpapatupad batay sa mga pagbabasa ng sensor o mga pindutan ng pindutan.
  • para sa mga loop ay kapaki -pakinabang para sa paulit -ulit na mga gawain na may isang kilalang bilang, tulad ng kumikislap ng isang LED.
  • habang ang mga loop Patuloy na isagawa ang code hanggang sa matugunan ang isang tiyak na kondisyon.
  • Lumipat ng mga pahayag sa kaso Pasimplehin ang paggawa ng desisyon kapag ang paghawak ng maraming mga kondisyon nang mahusay.

Ang mga istrukturang ito Pagandahin ang programming ng Arduino sa pamamagitan ng mas madali upang pamahalaan ang mga loop, kondisyon, at kontrol ng aparato. 🚀


Mag -iwan ng komento

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.