🌊 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 بگذار: با سه پایهی آردوینو، هشت خروجی میگیری.
موج نور را بساز 🌊