İçindekiler:

ATMEGA328 UNO V3.0 R3 Kartlı WS2812-B LED: 11 Adım
ATMEGA328 UNO V3.0 R3 Kartlı WS2812-B LED: 11 Adım

Video: ATMEGA328 UNO V3.0 R3 Kartlı WS2812-B LED: 11 Adım

Video: ATMEGA328 UNO V3.0 R3 Kartlı WS2812-B LED: 11 Adım
Video: Sıfırdan! Basit Eğitim Robotu Çizip, Üretime Gönderiyoruz (Bölüm 1) 2024, Kasım
Anonim
ATMEGA328 UNO V3.0 R3 Kartı ile WS2812-B LED
ATMEGA328 UNO V3.0 R3 Kartı ile WS2812-B LED

Açıklama

Bu proje, görsel bir etki yaratmak için ICStation WS2812-B Programlanabilir Renkli LED Kartı ile ATMEGA328 UNO V3.0 R3 Kartı Uyumlu Arduino UNO R3'ü birleştirir. Üstelik "Disko" temalı bir parti veriyorsanız çok hoşunuza gidecek. Size bunlardan birini nasıl yapacağınızı göstereyim.

Adım 1: Gerekli Parçalar:

Gerekli Parçalar
Gerekli Parçalar

· Arduino UNO (veya uyumlu kart)· 4 x WS2812-B Programlanabilir Renkli LED Kartı

· 330 ohm direnç

· 4700 uF 16V Elektrolitik Kondansatör

· ekmek tahtası

· Dişi-Erkek Jumper telleri

· Breadboard Jumper telleri

· 2.1mm DC Soket Vidalı Klemensli

· 5V 4A Plugpack güç kaynağı

Not: Bu projeye pil kullanarak güç vermek mümkündür, ancak tavsiye edilmez ve riski size ait olmak üzere yapılır.

Ayrıca yapmanız (veya satın almanız) gereken bir Disco Ball Cake'e de ihtiyacınız olacak. Bunu karım yaptı. Ve birazdan göreceğiniz gibi pastanın içi Pembe çünkü çilekli pastaydı.

Arduino Kütüphaneleri ve IDEArduino IDE'yi buradan edinebilirsiniz: https://www.arduino.cc/en/Main/Software Muhtemelen çok eski olan 1.6.4 sürümünü kullandım… ama yine de iyi çalışıyor.

FastLED kütüphanesinin nasıl kullanılacağı hakkında buradan bilgi alabilirsiniz: https://fastled.io/ Ve buradan indirebilirsiniz: FastLED Kütüphanesi Muhtemelen güncel olmayan 3.0.3 sürümünü kullandım.

Adım 2: ARDUINO KODU:

Adım 3: ARDUINO KODU AÇIKLAMASI:

· FastLED Kitaplığı: Arduino IDE'nize FastLED kitaplığını indirip kurduğunuzdan emin olmanız gerekir. Kitaplık bu çizime dahil edilmiştir, aksi takdirde FastLED işlevleri çalışmayacaktır.

· "NUM_LEDS" değişkeni: Arduino'ya kaç LED'in kullanımda olduğunu söyler. Bu durumda, her biri 16 LED içeren ve dolayısıyla toplam 64 LED içeren 4 LED halkamız var. Daha düşük bir sayı tanımlarsanız, örneğin 16, çizim yalnızca ilk LED halkasındaki LED'leri aydınlatacaktır.

· "DATA_PIN" değişkeni: Arduino'ya LED halkasına veri iletimi için hangi Dijital Pin'i kullanacağını söyler. Bu durumda Digital Pin 9 kullanıyorum.

· Diğer değişkenler: LED rastgeleleştirme ve renk tonu kontrolü için kullanılan birkaç değişkenim daha var. Ton, LED'in rengidir. Hue değişkenini artırarak, LED'lerin gökkuşağı benzeri bir düzende dönmesini sağlayabilirsiniz. "Ton" değişkeni bir "bayttır", bu, sıfıra geri atlamadan önce yalnızca maksimum 255 değerine kadar çıkacağı anlamına gelir.

Başlatma Kodu: Bu eğitimdekinden farklı bir LED halkanız varsa, başlatma kodunu değiştirmeniz gerekebilir. Bu LED halkasının bir WS2812-B yonga seti vardır (ICStation web sitesine göre) ve bu nedenle şu satır:

