Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

28 Nisan 2021 Çarşamba

WS2812B Adreslenebilir RGB LED ile Arduino

 

WS2812B Adreslenebilir RGB LED ile Arduino

WS2812B, en popüler adreslenebilir RGB LED'dir. İster dekorasyon amaçlı ister hobi projelerinde kullanılsın, kolaylıkları, parlak renkleri, gerekli düşük voltajları için kullanılırlar. En önemlisi, programlanabilir bir özellik ile RGB LED'in rengini ve parlaklığını kontrol etmeye yardımcı olan dahili bir entegre sürücü içerir. Bu programlanabilir özellik onu akıllı hale getirir ve bu da farklı görsel efektlerin görüntülenmesine yardımcı olur.



WS2812B Adreslenebilir RGB LED şerit




























WS2812B Giriş

WS2812B, 5050 paketinde üretilmiş akıllı bir kontrol RGB LED ve kontrol ünitesidir. Her adreslenebilir led'in, kendi ihtiyacına göre rengi ve parlaklığı bağımsız olarak kontrol etmesini sağlayan kendi sürücü IC'si vardır.

WS2812B Pinout

Aşağıdaki şemada WS2812B Adreslenebilir RGB ledinin pin çıkışı gösterilmektedir. Her birimin (piksel) üç LED'i (bir kırmızı, bir yeşil ve bir mavi) ve ledin rengini ve parlaklığını kontrol etmek için bir sürücü IC'si vardır. Dört pimden oluşur. Bir güç kaynağı pimi, bir toprak pimi ve biri giriş, diğeri çıkış için olmak üzere 2 veri pini.

WS2812B Adreslenebilir RGB LED pin çıkışı şeması

Pin Yapılandırma Ayrıntıları

Pim yapılandırma ayrıntıları aşağıda tablo biçiminde listelenmiştir:

Numaraİsim SoyisimFonksiyon
1VDDGüç kaynağı pimi
2YAPGiriş veri pini
3VSSZemin pimi
4DINÇıkış veri pini

WS2812B RBG LED Özellikleri ve Spesifikasyonları

  • Güç kaynağı voltajı (VDD): +3,5 ila + 5,3 Volt
  • Giriş sinyali voltajı: -0,5 - VDD + 0,5 Volt
  • Giriş sinyali akımı: 1uA
  • Besleme Kapasitesi: 15 pF
  • Çalışma Frekansı: 400Hz
  • Veri aktarım hızı: 800Kbps

WS2812B'nin harika özelliklerinden bazıları şunlardır:

  1. Sürücü IC'si olan ters taraflı gerilim koruması, güç kaynağı ters bağlansa bile hasar görmez.
  2. Paketinde güç ve elektrik sıfırlama devresi bulunmaktadır.
  3. Herhangi bir sinyal bozulmasını önlemek için yerleşik bir yeniden şekillendirme devresi sağlanmıştır.
  4. Tek hatlı bir arayüzdür.
  5. Güç kaynağı, kontrol ünitesi ve RGB Led arasında ortaktır.

Teknik ayrıntılar, anahtarlama ve elektrik özellikleri hakkında daha fazla bilgi için WS2812B veri sayfasını kontrol edin Veri sayfasına bağlantı, makalenin altında verilmiştir.

Alternatif Seçenekler

  • WS28212
  • WS2813
  • APA-109B

WS2812B RBG LED İç Bileşenleri

Aşağıdaki şekil WS2812B RBG LED'in dahili bileşenlerini göstermektedir. RGB LED kalıpları, bir seri programlanabilir kontrolör ve bir 5050 LED paketinden oluşur.

WS2812B Adreslenebilir RGB LED bileşenleri

WS2812B Adreslenebilir Seri Denetleyici

Seri denetleyicide, verileri seri olarak alan ve kayıt defterinde depolayan bir SISO (seri giriş seri çıkış) 24-bit kaydı vardır. Ayrıca, seri olarak alınan verilere göre kontrolör RGB LED'in parlaklığını ve renklerini kontrol eder.

WS2812B denetleyici kayıt haritası

Bu 24 bitlik kayıt B0-B7, R0-R7 ve G0-G7 gibi 8 bitlik 3 parçaya bölünmüştür. Her bölüm, mavi, kırmızı ve yeşil gibi ilgili renkli LED'in yoğunluk değerlerini içerir. Bu şekilde çeşitli renkler görüntülenir.

Kaç Renk Görüntülenebilir?

Soru şu ki WS2812B Adreslenebilir RGB LED'den kaç renk ışık üretebiliriz? Pekala, basit cevap milyonlarca. 24 bitlik bir kaydın her bölümü 8 bit uzunluğunda olduğundan, bu, her LED rengi için (yeşil, kırmızı, mavi) 256 farklı parlaklık değerinin mümkün olduğu anlamına gelir. Üç renkten oluşan bu 256 seçeneği birleştirirsek, yaklaşık 17 milyon olası renk elde ederiz.

IC ayrıca, çok sayıda LED birbirine bağlanmasına rağmen kaliteden ödün verilmemesi için bir tampona sahiptir. Bu arabellek ayrıca LED'lere papatya dizimi şeklinde veri sağlamak için kullanılır.

WS2812B Adreslenebilir RGB LED'i nasıl kullanılır?

WS2812B Adreslenebilir RGB LED'ler, LED şeritler gibi seri olarak kullanılır. Daha önce tartışıldığı gibi, Din pini verileri seri olarak alır ve Dout pini verileri seri olarak iletir. Dout pini, ilk RGB LED'i tarafından alınan verileri bir sonraki WS2812B RGB LED'e iletmek için kullanılır. Benzer şekilde, saniyenin çıktısı üçüncü WS2812B'nin girdisine gider ve bu böyle devam eder.

WS2812B papatya dizimi bağlantı şeması

Yukarıdaki devre şeması bağlantıları gösterir. Tüm LED'lerin kendi topraklaması, güç kaynağı ve veri pinleri vardır. Tüm LED'lerin güç kaynağı pini olan VDD, ortak bir kaynağa bağlanır. Aynısı LED'lerin topraklama pimleri için de geçerlidir. Birinci piksel ledinin giriş veri pini, mikrodenetleyicinin dijital pinine veya sinyalin başka herhangi bir kaynağına bağlanır ve verileri alır. Çıkış veri pini daha sonra ikinci piksel ledinin giriş veri pinine bağlanır ve benzer bağlantı led şerit boyunca devam eder.

WS2812B Çalışma

Aşağıdaki şekil WS2812B için 0, 1 yazmak için PWM giriş sinyalini ve 24 bitlik yazmacın her bitine sıfırlama sinyalini gösterir.

PWM Sinyali

Bu adreslenebilir RGB LED düşük, yüksek ve sıfırlama mantığını PWM sinyalinin darbe genişliğine veya görev döngüsüne göre tanımlar.

WS2812B'deki veri iletimi, darbe genişlik modülasyonu prensibine göre çalışır. Aşağıdaki resim 1 ve 0 için darbe genişliğini göstermektedir.

  • Toplam Darbe genişliği: 1.25us
  • Görev döngüsü: 0 için% 36 ve 1 için% 64
  • Darbe genişliğini sıfırla:> 50us
WS2812B LED PWM sinyali

24-Bit Kaydın Her Parçasını Adresleme

Bu RGB LED, tek bir NZR iletişim modu kullanır. Giriş veri pini, mikro denetleyiciden veya başka herhangi bir kaynaktan veri alır. İlk LED pikseli, ilk 24 bitlik veriyi alır, onu veri mandalına geçirir ve geri kalan veriyi yeniden şekillendirme ve büyütme devresine gönderir, bu da onu veri çıkış pini aracılığıyla bir sonraki seri led piksele geçirir. İlk veri setinin tüm led piksellere iletilmesinden sonra, tüm led piksellerin bir sonraki iletim setini gerçekleştirmeye hazır hale getirmek için bir sıfırlama darbesi gönderilir.

Aşağıdaki şekil WS2812B RGB LED'in zamanlama diyagramını göstermektedir. Her WS2812B, zamanlama diyagramında gösterilen sırayla adreslenir. Örneğin, ilk LED için ilk 24 bit, ikinci LED için ikinci 24 bit, üçüncü LED için üçüncü 24 bit ve kullanılan LED sayısına kadar. Her veri seti için iletimden sonra, darbe genişliği 50us olan bir PWM sinyali sağlamalıyız.

WS2812B zamanlama diyagramı

Arduino ile arayüz oluşturma

Bu harika LED'ler hakkında neredeyse her şeyi öğrendikten sonra, gerçek projeye geçiyoruz. Bu bölüm, WS2812B'nin bir Arduino ile arayüzlenmesinin bir örneğini gösterecektir. Led şeridi ve Arduino UNO'nun bağlantılarını şekilde gösterildiği gibi yapın.

WS2812B Adreslenebilir RGB LED arabirimi Arduino ile

Bu devrede, LED'lere 5V Arduino pini ile güç veriyoruz ancak harici bir güç kaynağı kullanılıyorsa, Arduino'nun toprağını gücün toprağına bağlamanız gerekir.

WS2812BArduino UNO
GNDGND
DinD5
5V+ 5V

Arduino Kodu

Bu eğitimde WS2812 LED şeridini kontrol etmek için FastLED kitaplığını kullanacağız. Önce kitaplığı indirin ve Arduino Kitaplığı listenize ekleyin:

#include <FastLED.h>
#define LED_PIN     6
#define NUM_LEDS    8
CRGB leds[NUM_LEDS];
void setup() {
  FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
}
void loop() {
  for (int i = 0; i <= 7; i++) {
    leds[i] = CRGB ( 0, 0, 255);
    FastLED.show();
    delay(40);
  }
  for (int i = 7; i >= 0; i--) {
    leds[i] = CRGB ( 255, 0, 0);
    FastLED.show();
    delay(40);
  }
   for (int i = 0; i <= 7; i++) {
    leds[i] = CRGB ( 0, 255, 0);
    FastLED.show();
    delay(40);
  }
}

İlk olarak, "FastLED" Arduino kütüphanesinin başlık dosyasını dahil ederek başlayın. 

#include <FastLED.h>

LED'lerin sayısını ve Arduino'nun dijital pinini tanımlamak için #define önişlemci direktiflerini kullanın. Burada LED sayısını 8 olarak tanımladık ve Arduino'nun dijital pin 6'sı WS2812B adreslenebilir RGB LED'e seri veri sağlıyor.

 #define LED_PIN    
 #define NUM_LEDS
CRGB leds[NUM_LEDS];


Kurulum işlevinin içinde, LED'lerin yapısına dijital pin numarası ve LED sayısı sağlayın.

FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);

Döngü fonksiyonunun içinde 8 LED'in hepsini tek tek mavi, kırmızı ve yeşil renkte yakıyoruz. Bu for döngüsü, 40 mikrosaniye gecikmeyle ilk LED'den sekizinci LED'e kadar mavi renkli sekiz LED'in tümünü açar.

 for (int i = 0; i <= 7; i++) {
    leds[i] = CRGB ( 0, 0, 255);
    FastLED.show();
    delay(40);
  }
  

İkinci olarak, for döngüsü, 40 mikrosaniye gecikmeyle birinci LED'den sekizinci LED'e kadar tüm sekiz LED'i kırmızı renkli olarak açar.

for (int i = 7; i >= 0; i--) {
    leds[i] = CRGB ( 255, 0, 0);
    FastLED.show();
    delay(40);
  }

Sonunda, son döngü, 40 mikrosaniye gecikmeyle birinci LED'den sekizinci LED'e kadar yeşil renkli sekiz LED'in tümünü yakar.

for (int i = 0; i <= 7; i++) {
    leds[i] = CRGB ( 0, 255, 0);
    FastLED.show();
    delay(40);
  }

Kod Çıkışı

WS2812B Adreslenebilir RGB LED arabirimi Arduino ile

Kullanım Alanları ve Fikirler
  • Dekorasyonlar
  • Arka aydınlatmalar
  • Teyp Işığı işaretleri 
  • Rekreasyonel amaçlı

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.

Hiç yorum yok:

Yorum Gönder

Yorum yazdığınız ve üye olduğunuz için Size teşekkür ederim.Burada olduğunuza göre hepimizin ilgi alanı Elektronik ve Programlama sonsuz bir dünyadayız.Hepimize Başarılar...

Not: Yalnızca bu blogun üyesi yorum gönderebilir.