İçindekiler:

Programlanabilir RGB LED Sıralayıcı (Arduino ve Adafruit Kafes kullanarak): 7 Adım (Resimlerle)
Programlanabilir RGB LED Sıralayıcı (Arduino ve Adafruit Kafes kullanarak): 7 Adım (Resimlerle)

Video: Programlanabilir RGB LED Sıralayıcı (Arduino ve Adafruit Kafes kullanarak): 7 Adım (Resimlerle)

Video: Programlanabilir RGB LED Sıralayıcı (Arduino ve Adafruit Kafes kullanarak): 7 Adım (Resimlerle)
Video: Uygun Maliyetli Asus Aura Nasıl Yapılır? (Programlanabilir RGB Led - NeoPixel Arduino Bluetooth) 2024, Temmuz
Anonim
Image
Image
Sürücü Kartını Bağlayın
Sürücü Kartını Bağlayın

Oğullarım masalarını aydınlatmak için renkli LED şeritler istedi ve ben de konserve RGB şerit denetleyici kullanmak istemedim çünkü bu denetleyicilerin sahip olduğu sabit desenlerden sıkılacaklarını biliyordum. Ayrıca, onlara öğrettiğim programlama ve elektronik becerilerini geliştirmek için kullanabilecekleri bir öğretim aracı yaratmanın harika bir fırsat olacağını düşündüm. Sonuç bu.

Arduino Uno (veya Nano), Adafruit Kafes ve bir avuç başka parça kullanarak bu basit, programlanabilir RGB LED şerit denetleyicisini nasıl oluşturacağınızı göstereceğim.