· FastLED.addLed'ler(led'ler, NUM_LEDS); FastLED kitaplığına hangi yonga setinin kullanıldığını (NEOPIXEL), veri iletimi için kullanılan pini (DATA_PIN), kontrol edilecek LED dizisini (ledler) ve kontrol edilecek LED sayısını (NUM_LEDS) söyleyecektir. loop()": kodun bölümü: bir gökkuşağı efekti oluşturmak için "hue" değişkeni artırılır ve FastLED'in random8() işlevi kullanılarak rastgele bir LED seçilir.

· random8(x) işlevi: 0 ile x arasında rastgele bir sayı seçecektir.

· randomSeed() işlevi: sayıyı "gerçekten rastgeleleştirmeye" yardımcı olmak için vardır. Bu, kayan bir analogPin'in (A0) rastgeleliği okunarak yardımcı olur. AnalogPin 0 olması gerekmez, kullanılmayan herhangi bir analog pin olabilir.

· leds[rnd].setHSV(hue, 255, 255): Bu satır rastgele LED'i "hue" değişkenine eşit bir renk tonuna, doygunluk 255'e ve parlaklık 255'e eşit olacak şekilde ayarlar. Sıfıra eşit doygunluk LED beyaz parlıyor. Sıfırın parlaklığı esasen LED'i KAPALI konuma getirir.

· FastLED.show(): Arduino'dan LED halkasının Dijital giriş pinine bir mesaj gönderilene kadar LED halka ekranında herhangi bir fiziksel değişiklik yapılmayacaktır. Bu mesaj, FastLED.show()'u aradığınızda iletilir; işlev. Bu, LED halkalarına ekranlarını led dizisinde (ledler) bulunan bilgilerle güncellemelerini söyler. Yani tüm LED'leri yanacak şekilde ayarlarsanız, kart FastLED.show(); fonksiyon denir. Bunu bilmek önemlidir - özellikle kendi LED dizilerinizi tasarlamaya çalışırken.

· Gecikme(50) satırı: yanıp sönmeler arasındaki süreyi 50 milisaniyeye ayarlar. Saniyedeki flaş sayısını artırmak veya azaltmak için gecikmeyi değiştirebilirsiniz.

· leds.fadeToBlackBy(180) işlevi: LED'leri esasen 180 birim karartır. İstenilen solma hızına ulaşmak için bu sayıyı artırabilir veya azaltabilirsiniz. Bununla birlikte, bu işlevi çağırmayı unutursanız veya LED'leri yeterince söndürmeyi başaramazsanız, TÜM LED'lerin yanmasına neden olabilir ve bu da Arduino kartınızı potansiyel olarak tahrip edebilir - yani, LED halkalarının sayısına bağlı olarak. sahip olduklarını ve onlara nasıl güç vermeyi seçtiğinizi.

4. Adım: Pasta

Kek
Kek

· Slayt 1 - Taban Plakası: Pastayı üzerine koymadan ÖNCE taban plakasını tüm elektronik aksamlar takılı ve çalışır durumda olacak şekilde oluşturmak önemlidir. Üstünde Cake varken kabloları LED'leri ve devreleri taban plakasının altına yerleştirmeye çalışmak felakete davetiye çıkarır. Bu yüzden önce taban plakasını hazırlayın ve daha sonra kek yapma kısmına geçin.

· Slayt 2 - Pasta Yap: Topun iki tarafını yapmak için birkaç yarım küre kek kalıbına ihtiyacınız olacak. Kek, krema ve fondanın toplam ağırlığına dayanmak ve şeklini korumak için nispeten yoğun bir kek yapmalısınız. Soğuduktan ve soğuduktan sonra, bir küre oluşturmak için üst üste yerleştirebilirsiniz. Aralarında bir buz tabakası ile bir arada tutulurlar.

· Slayt 3 - Fondan Buzlanma: Fondan krema, özel bir yapışmaz altlık üzerine serilmelidir. Biraz un eklemenin yapışkanlığı azalttığını gördük. Fondanın kalınlığının baştan sona tutarlı olmasını sağlayan özel silindirler vardır. Daha sonra bunları kare parçalara ayırmanız gerekir (yaklaşık 1 cm kareler bizim için iyi oldu). Kareler daha sonra özel/yenilebilir gümüş fondan sır ile Gümüşe boyanır. Birkaç kat uygulamanız ve katlar arasında kurumasına izin vermeniz gerekebilir.

