İçindekiler:

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

Video: 8x8x8 LED Küp Nasıl Yapılır ve Arduino İle Kontrol Edilir: 7 Adım (Resimlerle)

Video: 8x8x8 LED Küp Nasıl Yapılır ve Arduino İle Kontrol Edilir: 7 Adım (Resimlerle)
Video: ARDUİNO EĞİTİM DERS | 1 (Sıfırdan, Led Ampul Yakmak) 2024, Temmuz
Anonim
8x8x8 LED Küp Nasıl Yapılır ve Arduino İle Kontrol Edilir
8x8x8 LED Küp Nasıl Yapılır ve Arduino İle Kontrol Edilir
8x8x8 LED Küp Nasıl Yapılır ve Arduino İle Kontrol Edilir
8x8x8 LED Küp Nasıl Yapılır ve Arduino İle Kontrol Edilir

Ocak 2020 düzenlemesi:

Fikir üretmek için kullanmak isteyen olursa diye bunu bırakıyorum, ancak bu talimatlara göre bir küp oluşturmanın artık bir anlamı yok. LED sürücü IC'leri artık üretilmiyor ve her iki çizim de Arduino ve Processing'in eski sürümlerinde yazılmıştı ve artık çalışmıyor. Çalışmaları için neyin değiştirilmesi gerektiğini bilmiyorum. Ayrıca, inşaat yöntemim, dengesiz ve dengesiz bir karmaşayla sonuçlandı. Benim önerim, başka bir talimattaki talimatları takip etmek veya bir kit satın almak. Bu küp 2011'de yaklaşık 50 dolara mal oldu, şimdi yaklaşık 20 dolara ebay'den bir kit satın alabilirsiniz.

Orijinal tanıtım:

Instructables'ta çok sayıda LED küp var, öyleyse neden başka bir tane var? Çoğu 27 veya 64 LED'den oluşan küçük küpler içindir, mikrodenetleyicide bulunan çıkışların sayısıyla sınırlı olduklarından nadiren daha büyüktürler. 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 kendisini, kontrol panosunu ve son olarak da onu parlatacak kodu nasıl yaptığımı göstereceğim.

Adım 1: Malzemeler

Malzemeler
Malzemeler

Küpü oluşturmak için ihtiyacınız olacak tüm parçalar: 1 Arduino/Freeduino, Atmega168 veya daha yüksek çipli 512 LED'li, boyut ve renk size kalmış, voltaj akışını kontrol etmek için Allegro 8 NPN transistörlerinden 3mm kırmızı 4 A6276EA LED sürücü çipi kullandım, BDX53B Darlington transistörünü kullandım 4 1000 ohm direnç, 1/4 watt veya üzeri 12 560 ohm direnç, 1/4 watt veya üzeri 1 330uF elektrolitik kapasitör 4 24 pin IC soketi 9 16 pin IC soketi 4 "x4" (veya daha büyük)) tüm parçaları tutmak için bir perfboard parçası, Eski bir bilgisayar fanı Eski bir disket denetleyici kablosu Eski bir bilgisayar güç kaynağı Bunu yaparken hayatınızı kolaylaştıracak bir sürü bağlantı teli, lehim, havya, flux, başka her şey. LED lehimleme aparatını yapmak için kullanılan 7 "x7" (veya daha büyük) ahşap parçası Bitmiş küpünüzü sergilemek için güzel bir kasa Arduino/Freeduino'm, www.moderndevice.com adresinden Bare Bones Board'dur (BBB). LED'ler eBay'den satın alındı ve Çin'den gönderilen 1000 LED için 23 dolara mal oldu. Kalan elektronik parçalar Newark Electronics'ten (www.newark.com) satın alındı ve yalnızca 25$'a mal olacak. Her şeyi satın almanız gerekiyorsa, bu projenin maliyeti yalnızca 100$ civarında olmalıdır. Bir sürü eski bilgisayar ekipmanım var, bu yüzden o parçalar hurda yığınından çıktı.

Adım 2: Katmanları Birleştirin

Katmanları Birleştirin
Katmanları Birleştirin
Katmanları Birleştirin
Katmanları Birleştirin
Katmanları Birleştirin
Katmanları Birleştirin
Katmanları Birleştirin
Katmanları Birleştirin

