Arduino Logic Tutorial: If, för, medan och växla fall uttalanden

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

Arduino -programmeringsanvändningar kontrollstrukturer såsom om, för, medan och växla för att kontrollera beslutsfattande och slingor i en skiss. Dessa strukturer tillåter Arduino För att svara på förhållanden, upprepa uppgifter och utföra olika kodblock baserat på ingång.


1. Om uttalande (villkorad körning)

De om uttalande används för att utföra ett kodblock Endast om ett specifikt tillstånd uppfylls.

Syntax

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

Exempel: Att vända en LED på baserad på en knapptryck

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-annans uttalande

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

IF-TILL IF-uttalande

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 slinga (upprepa uppgifter ett fast antal gånger)

En för slinga Kör ett kodblock ett fast antal gånger. Det används ofta för iterera över matriser eller kontrollera repetitiva uppgifter.

Syntax

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

Exempel: Blinkande en LED 5 gånger

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
}

Exempel: Kör genom en matris

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. Medan slingan (upprepar tills ett tillstånd uppfylls)

En Under slingan Kör ett kodblock Så länge ett specifikt tillstånd förblir sant.

Syntax

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

Exempel: Väntar på en knapptryckning

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

Exempel: Nedräkningstimer

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. Switch Case (Hantera flera villkor effektivt)

En Switch Case Statement används när Flera villkor måste kontrolleras, vilket gör det till ett alternativ till if-annon kedjor.

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
}

Exempel: Styrning av en LED med en roterande 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;
    }
}

Exempel: Använd en knapp för att cykla igenom lägen

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

Slutsats

  • Om uttalanden Tillåt villkorad körning baserad på sensoravläsningar eller knapptryck.
  • för slingor är användbara för repetitiva uppgifter med ett känt antal, till exempel att blinka en LED.
  • Medan slingor Kör kod kontinuerligt tills ett specifikt tillstånd uppfylls.
  • Switch ärendeuttalanden Förenkla beslutsfattandet vid hantering av flera villkor effektivt.

Dessa strukturer Förbättra Arduino -programmering Genom att göra det enklare att hantera slingor, förhållanden och enhetskontroll. 🚀


Lämna en 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.