Tutoriel de logique Arduino: si, pour, puits et commutation des instructions de cas

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

Arduino Programming utilise structures de contrôle tel que Si, pour, tangage et basculer le boîtier Pour contrôler la prise de décision et les boucles dans un croquis. Ces structures permettent le Arduino Pour répondre aux conditions, répétez les tâches et exécutez différents blocs de code en fonction de l'entrée.


1. If Énoncé (exécution conditionnelle)

Le Si déclaration est utilisé pour exécuter un bloc de code seulement si une condition spécifiée est remplie.

Syntaxe

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

Exemple: allumer une LED en fonction d'un bouton Appuyez sur

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

Énoncé IF-ELSE

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

IF-ELSE IF CONSÉRATION

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. Pour la boucle (tâches répétitives un nombre fixe de fois)

UN pour boucle Exécute un bloc de code un nombre fixe de fois. Il est couramment utilisé pour itération sur les tableaux ou contrôler les tâches répétitives.

Syntaxe

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

Exemple: clignoter une LED 5 fois

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
}

Exemple: exécuter un tableau

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. Pendant la boucle (répéter jusqu'à ce qu'une condition soit remplie)

UN pendant la boucle Exécute un bloc de code tant qu'une condition spécifiée reste vraie.

Syntaxe

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

Exemple: en attente d'un bouton Appuyez sur

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

Exemple: temporisateur à compte à rebours

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. CASSE CASHE (Gestion de plusieurs conditions efficaces)

UN Déclaration de cas de commutation est utilisé lorsque Plusieurs conditions doivent être vérifiées, ce qui en fait une alternative à if-else if-else chaînes.

Syntaxe

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
}

Exemple: contrôler une LED avec un interrupteur rotatif

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

Exemple: Utilisation d'un bouton pour parcourir les modes

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

Conclusion

  • Si les déclarations Autorisez l'exécution conditionnelle en fonction des lectures du capteur ou des appuyés sur le bouton.
  • pour boucles sont utiles pour les tâches répétitives avec un décompte connu, comme clignoter une LED.
  • Pendant les boucles Exécutez le code en continu jusqu'à ce qu'une condition spécifique soit remplie.
  • Instructions de cas de commutation Simplifiez la prise de décision lors de la gestion efficace de plusieurs conditions.

Ces structures Améliorer la programmation Arduino En facilitant la gestion des boucles, des conditions et du contrôle des appareils. 🚀


Laissez un commentaire

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.