Adafruit Kafesi, Lady Ada ve ekibinin en sevdiğim yeni oyuncaklarından biridir. Her şeyden önce, anakart için sadece 9,95 dolar ve silikon elastomer düğme pedi için 4,95 dolar daha (bu yazı itibariyle fiyatlar). Bu, LED özellikli 16 düğmeli 4x4 matris için harika bir fırsat. Monte edilmiş herhangi bir LED ile birlikte gelmez, bunları tedarik etmeniz gerekir, ancak bu size istediğiniz renkleri seçme esnekliği sağlar (ve adreslenebilir LED'lerde oluşturmaya kıyasla maliyeti ve karmaşıklığı azaltır). Bu projeyi benimki gibi inşa etmek için bir avuç 3mm LED'e ihtiyacınız olacak. 2 kırmızı, 2 yeşil, 2 mavi, 4 sarı ve 6 beyaz kullandım.

Kafes, iletişim kurmak için I2C'yi kullanır, bu nedenle 16 düğmeyi ve 16 LED'i kontrol etmek için yalnızca iki G/Ç pini (veri ve saat) gerekir.

Bu projenin donanım kısmını küçük bir proto board üzerinde yapabilirsiniz, ben de prototipimi böyle yaptım. Masalarında daha düzenli ve daha kapsamlı bir şeye ihtiyacım olduğunu çabucak fark ettim (çıplak bir Arduino ve etrafa çarpan proto kartı çok kırılgan olurdu), bu yüzden LED şeritleri sürmek için kendi kalkanımı yaptım. Kalkanı inşa etmek için talimatlar ve dosyalar son adımda yer almaktadır.

Sürücü, üç IRLB8721 MOSFET ve üç direnç kullanır. Ve elbette, sürmek için bir LED şeride ihtiyacınız olacak; hemen hemen herhangi bir düz 12V RGB LED şerit yapacaktır. Bunlar, SMD 5050'ler gibi basit LED'ler, tek tek adreslenebilen süslü değil (NeoPixels vb. yok) - bu başka bir proje! Ayrıca, kullanmayı düşündüğünüz LED sayısını sürmek için yeterince büyük bir 12V güç kaynağına ihtiyacınız var.

Özetlemek gerekirse, işte bu proje için temel donanım ihtiyaçları:

  • Bir Arduino Uno veya Nano (bu talimatlar, dişi başlıklar takılı olan Uno içindir, ancak bir devre tahtasında Nano iyi çalışır) (Adafruit, Amazon, Mouser);
  • Bir Adafruit Kafes tahtası ve silikon düğme pedi (Adafruit);
  • Üç IRLB8721 N-kanal MOSFET (Adafruit, Amazon, Mouser);
  • Üç adet 1K direnç (Amazon, Mouser);
  • Üç adet 220 ohm direnç (Amazon, Mouser)
  • Bir küçük proto board (ilki 1/4 boyutundaydı - rahat çalışabileceğiniz herhangi bir boyutu seçin) (Adafruit, Amazon);
  • 12V RGB LED şerit (SMD 5050) (Adafruit, Amazon);
  • 12V güç kaynağı -- sürmeyi planladığınız LED sayısına uygun bir watt seçin.

Zorunlu sorumluluk reddi: Yukarıdaki bağlantılar size kolaylık sağlamak için verilmiştir ve herhangi bir ürün veya satıcının onayı değildir; ne de bu bağlantılardan yapılan herhangi bir satın alma işleminden kâr elde etmem. Daha çok beğendiğiniz satıcılar varsa, elbette onları destekleyin!

Başlayalım…

1. Adım: Sürücü Kartını Bağlayın

Sürücü Kartını Bağlayın
Sürücü Kartını Bağlayın

İşte LED sürücü devresi. Çok basit. LED şeridindeki her kanal için bir IRBLxxx N-kanal MOSFET kullanır. LED şerit ortak anottur, yani LED şeridine +12V gönderilir ve kırmızı, yeşil ve mavi LED kanalları, şeride ilgili bağlantıda topraklama sağlanarak kontrol edilir. Böylece, MOSFET'lerin tahliyesini LED renk kanallarına ve kaynağı toprağa bağlayacağız. Kapılar Arduino dijital çıkışlarına bağlanacak ve dirençler, her MOSFET'in gerektiği gibi tamamen açılıp kapanmasını sağlayan bir aşağı çekme sağlar.

Arduino, bazı dijital çıkışlarında darbe genişlik modülasyonu sunar, bu nedenle bu çıkışları (özellikle D9, D10, D11) kullanacağız, böylece her renk kanalının yoğunluğu kontrol edilebilir.

IRLB8721 MOSFET'lerde neyi nereye bağlayacağınız konusunda kafanız karıştıysa, yukarıdaki fotoğrafta gösterildiği gibi bir tanesini ön tarafı size bakacak şekilde elinizde tutun. Soldaki pin (pin 1) kapıdır ve bir Arduino dijital çıkış pinine ve dirence bağlanır (direncin diğer ucu toprağa bağlanmalıdır). Merkezdeki pim (pim 2) tahliyedir ve LED şerit renk kanalına bağlanır. Sağdaki pim (pim 3) kaynaktır ve toprağa bağlıdır. Hangi transistörün hangi LED renk kanalına bağlandığını takip ettiğinizden emin olun.

Proto panoların nasıl lehimleneceğinin ayrıntılarına girmeyeceğim. Dürüst olmak gerekirse, ondan nefret ediyorum ve bunda iyi değilim. Ama iyi ya da kötü, işe yarıyor ve sağlam bir prototip elde etmenin ya da bir defaya mahsus olmak için hızlı ve kirli bir yol. İlk panom burada gösteriliyor.

Bunu da breadboard yapabilirsin. Her şeyi bir ön kartta lehimlemekten kesinlikle daha hızlı olurdu, ancak daha az kalıcı olurdu.

Sürücünüzü bağladıktan sonra, MOSFET geçit girişlerini Arduino dijital çıkış pinlerine bağlayın: yeşil kanal için D9, kırmızı kanal için D10 ve mavi kanal için D11. LED şeridini de proto kartınıza bağlayın.

Ayrıca, sürücü kartınızın topraklamasından Arduino'nun topraklama pinlerinden birine ayrı bir bağlantısı olduğundan emin olun.

Son olarak, LED gücü için 12V kaynağının negatif (toprak) ucunu sürücü kartınızdaki bir toprağa bağlayın. Ardından 12V kaynağının pozitif ucunu LED şeridinizin anot ucuna bağlayın (bu, kablolarımda resimde gösterilen siyah bir teldir).

Sonunda, Uno'ya takılan ve ayrıca Kafes için bir montaj desteği olan bir PC kartı kalkanı tasarladım. Bu, çok daha bitmiş bir nihai ürün sağladı. Bunu yapmak istiyorsanız, burada açıklandığı gibi proto kartını kullanmayı atlayabilir ve sadece kalkan kartını yaptırabilirsiniz. Bunların hepsi son adımda açıklanmıştır.

Adım 2: LED'leri Kafese yerleştirin

LED'leri Kafese yerleştirin
LED'leri Kafese yerleştirin

Kafes panosu, doldurmamız gereken 3 mm LED'ler için boş pedlere sahiptir. Pedlerdeki sembollere dikkatlice dikkat edin - anot tarafını belirtmek için pedin yanında çok ince bir "+" vardır. Kartı, metin sağ tarafı yukarı gelecek şekilde tutuyorsanız, kartın üstünde ve altında, LED anotlarının solda olduğunu bildiren bir not vardır.

3mm LED'lerinizi tahtaya lehimleyin. Tahtanın önüne bakıldığında, metin sağ tarafı yukarı, sol üst anahtar/LED konumu #1, sağ üst kısım #4, sol alt kısım #13 ve sağ alt kısım #16'dır. İşte her pozisyonda kullandığım renkler (ve bunun bir nedeni var, bu yüzden en azından ilk iki sıra için desenimi takip etmenizi tavsiye ederim):

1 - kırmızı2 - yeşil3 - mavi4 - beyaz5 - kırmızı6 - yeşil7 - mavi8 - beyaz9 - beyaz10 - beyaz11 - sarı12 - sarı13 - beyaz14 - beyaz15 - sarı16 - sarı

CC Atıf: Yukarıdaki Kafes görüntüsü Adafruit'e aittir ve Creative Commons -- Attribution/ShareAlike lisansı altında kullanılmaktadır.

Adım 3: Kafesi Arduino'ya bağlayın

Kafesi Arduino'ya bağlayın
Kafesi Arduino'ya bağlayın

Kafes beş kablo pedine sahiptir, ancak bu projede sadece dört tanesi kullanılmaktadır. Kafes, Arduino ile (I2C kullanarak) iletişim kurmak için SDA ve SCL'ye ve güç için 5V ve GND'ye ihtiyaç duyar. Son ped, INT, kullanılmaz. Kafes pedleri, tahtanın dört kenarında da görünür. Dilediğiniz ped setini kullanabilirsiniz.

5V, GND, SDA ve SCL pedlerine sağlam bir ara bağlantı teli lehimleyin. Ardından 5V kablosunu Arduino üzerindeki 5V pinine, GND'yi topraklama pinine, SDA kablosunu A4'e ve SCL kablosunu A5'e bağlayın.

Ardından, Arduino'yu çalıştıracağız ve taslağı ona yükleyeceğiz. Şimdi silikon düğme pedini Kafes tahtasına koymanın tam zamanı. Sadece tahtaya oturur (tahtadaki deliklere uyan pedin altındaki "püsküllere" dikkat edin), bu nedenle pedin kenarlarını tahtaya tutturmak için birkaç parça bant kullanmak isteyebilirsiniz. şimdi.

CC Atıf: Yukarıdaki Trellis kablo görüntüsü, bu görüntünün Adafruit tarafından kırpılmış bir versiyonudur ve Creative Commons -- Attribution/ShareAlike lisansı altında kullanılmaktadır.

Adım 4: Proje Krokisini İndirin ve Arduino'ya Yükleyin

Bu proje için çizimi Github depomdan indirebilirsiniz.

Aldıktan sonra Arduino IDE'de açın, Arduino'yu bir USB kablosu kullanarak bağlayın ve çizimi Arduino'ya yükleyin.

Çizim yüklenirse ve Kafes düzgün şekilde bağlanırsa, Kafes üzerindeki düğmelerden herhangi biri basıldığında üç kez hızlı bir şekilde yanıp sönmelidir. Bu, geçersiz bir düğmeye bastığınızın bir göstergesidir, çünkü sistem "kapalı" durumunda gelir, bu nedenle, açmak için gereken tek geçerli tuşa basılması gerekir.

Sistemi açmak için sol alt düğmeyi (#13) en az bir saniye basılı tutun. Düğmeyi bıraktığınızda, tüm LED'ler kısaca yanmalıdır ve ardından #13 (sol alt) hariç alttaki iki sıra sönecektir. Sistem şimdi açık ve boşta durumdadır.

İlk test olarak LED kanallarını aydınlatmak ve karartmak için en üstteki iki satırı kullanmayı deneyebilirsiniz. Bu işe yarıyorsa, bir sonraki adıma geçmekte fayda var. Değilse, kontrol edin:

  1. LED güç kaynağı bağlı ve açık;
  2. Sürücü kartı MOSFET'leri doğru şekilde kablolanmıştır. Kullandığım aynı IRLB8721'leri kullanıyorsanız, şunları kontrol edin:

    • Sürücü kartı sinyal girişleri (MOSFET kapıları, IRLB8721 pin 1) Arduino'ya bağlanır D9=yeşil, D10=kırmızı, D11=mavi (aşağıdaki nota bakın);
    • LED şerit sürücü panosuna ve LED renk kanalları MOSFET giderlerine bağlanır (IRLB8721 pin 2);
    • MOSFET kaynak pinleri (IRLB8721 pin 3), sürücü kartındaki toprağa bağlanır;
  3. Sürücü kartı ve Arduino topraklama pimi arasındaki toprak bağlantısı.

Sonraki adımda, düğme paneli kullanıcı arabiriminin bazı işlevleriyle oynayacağız.

NOT: Kontrol cihazınız çalışıyor ancak yoğunluk düğmeleri doğru renkleri kontrol etmiyorsa endişelenmeyin ve yeniden kablolamayın! Arduino IDE'deki Sketch'e gidin ve dosyanın üst kısmına yakın KIRMIZI, YEŞİL ve MAVİ pin tanımlarını değiştirin.

Adım 5: Temel Kontrol Fonksiyonları

Temel Kontrol Fonksiyonları
Temel Kontrol Fonksiyonları

Artık sisteme güç verildiğine göre, bazı düğmelerle oynayabilir ve bir şeyler yapmasını sağlayabiliriz.

Bir önceki adımda söylediğim gibi, güç verildiğinde sistem "boşta" durumuna geliyor. Bu durumda, kırmızı, yeşil ve mavi LED kanallarının her birinin renk yoğunluğunu artırmak ve azaltmak için en üstteki iki sıradaki düğmeleri kullanabilirsiniz. Beyaz artırma/azaltma düğmelerini kullanırsanız, sistem üç kanalın yoğunluğunu eşit ve eşit seviyelerde artırır veya azaltır.

Alttaki iki sıra, önceden ayarlanmış desenleri oynatmak için kullanılır. Bu desenler Arduino'nun EEPROM'unda saklanır. Çizim ilk kez çalıştırıldığında, EEPROM'da saklanan herhangi bir desen olmadığını görür ve bir dizi varsayılan deseni depolar. Daha sonra, bu kalıpları değiştirebilirsiniz ve değişiklikleriniz, önceden ayarlanmış kalıbın yerine Arduino'nun EEPROM'unda saklanır. Bu, kalıplarınızın güç kesintilerinde hayatta kalmasını sağlar. Düzenleme işlevi bir sonraki adımda açıklanmıştır.

Şimdilik, o düğme için saklanan deseni çalıştırmak için ön ayar düğmelerinden herhangi birine (alt iki sıradaki sekiz düğme) kısaca basın. Desen çalışırken düğme yanıp söner. Deseni durdurmak için desen düğmesine tekrar kısaca basın. Bir kalıp çalışırken, üst sıralardaki beyaz yukarı/aşağı düğmeleri kalıp hızını değiştirmek için kullanılabilir.

Herhangi bir tuşa dokunmadan projeyi birkaç saniye yalnız bırakırsanız, LED'lerin karardığını fark edeceksiniz. Bu hem güç tasarrufu hem de Kafes'in LED'lerin yaratmaya çalıştığı herhangi bir "ruh halini" aşırı aydınlatmasını önlemek içindir. Kafesteki bir düğmeye dokunmak onu tekrar uyandıracaktır.

Sistemi kapatmak için sol alt (#13) düğmeyi bir veya daha fazla saniye basılı tutun ve bırakın. Kafes ve LED şerit kararacak.

Adım 6: Tuş Takımında Kalıpları Düzenleme

Tuş Takımında Kalıpları Düzenleme
Tuş Takımında Kalıpları Düzenleme

Önceki adımda söylediğim gibi, taslak ilk çalıştırıldığında EEPROM'da sekiz varsayılan deseni saklar. Düğme takımındaki desen düzenleme modunu kullanarak bu desenlerden 7 tanesini başka bir desenle değiştirebilirsiniz.

Desen düzenleme moduna girmek için öncelikle deseni hangi düğme için düzenlemek istediğinize karar verin. Sol alt düğme dışında herhangi bir düğmeyi seçebilirsiniz. Seçtiğiniz desen düğmesine uzun basarak (bir saniyeden fazla basılı tutarak) desen düzenleme moduna girin. Bırakıldığında, düğme sabit yanacak ve üstteki iki sıra yanıp sönmeye başlayacaktır. Bu, düzenleme modunda olduğunuzu gösterir.

Düzenleme modu, desenin ilk adımında başlar ve siz düzenlemeden çıkana veya 16. adımı düzenlemeyi bitirene kadar (desen başına en fazla 16 adım) devam eder. Her adımda, o adım için istediğiniz rengi seçmek için en üstteki iki satırdaki kanal yoğunluğu düğmelerini kullanın. Ardından, o rengi kaydetmek ve bir sonraki adıma geçmek için desen ön ayar düğmesine kısa basın. Son adımınızda, kısa basmak yerine düzenlemeden çıkmak için uzun basmanız yeterlidir.

Desen düzenlemeden çıktıktan sonra desen otomatik olarak oynatılır.

Bu kadar! Artık tuş takımı aracılığıyla programlayabileceğiniz desenleri sıralayacak bir RGB LED denetleyiciniz var. Burada durabilirsiniz veya bu projenin daha resmi bir versiyonunu oluşturmak istiyorsanız, kalan adımları uygulamaya devam edin.

7. Adım: Daha İyi Donanım: RGB LED Sürücü Kalkanı ve Muhafazası

Image
Image
Daha İyi Donanım: RGB LED Sürücü Kalkanı ve Muhafazası
Daha İyi Donanım: RGB LED Sürücü Kalkanı ve Muhafazası
Daha İyi Donanım: RGB LED Sürücü Kalkanı ve Muhafazası
Daha İyi Donanım: RGB LED Sürücü Kalkanı ve Muhafazası

Çalışan bir prototipim olduğunda, kalıcı bir çözüm olarak çocuklarımın masasında çıplak bir Arduino ve proto board bırakamayacağımı biliyordum. Proje için bir muhafazaya ihtiyacım vardı. Ayrıca daha iyi bir sürücü panosu yapmaya karar verdim ve bunun kendi kalkanımı yapmak için mükemmel bir fırsat olduğunu düşündüm.

Kağıt şemamı, ucuz kısa süreli küçük PC kartları sunan bir kart üreticisi olan ExpressPCB tarafından sunulan ücretsiz bir araç olan ExpressSCH'ye girerek temizledim. On yıldan fazla bir süredir projelerde ExpressPCB kullanıyorum, ancak elbette tercih ettiğiniz araçları ve imalatçıları kullanın.

Bu proje için bir kalkan görevi görmesi için temel şemaya birkaç küçük özellik ekledim. Kafes, bir güç jakı, bir pilot lamba ve LED şerit için bir konektör bağlamak için kablo pedleri ekledim. Ayrıca güç kaynağı boyunca bir kapasitör için bir nokta ekledim. Son devre burada gösterilmiştir.

Proje için gücün kalkandan gelmesi gerektiğine karar verdim. Kalkana sağlanan 12V, hem LED şeridine hem de Arduino'ya güç sağlar. Arduino'ya güç, besleme girişini Arduino'nun çift yönlü olan VIN pinine bağlayarak sağlanır (Arduino'ya bu pin üzerinden güç sağlayabilirsiniz veya Arduino'ya başka bir yerden güç bağlarsanız, size verilen gücü verecektir. bu pime güç verin). Koruma diyotu D1, doğrudan Arduino'ya (örn. USB) bağlı herhangi bir gücün LED'lere güç vermeye çalışmasını engeller.

Neden Arduino'nun güç jakını kullanmıyorsunuz ve oraya 12V bağlayın? Arduino'nun güç jakına 12V sağlayabilir ve VIN pinini kalkan için bu gücü almak için kullanabilirken, Arduino'nun D1 diyotunun ve izlerinin LED'i sürmede mümkün olan yüksek akımlara kadar olmayacağından endişelendim. şeritler. Bu yüzden, kalkanımın güç girişini devralacağına ve bunun yerine Arduino'ya güç sağlayacağına karar verdim. Ayrıca Trellis için 5V'a ihtiyacım vardı, ancak Arduino'nun yerleşik güç düzenlemesi birkaç pimde 5V sağlıyor, bu yüzden bunlardan birini kullandım. Çardak. Bu beni kalkanın üzerine bir regülatör devresi koymaktan kurtardı.

Daha sonra PCB'yi yerleştirdim. Arduino Uno'daki başlıkları karşılamak için pimlerin yerleştirilmesi için tam ölçümleri almak için bulduğum bazı kaynakları kullandım. Biraz titizlik ve ilk denemede eşleşti. Kalkan devresinin kendisi için fazla bir şey yok, bu yüzden bolca yerim vardı. LED yükleri için geniş izler koydum, böylece ihtiyaçlarım için bol miktarda akım taşıma kapasitesi olacaktı. MOSFET'leri, soğutuculu veya soğutucusuz düz olarak monte edilebilecekleri yerlere yerleştirdim. Şimdiye kadar kullandığım LED sayısı kadar soğutucuya ihtiyacım olmadı, ancak gerekirse alan var.

Ayrıca, Kafes'i kalkanıma monte etmek için ayırıcılar kullanabilmek için Kafesteki montaj delikleriyle eşleşen delikler ekledim. Kalkan Arduino'ya takılıyken ve Kafes, kalkanın üzerindeki stand-off'larda asılıyken, her şey güzel ve sağlam olmalıdır.

Daha sonra tahta düzenini yazdırdım ve bir parça köpük göbeğe yapıştırdım ve her şeyin sığdığından emin olmak için parçalarımı yerleştirdim. Her şey yolunda, bu yüzden siparişi gönderdim.

Daha sonra bir kasa üzerinde çalışmaya başladım. Fusion 360'ı kullanarak üç kartı (Arduino Uno, shield ve Trellis) içerecek basit bir kasa tasarladım. Muhafazadaki delikler Arduino'nun USB portuna bağlantıya ve tabii ki LED şerit bağlantısına ve kalkan güç jakına erişime izin verir. Arduino güç jakı, kullanılmadığından emin olmak için muhafaza ile kaplanmıştır. Test montajı için birkaç prototipten sonra nihayet memnun kaldığım bir tasarıma sahip oldum. Ek için STL dosyalarını Thingiverse'e gönderdim.

Gelecekte, bir Nano'nun doğrudan takılabileceği panonun bir versiyonunu yapacağım, Bu projeyi daha da kompakt hale getirecek. O zamana kadar, bunun gibi bir Nano'dan Uno'ya kalkan adaptörü de kullanabilirsiniz.

Kalkanı yapacaksanız, 1. adımda belirtilen parçalara ek olarak ihtiyacınız olacaklar:

  • RGB LED Sürücü Kalkanı PC kartı (ExpressPCB veya diğerlerinden; proje için Github depomdan dosyaları indirebilirsiniz);
  • 1N4002 diyot;
  • 100uF 25V radyal elektrolitik kapasitör (büyük LED yükü varsa 220uF veya 470uF kullanın);
  • Güç girişi, PJ202-AH (5A dereceli model).

Aşağıdaki parçalar isteğe bağlıdır:

  • 3 mm LED - pilot lamba için herhangi bir renk (ihmal edilebilir)
  • 1500 ohm direnç -- yalnızca LED pilot lambası kullanılıyorsa gereklidir

Önerilen: