🌊 LED دنباله‌دار — موج نور با آرایه و حلقه

افکتی که در ماشین‌های نایت‌رایدر و تابلوهای LED می‌بینی. ساده است، قشنگ است، و بهترین بهانه برای یاد گرفتن آرایه و حلقه.

اول: چرا آرایه؟

با شش LED بدون آرایه باید شش خط digitalWrite بنویسی، و برای هر الگوی جدید شش تای دیگر. با آرایه، همه‌اش سه خط می‌شود:

const int leds[] = {2, 3, 4, 5, 6, 7};
const int count = 6;

void setup() {
  for (int i = 0; i < count; i++) {
    pinMode(leds[i], OUTPUT);
  }
}

الگوی یک: موج ساده

void loop() {
  for (int i = 0; i < count; i++) {
    digitalWrite(leds[i], HIGH);
    delay(80);
    digitalWrite(leds[i], LOW);
  }
}

الگوی دو: رفت و برگشت

void loop() {
  for (int i = 0; i < count; i++) {          // رفت
    digitalWrite(leds[i], HIGH); delay(80);
    digitalWrite(leds[i], LOW);
  }
  for (int i = count - 2; i > 0; i--) {      // برگشت
    digitalWrite(leds[i], HIGH); delay(80);
    digitalWrite(leds[i], LOW);
  }
}

دقت کن برگشت از count - 2 شروع می‌شود و به i > 0 ختم می‌شود — وگرنه LEDهای دو سر دو بار پشت سر هم روشن می‌شوند و موج لنگ می‌زند.

الگوی سه: دنباله‌ی محوشونده

اگر LEDها را روی پایه‌های PWM ببندی، می‌توانی به‌جای خاموش‌کردن ناگهانی، نورشان را کم‌کم محو کنی — افکت خیلی نرم‌تری می‌دهد.

کنترل سرعت با پتانسیومتر

int speed = map(analogRead(A0), 0, 1023, 20, 300);
delay(speed);

پایه کم آوردی؟

برای هشت LED یا بیشتر، یک شیفت‌رجیستر 74HC595 بگذار: با سه پایه‌ی آردوینو، هشت خروجی می‌گیری.

موج نور را بساز 🌊

مقاله‌های دیگر

🤖

آردوینو چیست؟ راهنمای کامل برای شروع از صفر

بهترین شبیه‌ساز مدار آنلاین فارسی — چرا شبیه‌ساز، و چرا روبومیکر؟

💡

ساده‌ترین پروژه الکترونیک برای بچه‌ها: روشن‌کردن یک LED