استخدامات البرمجة Arduino هياكل التحكم مثل إذا ، ل ، أثناء ، وتبديل العلبة للسيطرة على صنع القرار والحلقات في رسم. هذه الهياكل تسمح أردوينو للرد على الشروط ، تكرار المهام ، وتنفيذ كتل مختلفة من التعليمات البرمجية بناءً على الإدخال.
1. إذا كان البيان (التنفيذ الشرطي)
ال إذا كان البيان يستخدم لتنفيذ كتلة من الكود فقط إذا تم استيفاء شرط محدد.
بناء الجملة
if (condition) {
// Code to execute if condition is true
}
مثال: تشغيل LED بناءً على زر اضغط
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
if (temperature > 30) {
Serial.println("It's too hot!");
} else {
Serial.println("Temperature is normal.");
}
إذا كان البيان
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. للحلقة (تكرار مهام عدد محدد من المرات)
أ للحلقة يدير كتلة من الكود عدد ثابت من المرات. يستخدم عادة ل التكرار على المصفوفات أو التحكم في المهام المتكررة.
بناء الجملة
for (initialization; condition; increment) {
// Code to execute in each iteration
}
مثال: يومض LED 5 مرات
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
}
مثال: الجري من خلال صفيف
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. بينما حلقة (تكرار حتى يتم استيفاء حالة)
أ بينما حلقة يدير كتلة من الكود طالما ظل شرط محدد صحيحًا.
بناء الجملة
while (condition) {
// Code to execute while the condition is true
}
مثال: في انتظار زر اضغط
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!");
}
مثال: مؤقت العد التنازلي
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. حالة التبديل (التعامل مع شروط متعددة بكفاءة)
أ تبديل بيان الحالة يستخدم عندما يجب فحص شروط متعددةمما يجعلها بديلاً عن if-else if-else السلاسل.
بناء الجملة
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
}
مثال: التحكم في LED مع مفتاح دوار
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;
}
}
مثال: استخدام زر للتنقل عبر أوضاع
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;
}
}
خاتمة
- إذا كانت البيانات السماح للتنفيذ الشرطي بناءً على قراءات المستشعر أو الضغط على الزر.
- للحلقات مفيدة للمهام المتكررة مع عدد معروف ، مثل يومض LED.
- بينما الحلقات قم بتنفيذ الكود بشكل مستمر حتى يتم استيفاء حالة معينة.
- تبديل بيانات الحالة تبسيط صنع القرار عند التعامل مع شروط متعددة بكفاءة.
هذه الهياكل تعزيز برمجة Arduino من خلال تسهيل إدارة الحلقات والظروف والتحكم في الجهاز. 🚀