Bu 512 LED küpün 1 katmanı (64 LED) nasıl yapılır: Aldığım LED'lerin çapı 3mm idi. Maliyeti düşürmek ve küpün son boyutunu masayı veya rafı tamamen ele geçirmeden masamda veya rafımda oturacak kadar küçük yapmak için küçük LED'ler kullanmaya karar verdim. Çizgiler arasında yaklaşık 0,6 inçlik bir 8x8 ızgara çizdim. Bu bana kenar başına 4,25 inç civarında bir küp boyutu verdi. Her katmanı lehimlerken LED'leri tutacak bir mastar yapmak için hatların birleştiği yerlere 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 gerekecek. Çoğu küp ortak katot olarak yapılmıştır. LED'in uzun tarafı genellikle anottur, emin olmak için sizinkini kontrol edin. Yaptığım ilk şey, her LED'i test etmekti. Evet, uzun ve sıkıcı bir süreç ve dilerseniz atlayabilirsiniz. Monte edildikten sonra küpümde ölü bir nokta bulmaktansa LED'leri test etmek için zaman harcamayı tercih ederim. 1000'den 1 ölü LED buldum. Fena değil. 11 adet katı, yalıtılmamış kancalı kabloyu 5 inç olacak şekilde kesin. Tezgahınızdaki bir sıranın her iki ucuna 1 LED yerleştirin ve ardından teli her anoda lehimleyin. Şimdi kalan 6 LED'i sıraya yerleştirin ve bu anotları tele lehimleyin. Bu dikey veya yatay olabilir, tüm katmanları aynı şekilde yaptığınız sürece farketmez. Her satırı bitirirken, fazla kurşunu anotlardan kesin. 1/8 civarında bıraktım. 8 sırayı da bitirene kadar tekrarlayın. Şimdi hepsini tek bir parçaya bağlamak için yaptığınız sıralar boyunca 3 adet kanca teli lehimleyin. Daha sonra katmanı 5 volt bağlayarak test ettim. bir direnç aracılığıyla tel kafesini bağlamak ve her katoda giden topraklama ucuna dokunmak için. Yanmayan tüm LED'leri değiştirin. Katmayı jig'den dikkatlice çıkarın ve bir kenara koyun. Kabloları bükerseniz, endişelenmeyin, sadece elinizden geldiğince düzeltin. Bükmesi çok kolay. Fotoğraflarımdan da anlaşılacağı gibi, çok fazla bükülmüş telim vardı. Tebrikler, 1/8'i bitirdiniz.7 katman daha yapın. İSTEĞE BAĞLI: Lehim yapmak için katmanları birlikte daha kolay (Adım 3), sonraki her katman hala jig içindeyken katodun üst çeyrek inçini 45 ila 90 derece ileri bükün. Bu, kurşunun bağlandığı LED'in etrafına ulaşmasına izin verecek ve lehimlemeyi daha fazla yapacaktır. Bunu ilk katmanınıza yapmayın, birinin alt katman olduğunu ve kabloların s olması gerektiğini ilan edeceğiz. düz.

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

Küpü Birleştirin
Küpü Birleştirin
Küpü Birleştirin
Küpü Birleştirin

Bir küp yapmak için tüm katmanları birbirine lehimleme: Zor kısım neredeyse bitti. Şimdi, bir katmanı dikkatlice jig'e geri yerleştirin, ancak çok fazla baskı uygulamayın, onu bükmeden çıkarabilmek istiyoruz. Bu ilk katman, küpün üst yüzüdür. İlk katmanın üzerine başka bir katman yerleştirin, uçları hizalayın ve lehimlemeye başlayın. Önce köşeleri, sonra kenarı, sonra satırları yapmayı en kolay buldum. İşiniz bitene kadar katman eklemeye devam edin. Uçları önceden büktüyseniz, katmanı en sona düz uçlarla kaydettiğinizden emin olun. Alt kısım. Her katman arasında biraz fazla boşluk bıraktım, bu yüzden tam bir küp şekli alamadım. Önemli değil, bununla yaşayabilirim.

Adım 4: Denetleyici Kartını Oluşturma

Denetleyici Kartını Oluşturma
Denetleyici Kartını Oluşturma
Denetleyici Kartını Oluşturma
Denetleyici Kartını Oluşturma
Denetleyici Kartını Oluşturma
Denetleyici Kartını Oluşturma