· Slayt 4 - Tabanda Buzlu Kek: Kek, taban plakasının üzerinde veya dışında buzlu olabilir… muhtemelen bunu taban plakasından yapmak daha iyi. Ancak bunu taban plakasında yapmaya karar verirseniz, LED'leri pastadan düşebilecek başıboş buzlanmadan (işlemde) korumanız gerekecektir. Pasta tamamen buzlandığında (buzlanma/dondurma ile), pastayı tahtanın ortasına yerleştirmeniz gerekecektir. Pastanın tabandan kayma olasılığı olabilir… o yüzden yerinde kalması için yapmanız gerekeni yapın.

· Slaytlar 5-7 - Fondan Kareleri Yerleştirin: Krema hala yumuşakken, daha sonra fondan karelerini pastanın etrafına yatay doğrusal bir desende hızlı, metodik ve yorulmadan yerleştirmeniz gerekecektir. Her seferinde bir sıra yaparak pastanın kuzey ve güney kutuplarına doğru ilerleyin. Pastanın kuzey kutbu için fondan bir daire kesebilirsiniz. 7. slaytta pastanın tepesinde bir delik göreceksiniz. Bu, daha sonra pastanın üstündeki süslemeleri yerinde tutmak için kullanılacak olan plastik bir teneke kutuyu soğutmak için yapıldı. Bunu, fondan daireyi pastanın üstüne yerleştirmeden önce yapın.

· Slayt 8 - Parıltı Ekleme: Tüm fondan kareleri pastanın üzerine yerleştirdikten sonra, bazı karelerdeki Gümüş sırın bir kısmının silinmiş olması çok olasıdır. Burası, birkaç kat daha gümüş cila ile tekrar üzerinden geçeceğiniz yerdir ve son katta, kurumadan önce, ekstra parlaklık vermek için pastanın her tarafına yenilebilir parıltı serpebilirsiniz.

· Slayt 9 - Son ürün: Son adım, pastanın üstüne biraz tel maytap ve başka süslemeler eklemektir. Telleri kuzey kutbundaki fondan kapağından içerideki kutuya doğru itin. Bu, tüm sıkı çalışmanızı mahvetmeden kabloları yerinde tutacaktır.

· WS2812-B yonga seti: Bu LED halkası, WS2812-B yonga setini kullanır ve 4 çıkış pinine sahiptir (GND, 5V, Din, Dout)

· Güç: Bu modüle güç sağlamak için 5V ve 1A'e kadar akım sağlamanız gerekir.

· Sinyaller: LED halkasını kontrol etmek için, Dijital Giriş pini (Din) aracılığıyla sinyal göndermeniz gerekir.

Dijital Çıkış pinini (Dout) kullanarak buna başka bir LED halkası bağlayabilirsiniz.

Adım 5: Güç Kullanım Kılavuzu

Güç Kullanım Kılavuzu
Güç Kullanım Kılavuzu

· Genel Kural: Halka üzerindeki her bir LED, Kırmızı, Yeşil ve Mavi ışığı iletebilir. Bu renklerin kombinasyonları başka herhangi bir rengi oluşturabilir. Beyaz ışık, bu renklerin üçünden aynı anda oluşur. Her bir renk, o rengi maksimum parlaklıkta gösterirken yaklaşık 20mA akım çekecektir. Maksimum parlaklıkta beyaz parlarken, tek LED yaklaşık 60mA çekecektir.

· Güç çarpanı: Her LED 60mA'ya kadar çekebiliyorsa ve tek bir LED halkasında 16 LED varsa, LED halkası başına 16x60mA = 960mA. Güvende olmak ve matematiği kolaylaştırmak için, LED halkası başına 1A'ya yetecek kadar akım sağladığınızdan emin olmanız gerekir. Modüllerden tam işlevsellik elde etmek istiyorsanız, 4 LED halka 5V 4A güç kaynağına ihtiyaç duyacaktır.

Adım 6: Fritzing Diyagramı

Fritzing Diyagramı
Fritzing Diyagramı
Fritzing Diyagramı
Fritzing Diyagramı

TEK LED Halkayı Arduino'ya Bağlama

· 3 kablo: LED halkasına bağlanmak için sadece 3 kabloya ihtiyacınız var. Herhangi bir zamanda sadece birkaç LED yakmayı planlıyorsanız, bu sorun olmaz. · GÜVENLİ YOL: Bunu yapmanın daha güvenli bir yolu, hem Arduino'ya hem de LED halkasına güç sağlamak için harici bir güç kaynağı kullanmaktır.

· Elektrolitik kondansatör: Güç kaynağı uçlarının pozitif ve negatif terminalleri arasına büyük bir 4700 uF 16V Elektrolitik kondansatör bağlayarak, kondansatörün negatif ayağı güç kaynağının negatif terminaline takılıyken, LED halkalarınızı herhangi bir başlangıçtan koruyacaksınız. akımın hücumu.

Direnci Koruma: Arduino'nun Dijital Pin 9'u (D9) ile LED Ring'in Dijital Giriş pini (Din) arasına 300-400 ohm'luk bir direnç yerleştirilmesi de tavsiye edilir. Bu, ilk LED'i olası voltaj yükselmelerinden korur

Uygun kablolar: Bu LED halkalarından birkaçını birbirine zincirlemeyi planlıyorsanız (aşağıya bakın), muhtemelen kabloları mümkün olduğunca kısa tutmak ve içlerinden geçen akımı kaldırabilecek düzgün bir ölçü kablosu kullanmak isteyeceksiniz.

Adım 7: İKİ LED Halkayı Arduino'ya Bağlama

İKİ LED Halkayı Arduino'ya Bağlama
İKİ LED Halkayı Arduino'ya Bağlama

Üç ekstra kablo: Ek bir LED halkası bağlamak için yalnızca 3 ekstra kabloya ihtiyacınız var. Bir kablonun birinci LED halkasının Dijital çıkışını (Dout) 2. LED halkasının Dijital Girişine (Din) bağlaması gerekir.

Güvende kalın: Bir kez daha, bunu yapmanın daha güvenli bir yolu, harici bir güç kaynağı, terminallerde büyük bir elektrolitik kapasitör ve Arduino ile ilk LED halkasının dijital giriş pimi arasında 300-400 ohm'luk bir direnç kullanmaktır.

Adım 8: DÖRT LED Halkayı Arduino'ya Bağlama

DÖRT LED Halkayı Arduino'ya Bağlama
DÖRT LED Halkayı Arduino'ya Bağlama

Altmış Dört LED: Her ek LED halkası için 3 ekstra kabloya ihtiyacınız vardır. 4 LED halkası toplam 64 LED sağlar.

AMPS'yi izleyin:Tam parlaklıkta, bu kurulum potansiyel olarak 4 amper'e kadar (veya LED halkası başına yaklaşık 1 amper) çekebilir

Harici Besleme gerekli: Çok fazla olduğunda bu LED'lere güç sağlamak için harici bir güç kaynağı kullanmak çok önemlidir. Harici bir güç kaynağı kullanmazsanız ve yanlışlıkla TÜM LED'leri yakarsanız, mikrodenetleyiciye aşırı akım çekişinden zarar verebilirsiniz.

Adım 9: Bağlantı Tabloları

Bağlantı Tabloları
Bağlantı Tabloları

Arduino'ya ONE LED Ring nasıl bağlanır

Adım 10: İKİ LED Halkayı Arduino'ya Bağlama

İKİ LED Halkayı Arduino'ya Bağlama
İKİ LED Halkayı Arduino'ya Bağlama

Adım 11: Sonuç

Çözüm
Çözüm
Çözüm
Çözüm
Çözüm
Çözüm

Bu eğitimde size bir Disco Ball pastasını nasıl dekore edeceğinizi ve ayrıca ICStation'dan RGB LED halkalarını nasıl kullanacağınızı gösterdik.

ICStation'daki dört ürünün bağlantısı:

www.icstation.com/icstation-atmega328-board…

www.icstation.com/icstation-ws2812-programm…

www.icstation.com/1pcs-dupont-wire-10cm-254…

www.icstation.com/bread-board-jump-line-jum…

Arkadaşlarımız Scott ve ailesi için Led hakkında harika bir sunum yaptıkları için teşekkürler.

İçeriğin orijinal kaynağı arkadaşımız Scott'tan geldi:

arduinobaics.blogspot.com.au/2016/06/ardui…

Bu pasajı beğendiyseniz, lütfen arkadaşlarınızla paylaşın.

Daha iyi bir inceleme yapabileceğinizi düşünüyorsanız, lütfen yorum yapın.

IC ürünleri hakkında daha fazla fikriniz varsa, lütfen bize e-posta ile ulaşın: [email protected]

Önerilen: