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