Arduino MEGA 2560 ile 24 LED Knight Rider Display

guclusat

Tanınmış Üye
Süper Moderatör
Arduino MEGA 2560 kullanılarak 24 adet LED ile Knight Rider tarzı kayan ışık efekti oluşturulmuştur. LED'lerin her biri Arduino'nun ayrı bir dijital çıkışından kontrol edilir.

Bu projede Arduino MEGA'nın 30–51 numaralı pinleri kullanılarak toplam 24 LED doğrudan sürülmektedir. Her LED, akımı sınırlamak için seri bir direnç üzerinden Arduino pinine bağlanmıştır.

Arduino UNO'nun dijital pin sayısı 24 LED'i doğrudan kontrol etmek için yeterli olmadığından, bu uygulamada MEGA 2560 tercih edilmiştir. UNO ile benzer bir sistem oluşturmak için PCF8574 gibi I/O genişletici entegreler kullanılabilir.

Malzeme​

AdetMalzeme
1Arduino MEGA 2560
24LED
24LED seri direnç
1Breadboard
1Jumper kablo seti

Kullanılan Arduino Pinleri​

D30 – D51 → 24 adet LED

LED'ler sırayla ileri ve geri hareket ettirilerek klasik Knight Rider tarama efekti oluşturulur.

Knight-Rider-with-24-LEDs.png

24 LED Knight Rider Display Circuit Using Arduino MEGA​


Bu projede Arduino MEGA 2560 kullanılarak 24 LED'lik Knight Rider LED gösterge devresi oluşturulmaktadır.


24 LED, Arduino MEGA'nın dijital çıkışlarına bağlanarak sırayla yakılır. LED ışığı bir uçtan diğer uca doğru ilerler ve ardından ters yönde geri dönerek klasik Knight Rider kayan ışık efekti oluşturur.


Devrenin kontrolü Arduino üzerinde çalışan Knight Rider Sketch ile yapılmaktadır. LED'lerin ilerleme hızı ve çalışma şekli yazılım üzerinden değiştirilebilir.

Kullanılan pinler: Arduino MEGA D30–D51
LED sayısı:
24 adet

Arduino Knight Rider Sketch​

Aşağıdaki Arduino programı 24 LED'i sırayla ileri ve geri hareket ettirerek Knight Rider efektini oluşturmak için kullanılabilir.

Kod:
const int delay_ms = 50;

void setup() {
  int i;
 
  for (i = 30; i <= 53; i++) {
    pinMode(i, OUTPUT);    // set pins as outputs
    digitalWrite(i, LOW);  // switch the output pins off
  }
}

boolean forward = true;    // LED direction flag
int pin_num;

void loop() {
 
  if (forward) {  // LEDs left to right
    for (pin_num = 30; pin_num <= 53; pin_num++) {
      digitalWrite(pin_num, HIGH);
      delay(delay_ms);
      digitalWrite(pin_num, LOW);
    }
    forward = false;
  }
  else {          // LEDs right to left
    for (pin_num = 53; pin_num >= 30; pin_num--) {
      digitalWrite(pin_num, HIGH);
      delay(delay_ms);
      digitalWrite(pin_num, LOW);
    }
    forward = true;
  }
}

LED Hareket Hızı Ayarı​

Knight Rider efektinin hareket hızı, Arduino kodunun başında bulunan delay_ms değeri değiştirilerek ayarlanabilir.
  • delay_ms değeri küçültülürse: LED'ler daha hızlı hareket eder.
  • delay_ms değeri büyütülürse: LED'ler daha yavaş hareket eder.
Örneğin:
int delay_ms = 50;
değerini 20 yaparsanız efekt hızlanır, 100 yaparsanız yavaşlar.
 
Son düzenleme:
Geri
Yukarı