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