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. 🚀