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