Devreler

8x8x8 LED Küp Nasıl Yapılır ve Arduino ile Kontrol Edin: 7 Adım (Resimlerle)

3D Чудо куб 8x8x8 LED / Мега DIY набор!

3D Чудо куб 8x8x8 LED / Мега DIY набор!

İçindekiler:

Anonim

Instructables üzerinde çok sayıda LED küp var, peki neden bir başkası? Çoğu, 27 veya 64 LED'den oluşan küçük küpler içindir, mikrodenetleyicide bulunan çıkışlarla sınırlıdır, çünkü nadiren daha büyüktür. Bu küp 512 LED olacak ve Arduino'dan sadece 11 çıkış kablosuna ihtiyaç duyacak. Bu nasıl mümkün olabilir? Allegro Microsystems A6276EA LED sürücüsünü kullanarak.
Size küpün, kontrol panosunun ve nihayet parlamasını sağlayacak kodun nasıl yapıldığını göstereceğim.


Gereçler:

1. Adım: Malzemeler

Küpü oluşturmak için ihtiyacınız olan tüm parçalar:
Atmega168 veya daha yüksek çip ile 1 Arduino / Freeduino
512 LED, boyut ve renk size bağlı, 3mm kırmızı kullandım
Allegro'dan 4 A6276EA LED sürücü çipi
Gerilim akışını kontrol etmek için 8 NPN transistör, BDX53B Darlington transistör kullandım
4 1000 ohm direnç, 1/4 watt veya daha yüksek
12 560 ohm direnç, 1/4 watt veya daha yüksek
1 330uF elektrolitik kondansatör
4 24 pinli IC soketi
9 16 pinli IC soketleri
Tüm parçaları tutmak için 4 adet "x 4" (veya daha büyük) mafsal parçası,
Eski bir bilgisayar fanı
Eski bir disket denetleyici kablosu
Eski bir bilgisayar güç kaynağı
Birçok bağlantı teli, lehim, havya, akı, başka bir şey
Bunu yaparken hayatınızı kolaylaştırın.
LED lehim mastarının yapımında kullanılan 7 "x7" (veya daha büyük) odun parçası
Bitmiş küpünüzü görüntülemek için güzel bir durum
Tercihim Arduino / Freeduino, www.moderndevice.com adresinden Çıplak Kemikler Kurulu'dur (BBB). LED'ler eBay'den satın alındı ​​ve Çin'den gönderilen 1000 LED için 23 dolara mal oldu. Geri kalan elektronikler Newark Electronics'ten (www.newark.com) satın alındı ​​ve yalnızca 25 dolara mal oldu. Her şeyi satın almak zorunda kalırsanız, bu proje sadece 100 $ civarında bir maliyete mal olmalı.
Çok fazla eski bilgisayar donanıma sahibim, böylece bu parçalar hurda yığınından çıktı.

Adım 2: Katmanları Birleştir

Bu 512 LED küpün 1 katmanı (64 LED) nasıl yapılır:
Aldığım ledlerin çapı 3mm idi. Masrafları azaltmak için küçük LED'ler kullanmaya karar verdim ve küpün son boyutunu masamın veya rafın üzerine tamamen oturmadan masamda veya rafta oturacak kadar küçük kılmaya karar verdim.
Satır aralarında yaklaşık .6 inç olan 8x8'lik bir ızgara çizdim. Bu bana her tarafta yaklaşık 4,25 inç küp boyutunda oldu. Her katın lehimlerini yaparken LED'leri tutacak bir bağlantı yapmak için hatların birleştiği yerde 3 mm'lik delikler açın.
A6276EA mevcut bir lavabo cihazıdır. Bu, kaynak voltajına giden bir yol yerine toprağa giden bir yol sağladığı anlamına gelir. Küpü ortak anot konfigürasyonunda oluşturmanız gerekecektir. Çoğu küp ortak katot olarak üretilmiştir.
LED'in uzun tarafı genellikle anoddur, emin olmak için kendinize bakın. Yaptığım ilk şey her LED'i test etmekti. Evet, uzun ve sıkıcı bir süreçtir ve isterseniz atlayabilirsiniz. LED'leri test etmek için zamanımı harcamayı tercih ederim, montajdan sonra küpümde ölü bir yer bulmak. 1000'den 1 ölü LED buldum. Fena değil.
11 adet katı, yalıtılmamış kanca telini 5 inç kesin. Jig'inizin her bir ucuna 1 LED yerleştirin ve ardından teli her bir anoda lehimleyin. Şimdi kalan 6 LED'i sıraya yerleştirin ve bu anotları kabloya lehimleyin. Bu dikey veya yatay olabilir, tüm katmanları aynı şekilde yaptığınız sürece farketmez. Her satırı bitirdiğinizde, fazla ucu anotlardan kesin. 1/8 "'den ayrıldım.
8 satırı da tamamlayana kadar tekrarlayın. Şimdi hepsini tek bir parçaya bağlamak için yaptığınız sıralardaki 3 parça kanca telini lehimleyin. Daha sonra 5 volt takarak katmanı test ettim.
tel ızgarayı bir rezistörden geçirin ve topraklama kablosuna her katoda dokunun. Yanmayan ışıkları değiştirin.
Katmanı jigden dikkatlice çıkarın ve bir kenara koyun. Kabloları bükerseniz endişelenmeyin, mümkün olduğu kadar düzleştirin. Bükülmesi çok kolaydır. Fotoğraflarımdan da anlayabileceğiniz gibi, çok fazla bükülmüş tel vardı.
Tebrikler, 1/8 bitti. 7 kat daha yapın.
İSTEĞE BAĞLI: Katmanları birlikte lehimlemeyi kolaylaştırmak (3. Adım), daha sonraki her katman hala perdede iken, katodun üst çeyrek inçini 45 ila 90 derece öne doğru bükün. Bu izin verecektir
bağlı olduğu LED'in etrafına ulaşmasını sağlar ve lehimlemeyi çok daha kolay hale getirir. Bunu ilk katmanınıza yapmayın, birinin alt katman olduğunu ve potansiyel müşterilerin düz olması gerektiğini ilan edeceğiz.