Denetleyici kartı nasıl oluşturulur ve Arduino'nuza nasıl takılır: Şemayı takip edin ve istediğiniz şekilde kartı oluşturun. Denetleyici yongalarını kartın ortasına yerleştirdim ve sol tarafı küpün her katmanına giden akımı kontrol eden transistörleri tutmak için kullandım ve sağ tarafı denetleyici yongalarından katotlara giden konektörleri tutmak için kullandım. LED sütunları. Bilgisayar güç kaynağına takmak için dişi molex konektörlü eski bir 40 mm bilgisayar fanı buldum. Bu mükemmeldi. Çip boyunca az miktarda hava akışı faydalıdır ve artık denetleyici yongalarına ve Arduino'nun kendisine 5 volt sağlamanın kolay bir yolu var. Şematikte, RC, her A6276EA'ya bağlı tüm LED'ler için akım sınırlama direncidir. 1000 ohm kullandım çünkü LED'e 5 miliamper sağlıyor, onu yakmaya yetiyor. Super Brite LED'ler değil, Yüksek Parlaklık kullanıyorum, bu nedenle akım tüketimi daha düşük. Bir sütundaki 8 LED'in tümü aynı anda yanıyorsa, bu yalnızca 40 miliamperdir. A6276EA'nın her çıkışı 90 miliamper işleyebilir, 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ü elimde bir sürü mevcut vardı. Küpün her katmanına giden akımı kontrol etmek için 6 ampere kadar idare edebilen bir güç transistörü kullandım. Küpün her katmanı, tüm LED'ler yandığında yalnızca 320 miliamper çekeceğinden, bu proje için bu çok fazla. Büyümek için yer istedim ve denetleyici kartını daha sonra daha büyük bir şey için kullanabilirdim. İhtiyaçlarınıza uygun boyutta transistör kullanın. Voltaj kaynağındaki 330 uF kapasitör, küçük voltaj dalgalanmalarını düzeltmeye yardımcı olmak için orada. Eski bir bilgisayar güç kaynağı kullandığım için bu gerekli değil, ancak birisinin küpüne güç sağlamak için 5 voltluk bir duvar adaptörü kullanmak istemesi durumunda onu 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 lehimledim ve bunları kontrol kartını kübe bağlamak için kullanacağım. Ayrıca bir IC soketini ikiye böldüm ve onu transistörleri küpün katmanlarına bağlayan 8 kabloyu bağlamak için kullandım. Arduino için konektör olarak kullanmak üzere eski bir disket kablosunun ucundan yaklaşık 5 inç kestim. Disket kablosu 2 sıra 20 pindir, çıplak Bones Board 18 pinlidir. Bu, Arduino'yu tahtaya bağlamanın çok ucuz bir yoludur (ücretsiz). Şerit kabloyu 2 telden oluşan gruplar halinde ayırdım, uçlarını sıyırdım ve birbirine lehimledim. Bu, Arduino'yu konektörün herhangi bir satırına takmanıza izin verir. Şemayı izleyin ve konektörü yerine lehimleyin. Arduino'ya güç sağlamak için konektörün 5 volt ve topraklama uçlarını lehimlemeyi unutmayın. Modüler tasarımın benim için iyi çalışması için bu denetleyici kartını başka projeler için kullanmayı düşünüyorum. Bağlantıları kablolamak istiyorsanız, sorun değil.

Adım 5: Vitrin Oluşturun

Vitrin Oluşturun
Vitrin Oluşturun
Vitrin Oluşturun
Vitrin Oluşturun
Vitrin Oluşturun
Vitrin Oluşturun
Vitrin Oluşturun
Vitrin Oluşturun

Nihai ürününüzün güzel görünmesini sağlayın: Bu ahşap sandığı Hobby Lobby'de 4 dolara buldum ve içinde tüm telleri tutacak yeri olduğu ve güzel göründüğü için mükemmel olacağını düşündüm. Bunu kırmızıya boyadım, bilgisayar masamda kullandığım lekenin aynısı eşleşmeleri için. Üstüne lehimleme aparatı için kullanılan ızgarayla aynı boyutta bir ızgara çizin (çizgiler arasında 0,6 inç). Uçların üstten geçmesine izin vermek için delikler açın ve katman/düzlem teller için ızgaranın arkasına başka bir delik açın (Adım 4'teki transistörlerden). Küçük deliklerden geçmek için 64 ipucunu sıraya koymanın çok zor olduğunu zor yoldan öğrendim. Sonunda, işlemi daha hızlı hale getirmek için tüm delikleri biraz daha büyütmeye karar verdim. Yaklaşık.2'lik bir matkap ucu kullandım. Artık küp ekranın üstüne oturduğuna göre, kabloları takarken küp yerinde kalacak şekilde köşe uçlarını bükün. 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 64Katmanlar (şematikte 'düzlemler' olarak etiketlenmiştir) ile transistörler arasındaki kabloları bağlayın. Arduino pin 6'daki transistör, küpün en üst katmanıdır. Kabloları yanlış alırsanız, kod içinde biraz düzeltilebilir, ancak çok fazla çalışma gerektirebilir, bu yüzden onları doğru sırada almaya çalışın. Tamam, her şey inşa edildi ve kullanıma hazır, hadi biraz kod alalım ve deneyelim.

6. Adım: Kod

kod
kod

Bu küpün kodu çoğundan 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ıldığında 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) üzerinden toprakladım, böylece çıkış her zaman etkin olur. Etkinleştirmeyi hiç kullanmadım, bu yüzden koddan çıkardım. SPI-in, Arduino'dan gelen verilerdir, Clock, ikisi arasında konuşurken bir zamanlama sinyalidir ve Latch, denetleyiciye yeni verileri kabul etme zamanının geldiğini söyler. Her çip için her çıkış, 16 bitlik bir ikili sayı tarafından kontrol edilir. Örneğin; 1010101010101010'u denetleyiciye göndermek, denetleyicideki diğer tüm LED'lerin yanmasına neden olur. Kodunuzun bir ekran için gereken her şeyi gözden geçirmesi ve bu ikili sayıyı oluşturması ve ardından çipe göndermesi gerekir. Bu göründüğünden daha kolay. Teknik olarak bir sürü bitsel ekleme, ama bitsel matematikte berbatım, bu yüzden her şeyi ondalık olarak yapıyorum. İlk 16 bit için ondalık aşağıdaki gibidir: 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 == 32768Bu, eğer isterseniz 2 ve 10 çıkışları yanar, 514 elde etmek için ondalık sayıları (2 ve 512) bir araya getirirsiniz. 514'ü kontrolöre gönderin ve 2 ve 10 çıkışları yanacaktır. Ancak 16'dan fazla LED'imiz var, bu yüzden biraz daha zorlaşıyor. 4 çip için görüntü bilgisi oluşturmamız gerekiyor. 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. Bu şekilde daha kolay. Göndermeye hazır 4 ekran kodunuz olduğunda, mandalı bırakın (DÜŞÜK olarak ayarlayın) ve kodları göndermeye başlayın. Önce sonuncuyu göndermeniz gerekir. Çip 4, sonra 3, sonra 2, sonra 1 kodlarını gönderin, ardından Mandalı tekrar YÜKSEK olarak ayarlayın. Enable pini her zaman toprağa bağlı olduğundan, ekran hemen değiştirilir. Instructables'ta ve genel olarak web'de gördüğüm çoğu küp kodu, önceden ayarlanmış bir animasyonu gerçekleştirmek için dev bir kod bloğu kümesinden oluşur. Bu, daha küçük küpler için iyi çalışır, ancak ekranı her değiştirmek istediğinizde 512 bit ikili dosya depolamak, okumak ve göndermek çok fazla bellek kaplar. Arduino birkaç kareden fazlasını kaldıramadı. Bu yüzden, önceden ayarlanmış animasyonlar yerine hesaplamaya dayanan küpü eylem halinde göstermek için bazı basit işlevler yazdım. Nasıl yapıldığını göstermek için küçük bir animasyon ekledim, ancak kendi ekranlarınızı oluşturmayı size bırakacağım.cube8x8x8.pde Arduino kodudur. Koda işlevler eklemeye devam etmeyi planlıyorum ve programı periyodik olarak güncelleyeceğim.matrix8x8.pde, kendi ekranlarınızı oluşturmak için İşleme'de bir programdır. Verilen ilk sayı kalıp1'e, ikincisi kalıp2'ye vb. girer. A6276EA'nın veri sayfası şu adreste bulunabilir:https://www.allegromicro.com/en/Products/Part_Numbers/6276/6276.pdf

7. Adım: El İşinizi Sergileyin

El İşinizi Sergileyin
El İşinizi Sergileyin

İşiniz bitti, şimdi küpünüzün tadını çıkarma zamanı. Gördüğünüz gibi küpüm biraz eğri çıktı. Yine de başka bir tane inşa etmeye pek 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ğitilebilir Kitap, A6276AE'yi kullanarak kendi küpünüzü veya başka bir LED projesini oluşturmanız için size ilham verir. Bir tane oluşturursanız yorumlara bir bağlantı gönderin. Buradan nereye gideceğime karar vermeye çalışıyorum. Denetleyici kartı ayrıca bir 4x4x4 RGB küpünü de kontrol edecek, yani bu bir olasılık. Bence bir küre yapmak güzel olurdu ve kodu yazma şeklim, bunu yapmak çok zor olmazdı.

Önerilen: