Zabłyśnij w swoim domu! [Poradnik]

Dzisiaj na warsztat bierzemy ledy adresowane. A w ogóle to co to takiego…?

Otóż to nic innego jak taśma (pasek) diod RGB, w której możemy dowolnie ustawiać które diody lub dioda ma się zapalić i dodatkowo możemy wybrać jej barwę. Nic zatem nie stoi na przeszkodzie żeby część świeciła się na zielono, część na niebiesko, a reszta żeby migała na czerwono. Najprościej mówiąc- nie ma ograniczeń, nie to co w przypadku innych „zwykłych” ledów. Efekt jaki można uzyskać możecie zobaczyć na filmie umieszczonym pod linkiem na dole artykułu.


Przechodząc do konkretów, co będzie wam potrzebne:


Po zgromadzeniu części łączymy cały układ. Poniżej zdjęcie, schemat i opis podłączenia:

Wtyczkę podłączamy do wejścia zasilacza (L- brązowy, N- niebieski i PE- żółty), a wyjście (5V i GND) podłączamy do dłuższych przewodów w ledach (czerwony- ‚+’, biały- ‚-‚). Z kolei trzy przewody połączone wychodzące z ledów podłączamy do Arduino (czerwony- ‚5V’, biały- ‚GND’, zielony- ‚DIN’ (łączymy poprzez rezystor!)).


Okej, po zmontowaniu układu nie pozostało nic innego jak wgranie programu i podziwianie efektu końcowego. Niezbędnym elementem jest też pobranie biblioteki Adafruit_Neopixel z tej strony: https://github.com/adafruit/Adafruit_NeoPixel. Tak pobraną bibliotekę umieszczamy w folderze /libraries w Arduino i możemy działać dalej!

Poniżej zamieszczam kod wraz z krótkim filmem pokazującym jak działa:

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
  #include <avr/power.h>
#endif

#define PIN            5    //tutaj podajemy numer cyfrowego pinu pod który podłaczamy ledy
#define NUMPIXELS  150    //tutaj podajemy ilość ledów jakie chcemy obsłużyć

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int delayval = 10; // delay na 10ms
int delayval2 = 25; // delay na 20ms

void setup() {
  pixels.begin(); // This initializes the NeoPixel library.
}

void loop() {
  
//kazdy piksel ma swój indywidualny numer. Indeksowanie zaczyna się od 0 i kończy na liczbie ledów-1
  for(int i=0;i<NUMPIXELS;i++){
    // pixels.Color - tutaj podajemy wartości z zakresu 0-255 dla (G,R,B)
    pixels.setPixelColor(i, pixels.Color(0,150,0)); 
    pixels.show(); // To nam wykonuje instrukcje, czyli dany piksel zaczyna swiecic tak jak okreslilismy to wyżej
    delay(delayval); // opóźnienie dla uzyskania lepszego efektu
  }

  for(int i=NUMPIXELS;i>0;i--){
    // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
    pixels.setPixelColor(i, pixels.Color(0,0,150)); 
    pixels.show(); 
    delay(delayval); 
  }

  for(int i=0;i<NUMPIXELS;i++){
    pixels.setPixelColor(i, pixels.Color(150,0,0)); 
    pixels.show(); 
    delay(delayval); 
  }
  
  for(int i=NUMPIXELS;i>=0;i--){
    pixels.setPixelColor(i, pixels.Color(150,150,150)); 
    pixels.show(); 
    delay(delayval); 
  }
  
for(int i=NUMPIXELS;i>0;i--){
    pixels.setPixelColor(i, pixels.Color(0,0,0)); 
    pixels.show(); 
    delay(delayval); 
  }

//kilka diod

for(int i=0;i<NUMPIXELS;i++){
    pixels.setPixelColor(i, pixels.Color(0,150,0)); 
    pixels.setPixelColor(i-3, pixels.Color(0,0,0)); 
    pixels.show(); 
    delay(delayval); 
  }

  for(int i=NUMPIXELS;i>0;i--){
    pixels.setPixelColor(i, pixels.Color(0,0,150)); 
    pixels.setPixelColor(i+3, pixels.Color(0,0,0));
    pixels.show(); 
    delay(delayval); 
  }

  for(int i=0;i<NUMPIXELS;i++){
    pixels.setPixelColor(i, pixels.Color(150,0,0)); 
    pixels.setPixelColor(i-3, pixels.Color(0,0,0));
    pixels.show(); 
    delay(delayval); 
  }
  
  for(int i=NUMPIXELS;i>0;i--){
    pixels.setPixelColor(i, pixels.Color(150,150,150)); 
    pixels.setPixelColor(i+3, pixels.Color(0,0,0));
    pixels.show(); 
    delay(delayval); 
  }

//funkcja random(max) wybiera losowe wartości z zakresu 0 do max
  for(int i=0;i<300;i++){
    pixels.setPixelColor(random(NUMPIXELS), pixels.Color(random(255),random(255),random(255))); 
    pixels.show(); 
    delay(delayval2); 
  }
  
}

Link do filmu


Ledy adresowane mają nieograniczone zastosowania- od wykorzystania ich jako zegar po wskaźnik temperatury otoczenia. Dodatkowo idealnie sprawdzą się jako ozdoba pokoju lub propozycja dla graczy- przyklejenie ich za monitorem. Na bank wywołacie efekt „WOW!” u każdego kto do was przyjdzie. W Internecie znajdziecie masę jeszcze innych pomysłów. Próbujcie!

Do dzieła!

 

Wszystkie niezbędne części do wykonania powyższego projektu znajdziecie na Botlandzie-> botland.com.pl