Adım 3: Küpü Birleştirin

Bir küp yapmak için tüm katmanları birlikte lehimleme:
Zor kısım neredeyse bitmek üzere. Şimdi, dikkatlice bir tabakayı tekrar oyuğa yerleştirin, ancak çok fazla baskı kullanmayın, bükmeden çıkartabilmek istiyoruz. Bu ilk katman küpün üst yüzüdür. İlki üzerine başka bir katman yerleştirin, uçları hizalayın ve lehimlemeye başlayın. Önce köşeleri, sonra dış kenarını, sonra sıraların içini açmayı en kolay buldum.
Tamamlanana kadar katman eklemeye devam edin. Uçları önceden büktüyseniz katmanı düz uçlar için son olarak kaydettiğinizden emin olun. Bu dip.
Her katman arasında biraz fazla boşluk vardı, bu yüzden küp şekli almadım. Önemli bir şey değil, onunla yaşayabilirim.

Adım 4: Denetleyici Kartı Oluşturma

Denetleyici anakartı nasıl oluşturulur ve Arduino'nuza nasıl bağlanır:
Şemayı izleyin ve kartı istediğiniz gibi yapın. Kontrolör çiplerini panelin ortasına yerleştirdim ve sol tarafını, küpün her katmanına akımı kontrol eden transistörleri tutmak için kullandım ve kontrolör çiplerinden katotlara giden konnektörleri tutmak için sağ tarafı kullandım. LED sütunlar.
Bir bilgisayar güç kaynağına takmak için dişi molex konektörlü eski bir 40mm bilgisayar fanı buldum. Bu mükemmeldi. Yonga boyunca az miktarda hava akışı yararlıdır ve artık kontrolör çiplerine ve Arduino'nun kendisine 5 volt sağlamak için kolay bir yolum var.
Şematikte, RC her A6276EA'ya bağlı tüm LED'ler için akım sınırlayıcı dirençtir. 1000 ohm kullandım çünkü ışığa yetecek kadar LED'e 5 miliamper sağlıyor. Super Brite LED'leri değil, Yüksek Parlaklık kullanıyorum, bu nedenle mevcut drenaj daha düşük. Bir sütundaki 8 LED'in tümü aynı anda yanıyorsa, yalnızca 40 miliamperdir. A6276EA'nın her çıktısı 90 miliamperi kaldırabilir, bu yüzden menzil içindeyim.
RL, mantığa veya sinyal uçlarına bağlı dirençtir. Gerçek değer, var olduğu ve çok büyük olmadığı sürece çok önemli değildir. 560 ohm kullanıyorum çünkü bir sürü elimde mevcut.
Küpün her katmanına giden akımı kontrol etmek için 6 ampere kadar taşıma kapasitesine sahip bir güç transistörü kullandım. Küpün her bir katmanı tüm LED'lerin yanması ile sadece 320 miliamp alacağından, bu proje için fazla önemlidir. Odanın büyümesini istedim ve daha sonra daha büyük bir şey için kontrol panosunu kullanabilirdim. Transistör ne boyutta olursa olsun ihtiyaçlarınıza uygun kullanın.
Gerilim kaynağı üzerindeki 330 uF kapasitör küçük voltaj dalgalanmalarının düzeltilmesine yardımcı olmak için oradadır. Eski bir bilgisayar güç kaynağı kullandığımdan, bu gerekli değil, ancak birinin küplerini beslemek için 5 voltluk bir duvar adaptörü kullanmak istemesi durumunda bıraktım.
Her A6276EA denetleyici yongasının 16 çıkışı vardır. Başka uygun konektörüm yoktu, bu yüzden bazı 16 pinli IC soketlerine lehimlenen uçları tuttum ve denetleyici anakartı küpe bağlamak için bunları kullanacağım. Ayrıca bir IC soketini ikiye böldüm ve transistörleri küp tabakalarına bağlayan 8 kabloyu bağlamak için kullandım.
Arduino'nun konektörü olarak kullanmak için eski bir disket kablosunun ucundan yaklaşık 5 inç kestim. Disket kablosu 20 pim 2 sıradır, çıplak Kemikler Kurulu 18 pimdir. Bu Arduino'yu tahtaya bağlamak için çok ucuz bir yoldur (ücretsiz). Şerit kabloyu 2 telli gruplar halinde ayırdım, uçlarını çıkardım ve lehimledim. Bu, Arduino'yu konektörün her iki sırasına takmanıza olanak tanır. Şemayı izleyin ve konnektörü yerine lehimleyin. Arduino'ya güç sağlamak için konnektörün 5 volt ve topraklama kablolarını lehimlemeyi unutmayın.
Bu kontrol panosunu diğer projeler için de kullanmak istiyorum, böylece modüler tasarım benim için iyi sonuç veriyor. Bağlantıları sabitlemek istiyorsanız, sorun değil.

Adım 5: Vitrin Oluşturun

Son ürününüzün güzel görünmesini sağlayın:
Bu tahta sandığı Hobby Lobby'de 4 dolara buldum ve içerde bütün teli tutacak kadar boşluk olduğu ve mükemmel göründüğü için mükemmel olacağını düşündüm. Bunları kırmızıya boyadım, bilgisayar masamda kullandığım aynı lekeyi uydurdum, böylece uyuştular.
Lehimleme aparatı için kullanılan ızgara ile aynı boyutta bir ızgara çizin (çizgiler arasında .6 inç). Kabloların üst kısımdan geçmesine izin vermek için delikler açın ve tabaka / düzlem teller için ızgaranın arkasında başka bir delik açın (Adım 4'teki transistörlerden). 64 ipucunu sıralamaya çalışmanın küçük deliklerden geçmenin zor olduğunu öğrendim. Sonunda, süreci daha hızlı hale getirmek için tüm delikleri biraz daha büyütmeye karar verdim. 2'lik bir matkap ucu kullanarak bitirdim.
Küp ekranın üstüne oturduğundan, köşe uçlarını bükün, böylece kabloları bağlarken küpün yerinde kalmasını sağlar. Tüm kabloları doğru sırayla bağladığınızdan emin olun.
1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64
Ve kabloları katmanlara (şematik üzerinde 'düzlemler' etiketli) ve transistörlere bağlayın. Arduino pin 6'daki transistör küpün üst katmanıdır.
Kabloları yanlış alırsanız, kod içinde biraz düzeltilebilir, ancak çok fazla iş gerektirebilir, bu nedenle doğru sırayla almayı deneyin.
Tamam, her şey inşa edildi ve gitmeye hazır, biraz kod alalım ve deneyelim.

Adım 6: Kod

Bu küp için kod çoğu farklı yapılır, nasıl uyarlanacağını açıklayacağım.
Çoğu küp kodu sütunlara doğrudan yazma kullanır. Kod, Sütun X'in yanması gerektiğini söylüyor, bu yüzden biraz meyve suyu verin ve işimiz bitti. Denetleyici yongaları kullanırken bu işe yaramaz.
Denetleyici yongaları Arduino ile konuşmak için 4 kablo kullanır: SPI-in, Clock, Latch ve Enable. Etkinleştirme pimini (pim 21) bir direnç (RL) ile toprakladım, böylece çıkış her zaman etkin hale geldi. Enable'ı hiç kullanmadım, bu yüzden koddan çıkardım. SPI girişi, Arduino'dan gelen veridir, Saat konuşurken ikisi arasında bir zamanlama sinyalidir ve Latch, denetleyiciye yeni verileri kabul etme zamanının geldiğini söyler.
Her çip için her çıkış, 16 bit ikili sayı ile kontrol edilir. Örneğin; 1010101010101010'un denetleyiciye gönderilmesi, denetleyicideki diğer her ışığın yanmasına neden olur. Kodunuz, bir ekran için gereken her şeyi çalıştırmalı ve bu ikili sayıyı oluşturmalı, daha sonra çipi göndermelidir. Göründüğünden daha kolay. Teknik olarak bir bit bit eklemesi var, ancak bit bit matematiği berbat hissediyorum, bu yüzden her şeyi ondalık olarak yapıyorum.
İlk 16 bit için ondalık sayı:
1 << 0 == 1
1 << 1 == 2
1 << 2 == 4
1 << 3 == 8
1 << 4 == 16
1 << 5 == 32
1 << 6 == 64
1 << 7 == 128
1 << 8 == 256
1 << 9 == 512
1 << 10 == 1024
1 << 11 == 2048
1 << 12 == 4096
1 << 13 == 8192
1 << 14 == 16384
1 << 15 == 32768
Bu, 2 ve 10 çıkışlarını aydınlatmak istiyorsanız, 514 elde etmek için ondalık basamakları (2 ve 512) birlikte eklersiniz. Kontrol cihazına 514 gönderin ve 2 ve 10 çıkışları yanacaktır.
Ancak 16'dan fazla LED'imiz var, bu yüzden biraz zorlaşıyor. 4 çip için ekran bilgisi oluşturmamız gerekiyor. Bu 1 için inşa etmek kadar kolay, sadece 3 kez daha yapın. Kontrol kodlarını tutmak için global bir değişken dizisi kullanıyorum. Sadece bu şekilde daha kolay.
4 ekran kodunun tümünü göndermeye hazır olduktan sonra, mandalı bırakın (DÜŞÜK olarak ayarlayın) ve kodları göndermeye başlayın. Önce sonuncuyu göndermelisin. Çip 4, sonra 3, ardından 2, ardından 1 kodlarını gönderin, sonra Mandalı tekrar YÜKSEK olarak ayarlayın. Enable pin her zaman toprağa bağlı olduğundan, ekran hemen değiştirilir.
Instructables'ta ve genelde web'de gördüğüm çoğu küp kodu, önceden ayarlanmış bir animasyon yapmak için ayarlanmış dev bir kod bloğundan oluşur.Bu küçük küpler için gayet iyi çalışır ancak ekranı değiştirmek istediğiniz her seferinde 512 bit ikili depolamak, okumak ve göndermek zorunda kalırsanız, çok fazla bellek harcar. Arduino birkaç kareden daha fazlasını kaldıramadı. Bu yüzden, küpü önceden belirlenmiş animasyonlardan ziyade hesaplamaya dayanan hareket halinde göstermek için bazı basit fonksiyonlar yazdım. Nasıl yapıldığını göstermek için küçük bir animasyon ekledim, ancak kendi ekranlarınızı oluşturmak için size bırakacağım.
cube8x8x8.pde, Arduino kodudur. Kodları eklemeye devam etmeyi planlıyorum ve programı düzenli aralıklarla güncelleyeceğim.
matrix8x8.pde kendi ekranlarınızı oluşturmak için İşleme alanında bir programdır. Verilen ilk sayı, pattern1 'e, ikincisi pattern2 ' a, vb. Gider.
A6276EA'nın veri sayfası şurada mevcuttur:
http://www.allegromicro.com/en/Products/Part_Numbers/6276/6276.pdf

Adım 7: El İşinizi Gösterin

Bitirdiniz, şimdi küpünüzün tadını çıkarma zamanı.


Gördüğünüz gibi, küpüm biraz çarpık çıktı. Başka bir bina yapmak konusunda çok hevesli değilim, bu yüzden çarpık olarak yaşayacağım. Bakmam gereken birkaç ölü nokta var. Kötü bir bağlantı olabilir veya yeni bir denetleyici yongasına ihtiyacım olabilir.
Umarım bu Eğitilebilirlik, A6276AE'yi kullanarak kendi küpünüzü ya da başka bir LED projenizi yaratmanız için size ilham verir. Bir derleme yaparsanız yorumlarda bir bağlantı gönderin.
Buradan nereye gideceğime karar vermeye çalışıyorum. Kontrol panosu ayrıca 4x4x4 RGB küpü de kontrol edecektir, bu nedenle bu bir olasılık. Bir küre yapmanın ve kodumu yazmamın bir yolu olmazsa olmazdı diye düşünüyorum.