SantyagoSantyago
Avatar

Witaj!
Blog archiwalny. Już niebawem nowy serwis!

YouTube RSS Facebook GitHub

Arduino poradnik

Wstęp

Teoria

Biblioteki

Komponenty

Czujniki i sensory

Rozwiązania i algorytmy

Narzędzia

Mikrokontrolery i Arduino IDE

Arduino i klony

Poradniki wideo

Reklama na Blogu

Najnowsze poradniki

Ostatnie komentarze

Ostatnie fotografie

polskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorywieliczka-szyb-danilowicza

Diody LED ze sterownikem APA102

Diody LED ze sterownikiem APA102 to kolejna propozycja dla osób planujących stworzenie sterowanego oświetlenia z wykorzystaniem diod RGB. W odróżnieniu od opisywanych już wcześniej taśm ze sterownikami WS2812 i WS2813, taśma ta wykorzystuje interfejs SPI 2-wire, zdolny do osiągnięcia prędkości transmisji nawet do 12MHz. Jeśli chodzi zaś o częstotliwość odświeżania, to wynosi ona aż 20kHz, co czyni APA102 wręcz idealną do wszelkich aplikacji POV.

Struktura wewnętrzna diody ze sterownikiem APA102C

Największą przewagą tych taśm nad popularnymi WS2812/WS813 jest właśnie szybki interfejs SPI, który zwalnia nas z pilnowania dość sztywnych timingów, które mogą być problemem przy sterowaniu ich przez wielozadaniowe systemy SoC, jak np. Raspberry PI. 

Co ciekawe - sterownik ten oprócz 256 skali poziomu świecenia diod RGB (grayscale), posiada również 5 bitową kontrolę jasności (32 poziomy).

 
Parametr APA102 WS2812B WS2813 SK6812
Liczba linii danych 2-wire SPI 1 2 1
Częstotliwość odświeżania 20 kHz 400 Hz 2 kHz 1,2 kHz
Timing --- 625 ns  320 ns 300 ns
Maksymalna prędkość danych 12 MHz 800 kHz 800 kHz 800 kHz
Liczba poziomów jasności 256 + 32 256 256 256
Odporna na uszkodzenie diody nie nie tak nie
Dodatkowe elementy na taśmie nie tak nie tak
Cena za 1m / 30 50 zł 21 zł 38 zł 26 zł
Cena za 1m / 60 70 zł 31 zł 51 zł 35 zł

Reasumując APA102 to propozycja z wysokiej półki, która niestety do najtańszych nie należy. Jeśli jednak weźmiemy pod uwagę ogromną częstotliwość odświeżania PWM oraz szybki interfejs SPI, cena nie okazuje się jakoś specjalnie droga w przeliczeniu na diodę.

Sterowanie

Do sterowania APA102 możemy wykorzystać popularną bibliotekę dla Arduino FastLED:

  1. #include "FastLED.h"
  2.  
  3. #define NUM_LEDS 60
  4.  
  5. #define DATA_PIN 11
  6. #define CLOCK_PIN 13
  7.  
  8. CRGB leds[NUM_LEDS];
  9.  
  10. void setup()
  11. {
  12.   FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
  13.   // FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN, RGB, DATA_RATE_MHZ(12)>(leds,NUM_LEDS);
  14.   LEDS.setBrightness(255);
  15. }
  16.  
  17. void fadeall()
  18. {
  19.   for (int i = 0; i < NUM_LEDS; i++)
  20.   {
  21.     leds[i].nscale8(250);
  22.   }
  23. }
  24.  
  25. void loop()
  26. {
  27.     static uint8_t hue = 0;
  28.  
  29.     for (int i = 0; i < NUM_LEDS; i++)
  30.     {
  31.         leds[i] = CHSV(hue++, 255, 255);
  32.         FastLED.show();
  33.         fadeall();
  34.     }
  35.  
  36.     for (int i = (NUM_LEDS)-1; i >= 0; i--)
  37.     {
  38.         leds[i] = CHSV(hue++, 255, 255);
  39.         FastLED.show();
  40.         fadeall();
  41.     }
  42. }

Oprócz standardowej definicji taśmy LED:

addLeds<APA102, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);

możemy skorzystać z rozszerzonej wersji, podając interesującą nas prędkość SPI:

addLeds<APA102, DATA_PIN, CLOCK_PIN, RGB, DATA_RATE_MHZ(5)>(leds,NUM_LEDS);

Szybkość taśm WS2812 można z grubsza porównać do APA102 pracującej z częstotliwością magistrali SPI 1MHz. Jak to wygląda dalej? Poniżej porównanie:

W przypadku Raspberry PI możemy skorzystać z projektu APA102_Pi lub podobnego.

Reklama

Komentarze Komentarze
Avatar 1
Grzegorz Windows 7 / Mozilla Firefox 56.0
28 October 2017 - 02:17 Pawłowice

Pytanie niezwiązane z wpisem.
Czy wrócą na stronę RSS.

Avatar 1
Mth27 Windows / Safari 537.36
09 November 2017 - 14:08 Warszawa

Gdzie mozna dostać taką taśme w polce bo ofert jest niestety niewiele...

Avatar 1
gal Windows 7 / Mozilla Firefox 58.0
04 February 2018 - 20:41 Sieradz

OFFTOP:
chyba autor strony został ojcem :-)
pół roku bez update-u.....
(SUPER strona, kiedy nowe arty?)
pozdrawiam

Avatar 1
bucz Linux Ubuntu / Mozilla Firefox 71.0
03 January 2020 - 17:29 Brak informacji

blog umarł?
szkoda bo super sie czytało