🗄️ آرایه در آردوینو — چند مقدار زیر یک نام
وقتی شش LED داری، نوشتن led1 تا led6 کار را زجرآور میکند. آرایه این را حل میکند.
ساختن آرایه
int ledPins[] = {2, 3, 4, 5, 6, 7};
const int count = 6;
دسترسی با شماره
ledPins[0] اولین خانه است — یعنی عدد ۲. شمارش از صفر شروع میشود و این مهمترین نکتهی آرایه است. آخرین خانه ledPins[5] است، نه [6].
جادوی اصلی: آرایه + حلقه
void setup() {
for (int i = 0; i < count; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
for (int i = 0; i < count; i++) {
digitalWrite(ledPins[i], HIGH);
delay(80);
digitalWrite(ledPins[i], LOW);
}
}
میخواهی ده LED بشود؟ فقط آرایه و count را عوض کن. هیچ خط دیگری تغییر نمیکند.
دو آرایهی همردیف
ترفند خیلی پرکاربرد: دو آرایه که خانههای همشمارهشان به هم مربوطاند.
int keys[] = {2, 3, 4, 5};
int notes[] = {262, 294, 330, 349};
for (int i = 0; i < 4; i++) {
if (digitalRead(keys[i]) == LOW) {
tone(8, notes[i]); // دکمه i، نت i
}
}
⚠️ اگر آرایه ۶ خانه دارد و
ledPins[6] یا [7] را بخوانی، آردوینو خطا نمیدهد — عددی تصادفی از حافظه میخواند و برنامه عجیب رفتار میکند. این یکی از سختترین باگها برای پیدا کردن است، پس همیشه شرط حلقه را i < count بگذار.آرایهی دوبعدی
برای چیزهایی مثل صفحهکلید ماتریسی:
char keys[4][4] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
// keys[1][2] یعنی '6'
آرایه را با چند LED تمرین کن 🗄️