Potansiyometre Kontrollü Yürüyen Işık

/*
 * Proje: Potansiyometre Kontrollü 5 LED'li Yürüyen Işık (Knight Rider Efekti)
 * Amaç: Potansiyometre ile LED'lerin yürüme hızını ayarlamak.
 *
 * Bağlantılar:
 * - Potansiyometre Orta Bacağı: Arduino Analog Pin A0
 * - Potansiyometre Dış Bacakları: 5V ve GND
 * - LED'ler (220 Ohm direnç üzerinden): Arduino Dijital Pinler 2, 3, 4, 5, 6
 * - LED'lerin Katot Bacakları: GND
 */

// 5 LED'in bağlı olduğu dijital pinleri tanımlıyoruz
const int ledPins[] = {2, 3, 4, 5, 6};
const int ledCount = 5;

// Potansiyometrenin bağlı olduğu analog pini tanımlıyoruz
const int potPin = A0;

// Gecikme süresini (hızı) tutacak değişken
int delayTime = 0;

void setup() {
  // Tüm LED pinlerini ÇIKIŞ (OUTPUT) olarak ayarlıyoruz
  for (int i = 0; i < ledCount; i++) {
    pinMode(ledPins[i], OUTPUT);
  }

  // İsteğe bağlı: Hata ayıklama ve değerleri izlemek için Seri Monitörü başlatın
  // Serial.begin(9600);
}

void loop() {
  // 1. Potansiyometre Değerini Oku
  // Analog okuma değeri 0 ile 1023 arasında olacaktır.
  int potValue = analogRead(potPin);

  // 2. Analog Değeri Gecikme Süresine (Milisaniye) Dönüştür (Mapping)
  // 'map' fonksiyonu, 0-1023 değerini 10ms (hızlı) ile 500ms (yavaş) arasına çevirir.
  // Bu aralıkları (10 ve 500) kendi zevkinize göre değiştirebilirsiniz.
  delayTime = map(potValue, 0, 1023, 10, 500);

  /*
  // Seri Monitörde değerleri göstermek isterseniz bu satırların başındaki // işaretlerini kaldırın:
  Serial.print("Potansiyometre (0-1023): ");
  Serial.print(potValue);
  Serial.print(" | Gecikme Suresi (ms): ");
  Serial.println(delayTime);
  */


  // --- Yürüyen Işık Efekti Başlangıcı ---

  // A) İLERİ YÖN (2 -> 3 -> 4 -> 5 -> 6)
  for (int i = 0; i < ledCount; i++) {
    digitalWrite(ledPins[i], HIGH); // LED'i yak
    delay(delayTime);              // Ayarlanan süre kadar bekle
    digitalWrite(ledPins[i], LOW);  // LED'i söndür
  }

  // B) GERİ YÖN (6 -> 5 -> 4 -> 3 -> 2) (Knight Rider Efekti)
  // i=ledCount-2 (yani 4. index, pin 5) ile başlar ve i > 0 (yani pin 3) olana kadar döner.
  // Bu, pin 2 (ilk LED) ve pin 6'nın (son LED) iki kez üst üste yanmasını engeller.
  for (int i = ledCount - 2; i > 0; i--) {
    digitalWrite(ledPins[i], HIGH); // LED'i yak
    delay(delayTime);              // Ayarlanan süre kadar bekle
    digitalWrite(ledPins[i], LOW);  // LED'i söndür
  }
}


Buna da gözat

Arduino Hareket Sensörü ile LED Yakma

Hareket Sensörü (PIR) Nedir? PIR (Pasif Kızılötesi) Sensörü, çevredeki nesnelerin yaydığı kızılötesi (ısı) seviyelerindeki değişiklikleri ölçerek …