Image

Yaratıcı laboratuvar → Rastgele Yumuşak Şekilde Birkaç LED'in Açılması

Yayın tarihi: 05.09.2024

Rastgele Yumuşak Şekilde Birkaç LED'in Açılması


Arduino Kodu:

const int ledCount = 6; // LED sayısı
const int ledPins[ledCount] = {3, 5, 6, 9, 10, 11}; // LED'lerin bağlı olduğu pinler
int brightness[ledCount]; // LED'lerin mevcut parlaklık değerlerini saklamak için dizi
int fadeDirection[ledCount]; // Parlaklık değişim yönü
int speed = 10; // Parlaklık değişim hızı (küçükse daha hızlı)
unsigned long previousMillis = 0; // Son güncelleme zamanını saklar

void setup() {
  // Pinleri çıkış olarak ayarlama
  for (int i = 0; i < ledCount; i++) {
    pinMode(ledPins[i], OUTPUT);
    brightness[i] = 0; // Başlangıç parlaklığı 0
    fadeDirection[i] = random(1, 3) == 1 ? 1 : -1; // Rastgele yön belirleme
  }
}

void loop() {
  unsigned long currentMillis = millis();

  // Parlaklığı güncellemek için yeterli zaman geçip geçmediğini kontrol et
  if (currentMillis - previousMillis >= speed) {
    previousMillis = currentMillis;

    // Her LED'in parlaklığını yumuşak şekilde değiştirme
    for (int i = 0; i < ledCount; i++) {
      brightness[i] += fadeDirection[i] * random(1, 6); // Parlaklıkta rastgele bir adımla değişim

      // Sınırları kontrol et
      if (brightness[i] >= 255) {
        brightness[i] = 255; // Maksimum parlaklık
        fadeDirection[i] = -1; // Yön değiştir
      } else if (brightness[i] <= 0) {
        brightness[i] = 0; // Minimum parlaklık
        fadeDirection[i] = 1; // Yön değiştir
      }

      // LED parlaklığını ayarla
      analogWrite(ledPins[i], brightness[i]);
    }
  }
}

Bu örnek, LED'leri rastgele bir sırayla yumuşak şekilde açıp kapatmak için PWM (Pulse Width Modulation) kullanır. Dikkat edilmesi gereken nokta, LED'lerin Arduino Nano üzerindeki PWM pinlerine bağlı olması gerektiğidir.





No Comments Yet