Yazılardaki ürünleri komponentci.net'te inceleyebilir, hemen sipariş verebilirsiniz.komponentci.net →
KomponentciBlog Mağaza
Blog  ›  Projeler

4x4x4 LED Küp Yapımı: Arduino ile Adım Adım

4x4x4 LED Küp Yapımı: Arduino ile Adım Adım
Kısa cevap

4x4x4 LED küp, 64 LED'in 16 sütun ve 4 katman hâlinde lehimlenip Arduino ile sürülmesiyle yapılır. Her sütunun anotları bir pine, her katmanın katotları bir transistöre bağlanır; böylece 64 LED yalnızca 20 pinle yönetilir. Arduino katmanları çok hızlı sırayla yakar ve göz hepsini aynı anda yanıyor görür.

LED küp, bilim şenliklerinde en çok ilgi gören projelerden biridir. Bu yazıda 64 LED'li 4x4x4 bir küpü Arduino Uno ile adım adım yapıyoruz. Sütun ve katman mantığını, lehim şablonunu, transistörlü katman sürmeyi ve hazır kodu anlatıyoruz. Proje lehim gerektirir; meslek lisesi ve lise öğrencileri için uygundur.

LED küp nedir?

LED küp, LED'lerin üç boyutlu bir ızgara hâlinde dizildiği ve bir mikrodenetleyiciyle ışık desenleri gösterdiği bir elektronik projedir. 4x4x4 küpte her kenarda 4 LED vardır; toplam 4 × 4 × 4 = 64 LED kullanılır. Küp; yağmur, dalga ve katman katman yükselen ışık gibi animasyonlar gösterebilir.

Projenin asıl öğrettiği konu multiplexing, yani çoklamadır. Çoklama, az sayıda kabloyla çok sayıda LED'i sırayla ve çok hızlı yakma yöntemidir. Aynı yöntem dijital saatlerde ve LED panolarda da kullanılır.

LED küp nasıl çalışır?

LED küp, 16 dikey sütun ve 4 yatay katmandan oluşur; bir LED'in yanması için onun sütununa artı, katmanına eksi verilmesi gerekir. Her sütundaki 4 LED'in anotları (uzun bacak) birbirine lehimlenir. Her katmandaki 16 LED'in katotları (kısa bacak) da birbirine lehimlenir.

BölümSayıNeye bağlanır?Arduino pinleri
Sütun (anotlar)16330 Ω direnç üzerinden Arduino pinineD0-D13, A0, A1
Katman (katotlar)42N2222 transistörün kolektörüneA2-A5 (1 kΩ ile tabana)
Toplam64 LED16 + 4 = 20 bağlantıUno'nun 20 pininin hepsi
4x4x4 LED küp yapısı: üstten görünüşte 16 sütun S1-S16 sırasıyla D0-D13, A0 ve A1 pinlerine 330 Ω dirençle bağlı; yandan görünüşte dört katmanın katotları birer 2N2222 transistörle GND'ye bağlı, tabanları 1 kΩ ile K1 için A2, K2 için A3, K3 için A4, K4 için A5 pinine bağlı; katmanlar 2 ms sırayla yanar, küp saniyede 125 kez çizilir
64 LED yalnızca 20 pinle sürülür: 16 sütun anotları dirençle pinlere, 4 katmanın katotları transistörle GND'ye bağlanır.

Arduino önce 1. katmanı açar ve o katmanda yanacak sütunlara HIGH verir. 2 ms sonra katmanı kapatıp 2. katmana geçer. Dört katman 8 ms'de biter, yani küp saniyede 125 kez baştan çizilir. Göz bu hızı ayırt edemez; buna görme sürekliliği denir. Her LED zamanın yalnızca dörtte birinde yandığı için küp tek bir LED'e göre biraz daha sönük görünür.

Hangi malzemeler gerekir?

4x4x4 LED küp için bir Arduino Uno, 64 LED, 16 adet 330 Ω direnç, 4 adet 2N2222 transistör, 4 adet 1 kΩ direnç ve bir delikli plaket gerekir.

Malzeme listesi

MalzemeAdetNe işe yarar?
Arduino UNO R31Katmanları sırayla yakar, animasyonu çalıştırır
5 mm şeffaf kırmızı LED (10'lu paket)7 paketKüpün 64 LED'i ve birkaç yedek
330 Ω direnç (10'lu paket)2 paket16 sütunun akımını sınırlar
2N2222 NPN transistör4Her katmanın katotlarını toprağa bağlar
1 kΩ direnç (10'lu paket)1 paketTransistör tabanının akımını sınırlar
10x10 cm delikli plaket1Küp ve dirençler üzerine lehimlenir

Bunların yanında havya, lehim teli, kesme pense, ince tek damarlı kablo ve jumper kablo gerekir. Lehim tekniği için lehim nasıl yapılır yazısına bakabilirsiniz.

LED küp adım adım nasıl yapılır?

LED küp, önce bir lehim şablonu hazırlanıp dört katman ayrı ayrı lehimlenerek, sonra katmanlar üst üste birleştirilip plakete bağlanarak yapılır.

  1. LED testi: 64 LED'in her birini pil ve dirençle tek tek deneyin. Lehimlendikten sonra bozuk LED'i değiştirmek zordur.
  2. Lehim şablonu: Bir tahta ya da kalın karton parçasına 4x4 düzende 16 delik açın. Delikler arası 2 cm olsun, delik çapı LED'in sıkıca oturacağı kadar (5 mm) olsun.
  3. Katman lehimi: 16 LED'i şablona ters (başı aşağı) yerleştirin. Katot bacaklarını 90° bükün ve komşu LED'in katoduna değecek şekilde sırayla lehimleyin. Dört sırayı uçlarından tek bir düz telle birbirine bağlayın. Anot bacakları dik kalsın.
  4. Dört katman: Aynı işlemi dört kez yapın. Her katmanı pil ve dirençle test edin: katot ağına eksi, sırayla her anoda artı verin.
  5. Katmanları birleştirme: Bir katmanı plakete dikin. Bir sonraki katmanı 2 cm yukarıda tutup her anodu alttaki LED'in anoduna lehimleyin. Bu adımı dört katman için tekrarlayın.
  6. Sütun dirençleri: En alttaki 16 anot plaketin deliklerinden geçer. Her birini bir 330 Ω dirençle Arduino pinine giden kabloya bağlayın.
  7. Katman bağlantısı: Her katmanın katot ağından aşağı bir kablo indirin. Bu kabloyu o katmanın 2N2222 kolektörüne bağlayın. Emitörler GND'ye, tabanlar 1 kΩ dirençle A2-A5 pinlerine bağlanır.
  8. Kod: Aşağıdaki kodu yükleyin.
// 4x4x4 LED küp: 16 sütun (anot) + 4 katman (katot, 2N2222 ile)
const byte sutun[16] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, A0, A1};
const byte katman[4] = {A2, A3, A4, A5};
uint16_t kare[4];  // her katman için 16 bit: 1 = LED yanar

void setup() {
  for (byte i = 0; i < 16; i++) pinMode(sutun[i], OUTPUT);
  for (byte k = 0; k < 4; k++) pinMode(katman[k], OUTPUT);
}

// Katmanları sırayla 2 ms yakar; "sure" ms boyunca tekrarlar
void goster(unsigned long sure) {
  unsigned long bas = millis();
  while (millis() - bas < sure) {
    for (byte k = 0; k < 4; k++) {
      for (byte i = 0; i < 16; i++) digitalWrite(sutun[i], bitRead(kare[k], i));
      digitalWrite(katman[k], HIGH);
      delay(2);
      digitalWrite(katman[k], LOW);
    }
  }
}

void loop() {
  for (byte k = 0; k < 4; k++) {         // katmanlar alttan üste
    for (byte j = 0; j < 4; j++) kare[j] = 0;
    kare[k] = 0xFFFF;
    goster(300);
  }
  for (byte n = 0; n < 30; n++) {        // rastgele yanıp sönme
    for (byte j = 0; j < 4; j++) kare[j] = random(0, 65536);
    goster(120);
  }
}

Kodda her katman 16 bitlik bir sayıyla gösterilir. 0xFFFF katmanın 16 LED'inin hepsini yakar, 0 hepsini söndürür. Bit 0, birinci sütun (D0) demektir. Kendi desenlerinizi bu sayıları değiştirerek çizebilirsiniz. D0 ve D1 aynı zamanda seri haberleşme pinleridir; kod yüklenmezse bu iki kabloyu yükleme sırasında çıkarın.

Katmanları neden transistör sürer?

Katmanları transistör sürer, çünkü bir katmanda 16 LED aynı anda yanınca toplam akım tek bir Arduino pininin kaldırabileceğinden çok fazladır. Kırmızı LED'in gerilimi yaklaşık 2 V'tur. Bir sütundan geçen akım (5 − 2 − 0,2) / 330 ≈ 8,5 mA olur; buradaki 0,2 V transistörün üzerinde düşen gerilimdir.

Bir katmanda 16 LED yanarsa akım 16 × 8,5 ≈ 136 mA olur. Bir Arduino pini için önerilen en yüksek akım 20 mA'dir; 136 mA bunun çok üstündedir. 2N2222 ise 600 mA'e kadar akım taşıyabilir. Transistörün tabanına 1 kΩ üzerinden yaklaşık (5 − 0,7) / 1.000 ≈ 4,3 mA verilir; bu, transistörü tam iletime sokmaya yeter. Transistörün anahtar gibi çalışmasını transistör nedir yazısında anlattık.

Hangi güvenlik kurallarına dikkat edilmeli?

Küp 5 V ile çalışır ve güvenlidir; asıl dikkat edilecek konu lehimdir.

  • Küpü yalnızca bilgisayarın USB çıkışından ya da USB powerbank'tan besleyin. 220V şebeke elektriğine hiçbir parça bağlamayın.
  • Havya 220V ile çalışır ve ucu 300 °C'yi geçer. Fişini bir yetişkin taksın; lehimi öğretmen ya da yetişkin gözetiminde yapın.
  • Havyayı her zaman sehpasına koyun. Göz için koruyucu gözlük takın, lehim dumanını solumayın ve odayı havalandırın.
  • Kurşunlu lehim kullandıysanız işten sonra ellerinizi sabunla yıkayın; çalışırken bir şey yiyip içmeyin.
  • Pille test yaparken pilin uçlarını kısa devre etmeyin; ısınan pili hemen çıkarın.

Ödevinizi nasıl sunarsınız?

Ödevinizi, küpün çalışmasını gösterip çoklama ve görme sürekliliği kavramlarını basit bir deneyle açıklayarak sunabilirsiniz.

  • Kavram: 64 LED'i ayrı ayrı bağlamak 64 pin isterdi; çoklamayla 20 pin yetiyor. Bunu bir şemayla gösterin.
  • Deney: Koddaki delay(2) değerini 2, 10, 50 ve 100 yapın. Hangi değerde titreşimin göze görünmeye başladığını not edin.
  • Hesap: Her değer için küpün saniyede kaç kez çizildiğini hesaplayın: 1.000 / (4 × gecikme). 2 ms için 125, 10 ms için 25 kez.
  • Animasyon: Kendi tasarladığınız bir deseni (harf, kalp, yağmur) koda ekleyip gösterin.

Sunumda küpü karanlık bir köşede ya da siyah bir kutunun içinde gösterin; desenler çok daha iyi görünür. Farklı renkler için diyot ve LED kategorisine bakabilirsiniz.

Sık sorulan sorular

LED küp için kaç pin gerekir?

4x4x4 LED küp, 16 sütun ve 4 katman için toplam 20 pin gerektirir. Arduino Uno'da D0-D13 ve A0-A5 ile tam 20 kullanılabilir pin vardır; bu yüzden ek entegre olmadan yapılabilir. Daha büyük küplerde (8x8x8) pin yetmez; o zaman 74HC595 gibi kaydırma yazmacı (shift register) entegreleri kullanılır. Bu entegreler üç pinle çok sayıda çıkışı sürer.

Neden bazı LED'ler yanmıyor?

Bir LED yanmıyorsa büyük ihtimalle ters lehimlenmiştir ya da lehimi soğuk kalmıştır. Bütün bir sütun yanmıyorsa o sütunun direncini ve Arduino kablosunu kontrol edin. Bütün bir katman yanmıyorsa o katmanın transistörünü, 1 kΩ taban direncini ve katot ağından inen kabloyu kontrol edin. Soğuk lehim mat ve pürüzlü görünür; havyayla yeniden ısıtın.

Mavi ya da beyaz LED kullanabilir miyim?

Evet, mavi ya da beyaz LED de kullanabilirsiniz; ancak bunların gerilimi yaklaşık 3 V'tur ve aynı dirençle daha az akım çekerler. 330 Ω ile akım yaklaşık (5 − 3 − 0,2) / 330 ≈ 5,5 mA olur; küp biraz daha sönük yanar. Daha parlak isterseniz 220 Ω direnç kullanın. Bütün küpte aynı renk ve aynı paketten LED kullanmak parlaklığı eşit tutar.

LED küp pille çalışır mı?

Evet, kod yüklendikten sonra küp bir USB powerbank ile çalışır; en kolay ve güvenli yol budur. Küp en fazla yaklaşık 140 mA çeker; Arduino'nun kendi tüketimiyle birlikte toplam 200 mA'in altında kalır. Pil kutusu kullanacaksanız 4 kalem pili (6 V) Arduino'nun 5V pinine doğrudan bağlamayın; bu pin regüleli 5 V ister.

Lehim şablonu neden gerekli?

Lehim şablonu, 16 LED'i katman lehimlenirken düzgün aralıklarla ve dik tutmak için gereklidir. Şablonsuz lehimlenen katmanlar eğri olur ve üst üste konunca anot bacakları birbirini tutmaz. Aynı şablonla yapılan dört katman birbirinin aynısı olur. Şablondaki delikleri bir cetvel ve kalemle önceden işaretleyip sonra delin.

Özet

  • 4x4x4 LED küp 64 LED'den oluşur: 16 sütun ve 4 katman.
  • Sütunlar 330 Ω ile D0-D13, A0 ve A1'e; katmanlar 2N2222 ile A2-A5'e bağlanır.
  • Arduino katmanları 2'şer ms sırayla yakar; küp saniyede 125 kez çizilir.
  • Bir katmanda en fazla 136 mA akar; bu yüzden katmanı pin değil transistör sürer.
  • Lehim şablonu katmanları düzgün yapar; lehimi yetişkin gözetiminde yapın.
  • Ödevde gecikmeyi değiştirip görme sürekliliğini deneyle gösterin.

Bu yazıdaki ürünler

Diğer yazılar