İçindekiler:

Adreslenebilir Şerit LED Polis Strobo: 4 Adım
Adreslenebilir Şerit LED Polis Strobo: 4 Adım

Video: Adreslenebilir Şerit LED Polis Strobo: 4 Adım

Video: Adreslenebilir Şerit LED Polis Strobo: 4 Adım
Video: Arduino Şerit Ledli Polis Çakarı 2024, Temmuz
Anonim
Image
Image

Bu Police Strobo Light Bar, tek bir WS2812B adreslenebilir şerit LED çubuğu (97 cm, 29 LED) ve bir Arduino Nano ile yapılmıştır.

Bu çözüm, aksi takdirde standart Kırmızı-Beyaz-Mavi LED'ler çubuğu (polis strobo ışıkları için kullanıldığı gibi) veya RGB LED'leri çubuğu ile mümkün olmayan farklı renk şemasıyla birkaç farklı ışık modeli oluşturmaya izin verir.

Yerel yasaları kontrol etmedikçe ve bunu yapmak için yasal/geçerli bir nedeniniz olmadıkça bunu aracınızda kullanmamanızı tavsiye ederim.

Adım 1: WS2812B Şerit LED'leri Nasıl Çalışır?

Devre Kablolaması
Devre Kablolaması

WS2812B LED şeridi, WS2812B LED sürücüsü IC'nin entegre edildiği tip 5050 RGB LED'lerden oluşur.

Üç ayrı Kırmızı, Yeşil ve Mavi LED'in yoğunluğuna bağlı olarak, istediğimiz herhangi bir rengi simüle etmek mümkündür.

Bu LED'lerin en güzel yanı, Arduino kartımızdan tek bir pin ile tüm LED şeridini bile kontrol etmenin mümkün olmasıdır.

Her LED'in her iki ucunda güç için iki ve veriler için bir olmak üzere üç konektör vardır. Ok, veri akış yönünü gösterir. Önceki LED'in veri çıkış pedi, sonraki LED'in Veri Giriş pedine bağlanır. Şeridi istediğimiz herhangi bir boyuta kesebiliriz, ayrıca bazı teller kullanarak LED'leri uzaklaştırabiliriz.

5V DC üzerinde çalışırlar ve her Kırmızı, Yeşil ve Mavi LED yaklaşık 20mA çeker veya bu, tam parlaklıkta her LED için toplam 60mA'dır.

Arduino'ya USB üzerinden güç veriliyorsa, 5V pini yalnızca 400 mA civarında işleyebilir ve varil güç konektörü kullanılarak güç verildiğinde, 5V pini yaklaşık 900 mA işleyebilir. Bu nedenle, daha fazla LED kullanıyorsanız ve çekecekleri akım miktarı yukarıda belirtilen limitleri aşıyorsa, ayrı bir 5V güç kaynağı kullanmanız gerekir.

Böyle bir durumda iki Toprak hattını da birbirine bağlamanız gerekir.

Ek olarak, bu hattaki gürültüyü azaltmak için Arduino ve LED şerit veri pimi arasında yaklaşık 330 Ohm'luk bir direnç ve ayrıca güç kaynağını yumuşatmak için 5V ve Toprak boyunca yaklaşık 100 uF'lik bir kapasitör kullanılması önerilir..

Adım 2: Devre Kablolaması

Arduino nano'yu WS2812B adreslenebilir şerit LED çubuğuna bağlamak için kablolama şeması çok basittir.

Modelin lehimlenmiş tellere veya pin başlığına sahip olması gerekiyor, test için bir pin başlığı kullandım ancak gerçek bir proje için telleri lehimlemeyi düşünmelisiniz.

WS2812B adreslenebilir şerit ledin her iki tarafında 3 lehim pedi vardır.

+5V (şemadaki kırmızı kablo) Arduino'nun +5V'sine gider;

GND (şemadaki siyah tel) Arduino'nun GND'sine gider;

DIN (şemadaki yeşil kablo), 330 Ohm'luk bir direnç aracılığıyla Arduino PIN 5'e (veriler için) gider.

Adım 3: Kod Kurulumu

Arduino IDE'yi FAST LED Library ile kullandım

Öncelikle FastLED kitaplığını eklememiz, LED şerit verilerinin bağlı olduğu pini tanımlamamız, LED sayısını tanımlamamız ve ayrıca bir CRGB tipi dizi tanımlamamız gerekiyor.

Bu tip, üç Kırmızı, Yeşil ve Mavi renk kanalının her biri için bir baytlık üç veri üyesine sahip LED'leri içerir.

Kurulum bölümünde sadece FastLED'i yukarıda tanımlanan parametrelerle başlatmamız gerekiyor. Artık ana döngüde LED'lerimizi istediğimiz gibi kontrol edebiliyoruz. CRGB işlevini kullanarak, Kırmızı, Yeşil ve Mavi renk olmak üzere üç parametreyi kullanarak herhangi bir LED'i herhangi bir renge ayarlayabiliriz. LED'lerde değişiklik yapabilmek için FastLED.show() fonksiyonunu çağırmamız gerekiyor.

FastLED kitaplığı, gerçekten ilginç animasyonlar ve ışık gösterileri yapmak için kullanılabilecek birçok başka işleve sahiptir, bu nedenle bir sonraki LED projenizi ışıldatmak yalnızca hayal gücünüze bağlıdır.

Kodum, standart RGB LED çubuğuyla başka türlü mümkün olmayan birkaç farklı LED modeli içeriyor.

Desenler void loop() bölümünde tek bir alt program olarak değiştirilebilir veya geri çağrılabilir.

Adım 4: Son Not

Kodum, ihtiyaçlarınızı karşılayacak şekilde kodu değiştirmek için size bir başlangıç noktası sağlamak için her bir kalıbın varyasyonlarından geçer.

GitHub'ımdaki kod

Önerilen: