WS2812B: iyo yemashiripiti RGB LED tambo

WS2812B RGB akatungamira strip

Chokwadi iwe unofanirwa kuwedzera yekubata kwemavara kune ako DIY mapurojekiti. Kune izvi, vagadziri vazhinji vanoshandisa iyo inozivikanwa WS2812B RGB LED Mapepa, Uyo yekuwana akasiyana emavara ekudzora uye anokwezva mwenje mhedzisiro kune ako mapurojekiti. Ehe iwo mitsetse inoenderana zvizere nemabhodhi eArduino, saka unenge usina kana dambudziko kana uchiedza kuzvibatanidza.

Unogona kuvawana mu kureba kwe1 mita, semuenzaniso, kunyangwe ivo vachigona kusiyana zvichienderana nerudzi rwehuwandu hwema LED emita imwe neimwe yavanayo. Semuenzaniso, pane kubva ku30 maLED kusvika ku144 maLED. Nekudaro, kana iwe uchida kureba kureba kuti uwane yakakura nzvimbo, iwe zvakare une dzimwe sarudzo pamusika senge RGB LED mapaneru kana iwe unogona nguva dzose kushandisa akati wandei mabara

Iyi mitsetse haisi chinhu chinopfuura akateedzana akaunganidzwa RGB maLED uye ndokumira pane yakajairika rutsigiro kuti uzvimatanidze kuita mitsetse. Asi mashandiro ayo akafanana neakaparadzaniswa maRGB maLED.

Chii chinonzi WS2812B?

RGB WS2812B yakavhenekera LED tambo

Chaizvoizvo iyo WS2812B haisi iyo strip yacho pachayo, asi yega ye masero kana madiki maRGB maPlate mahwendefa anosanganisira. Vanogona kuiswa mumapoka muchimiro chetambo kana pani, kuti iwe ugone kugadzira akasiyana masisitimu maererano nenhamba yavo uye chimiro. Iyo mitsetse inogadzira inoshanduka mitsetse, asi iwe unogona zvakare kuwana WS2812B pane PCB mapaneru ayo asiri.

Kana iwe uchida, iwe unogona kuwana izvo zvishandiso WS2812B zvakasiyana kugadzira maumbirwo aunoda iwe pachako. Semuenzaniso, angangoita zana mayuniti avo anowanzoita mari inopfuura zvishoma € 100.

rgb yakatungamira kutema micheka

Iwe unofanirwa zvakare kuziva kuti unovakanda unogona kuzvicheka nekasi kwese kwaunoda, hazvireve kuti vanomira kushanda. Saka iwe unogona chete kuve neRGB maLED aunoda. Muchokwadi, ine zvimwe zvekumaka (matatu emhangura mapedhi) iwe aunogona kucheka kuburikidza. Kana iwe ukacheka mukati memapadhi aya, unenge uine matriki matatu kune rumwe rutivi rwechirevo uye kune imwe yacho kana uchizoda kushandisa zvimwe zvidimbu, mavari unogona kusungira mapini kuti ubatanidzike nyore.

Pinout uye dhatasheet

WS2812B muchitokisi chakareruka

Iyo yakazvimiririra WS2812B cell ine zvainowana uye zvabuda

Kuti uwane rumwe ruzivo nezve yako RGB LED tambo WS2812B Unogona kuverenga iyo datasheet inopihwa nemugadziri wega wega, ipapo iwe unogona kutarisa zvese zvakadzama zviyero uye zvehunyanzvi hunhu kuti uzive mashandisiro azvo nemazvo, mukuwedzera pakuziva ese mashandiro uye mitsara.

Kana ari pin outHaisi iro dambudziko hombe kana, mitsetse iyi ine kubatana kuri nyore kwaunogona kugona kubva pakutanga usina ruzivo rwakanyanya. Kune matatu chete aripo, kunyangwe imwe neimwe WS2812B cell iine hukama hwakawanda ...

Iwe unofanira kungoita batanidza pamatanho ega ega pini yeVcc inopa chikafu kune iyo 5V kubva kuArduino kana kubva kune imwe magetsi, iyo GND pasi, hongu, uye pakupedzisira iyo DI inova iyo imwe ichaenda kune chero chinobuda cheiyo microcontroller kuti ishandise iyo RGB maLED pamutsara.

Ukatarisa Sero reWS2812B Iwe uchaona kuti ine iyo In Data In kana DI yekuisa, uye iyo Vcc uye GND magetsi. Ipapo ichave nezvimwe zvitatu zvinobuda, izvo zvichabatanidzwa kune rinotevera sero remutsara, uye sero rinotevera richava nezvibudiro zvaro zvakabatanidzwa kune yekuisa kweinotevera zvichingodaro kudzamara mutsetse wese wapera ...

Ndizvozvo chaizvo DI kana kuisa data iyo inonakidza kumisikidza maRGB maLED, uye imwe chete iyoyo ichave yakabatana neData Kunze kana KUITA izvo zvinotora iwo iwo iwo ruzivo kune inotevera chinongedzo mumutsara. Uye saka inopararira mukati mese mutsetse.

Tenga WS2812B RGB LED Strips

RGB akatungamira strip strip

Unogona tenga nemutengo usinganyanyi kukwirira muzvitoro zvakasiyana siyana. Iwe zvakare unavo muAmazon mune akasiyana mafomati. Mimwe mienzaniso ndeiyi:

Kuedzwa naArduino uye WS2812B

Arduino UNO neWS2812B schema

Sezvaunogona kufungidzira, nemapini matatu chete zviri nyore kwazvo batanidza kune arduino sezvauri kuona mumufananidzo uri pamusoro. Iwe unongofanirwa kubatanidza 5v uye GND kune iyo WS2812B strip, uye iyo DI kune chabuda chaunoda paArduino. Rangarira kuti kana iwe ukachinja pini iwe unofanirwa zvakare kugadzirisa iyo sosi kodhi kuitira kuti chirongwa chishande nemazvo.

Raibhurari yakashandiswa FAST-LED Tenzi kuita kuti zvinhu zvive nyore uye kuwana zviri nyore mashandiro ekutyaira maRGB maLED. Kuti uikwanise uye uibatanidze zvakanaka muArduino IDE, ingo tora raibhurari kubva pane icho chinongedzo, wobva wasunungura iyo Zip uye utumidze zita rakaburitswa kana dhairekitori se FastLED, wobva waendesa iro folda kune iyo maraibhurari eArduino IDE akaiswa mune yako kuiswa. . Wobva wavhurazve iyo Arduino IDE uye ichave yakagadzirira ...

Kana ari sketch kodhi, inogona kuve yakapusa sekodhi inotevera. Kana iwe usiri kuda kuteedzera uye kunama, unogona kuzviwana pakati pemienzaniso inouya. Saka enda kuFaira> Mienzaniso> FastLED> ColourPalette.

Rangarira kuchinja pini 14 kubva pamuenzaniso kuenda pa5 inova iyo yandaishandisa mumufananidzo. Kana iwe unogona kubatanidza kupini 14 uye dzivisa kugadzirisa kodhi. Sezvaunoda.
#include <FastLED.h>

#define LED_PIN     5
#define NUM_LEDS    14
#define BRIGHTNESS  64
#define LED_TYPE    WS2811
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];

#define UPDATES_PER_SECOND 100

// This example shows several ways to set up and use 'palettes' of colors
// with FastLED.
//
// These compact palettes provide an easy way to re-colorize your
// animation on the fly, quickly, easily, and with low overhead.
//
// USING palettes is MUCH simpler in practice than in theory, so first just
// run this sketch, and watch the pretty lights as you then read through
// the code.  Although this sketch has eight (or more) different color schemes,
// the entire sketch compiles down to about 6.5K on AVR.
//
// FastLED provides a few pre-configured color palettes, and makes it
// extremely easy to make up your own color schemes with palettes.
//
// Some notes on the more abstract 'theory and practice' of
// FastLED compact palettes are at the bottom of this file.



CRGBPalette16 currentPalette;
TBlendType    currentBlending;

extern CRGBPalette16 myRedWhiteBluePalette;
extern const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM;


void setup() {
    delay( 3000 ); // power-up safety delay
    FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
    FastLED.setBrightness(  BRIGHTNESS );
    
    currentPalette = RainbowColors_p;
    currentBlending = LINEARBLEND;
}


void loop()
{
    ChangePalettePeriodically();
    
    static uint8_t startIndex = 0;
    startIndex = startIndex + 1; /* motion speed */
    
    FillLEDsFromPaletteColors( startIndex);
    
    FastLED.show();
    FastLED.delay(1000 / UPDATES_PER_SECOND);
}

void FillLEDsFromPaletteColors( uint8_t colorIndex)
{
    uint8_t brightness = 255;
    
    for( int i = 0; i < NUM_LEDS; i++) {
        leds[i] = ColorFromPalette( currentPalette, colorIndex, brightness, currentBlending);
        colorIndex += 3;
    }
}


// There are several different palettes of colors demonstrated here.
//
// FastLED provides several 'preset' palettes: RainbowColors_p, RainbowStripeColors_p,
// OceanColors_p, CloudColors_p, LavaColors_p, ForestColors_p, and PartyColors_p.
//
// Additionally, you can manually define your own color palettes, or you can write
// code that creates color palettes on the fly.  All are shown here.

void ChangePalettePeriodically()
{
    uint8_t secondHand = (millis() / 1000) % 60;
    static uint8_t lastSecond = 99;
    
    if( lastSecond != secondHand) {
        lastSecond = secondHand;
        if( secondHand ==  0)  { currentPalette = RainbowColors_p;         currentBlending = LINEARBLEND; }
        if( secondHand == 10)  { currentPalette = RainbowStripeColors_p;   currentBlending = NOBLEND;  }
        if( secondHand == 15)  { currentPalette = RainbowStripeColors_p;   currentBlending = LINEARBLEND; }
        if( secondHand == 20)  { SetupPurpleAndGreenPalette();             currentBlending = LINEARBLEND; }
        if( secondHand == 25)  { SetupTotallyRandomPalette();              currentBlending = LINEARBLEND; }
        if( secondHand == 30)  { SetupBlackAndWhiteStripedPalette();       currentBlending = NOBLEND; }
        if( secondHand == 35)  { SetupBlackAndWhiteStripedPalette();       currentBlending = LINEARBLEND; }
        if( secondHand == 40)  { currentPalette = CloudColors_p;           currentBlending = LINEARBLEND; }
        if( secondHand == 45)  { currentPalette = PartyColors_p;           currentBlending = LINEARBLEND; }
        if( secondHand == 50)  { currentPalette = myRedWhiteBluePalette_p; currentBlending = NOBLEND;  }
        if( secondHand == 55)  { currentPalette = myRedWhiteBluePalette_p; currentBlending = LINEARBLEND; }
    }
}

// This function fills the palette with totally random colors.
void SetupTotallyRandomPalette()
{
    for( int i = 0; i < 16; i++) {
        currentPalette[i] = CHSV( random8(), 255, random8());
    }
}

// This function sets up a palette of black and white stripes,
// using code.  Since the palette is effectively an array of
// sixteen CRGB colors, the various fill_* functions can be used
// to set them up.
void SetupBlackAndWhiteStripedPalette()
{
    // 'black out' all 16 palette entries...
    fill_solid( currentPalette, 16, CRGB::Black);
    // and set every fourth one to white.
    currentPalette[0] = CRGB::White;
    currentPalette[4] = CRGB::White;
    currentPalette[8] = CRGB::White;
    currentPalette[12] = CRGB::White;
    
}

// This function sets up a palette of purple and green stripes.
void SetupPurpleAndGreenPalette()
{
    CRGB purple = CHSV( HUE_PURPLE, 255, 255);
    CRGB green  = CHSV( HUE_GREEN, 255, 255);
    CRGB black  = CRGB::Black;
    
    currentPalette = CRGBPalette16(
                                   green,  green,  black,  black,
                                   purple, purple, black,  black,
                                   green,  green,  black,  black,
                                   purple, purple, black,  black );
}


// This example shows how to set up a static color palette
// which is stored in PROGMEM (flash), which is almost always more
// plentiful than RAM.  A static PROGMEM palette like this
// takes up 64 bytes of flash.
const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM =
{
    CRGB::Red,
    CRGB::Gray, // 'white' is too bright compared to red and blue
    CRGB::Blue,
    CRGB::Black,
    
    CRGB::Red,
    CRGB::Gray,
    CRGB::Blue,
    CRGB::Black,
    
    CRGB::Red,
    CRGB::Red,
    CRGB::Gray,
    CRGB::Gray,
    CRGB::Blue,
    CRGB::Blue,
    CRGB::Black,
    CRGB::Black
};



// Additionl notes on FastLED compact palettes:
//
// Normally, in computer graphics, the palette (or "color lookup table")
// has 256 entries, each containing a specific 24-bit RGB color.  You can then
// index into the color palette using a simple 8-bit (one byte) value.
// A 256-entry color palette takes up 768 bytes of RAM, which on Arduino
// is quite possibly "too many" bytes.
//
// FastLED does offer traditional 256-element palettes, for setups that
// can afford the 768-byte cost in RAM.
//
// However, FastLED also offers a compact alternative.  FastLED offers
// palettes that store 16 distinct entries, but can be accessed AS IF
// they actually have 256 entries; this is accomplished by interpolating
// between the 16 explicit entries to create fifteen intermediate palette
// entries between each pair.
//
// So for example, if you set the first two explicit entries of a compact 
// palette to Green (0,255,0) and Blue (0,0,255), and then retrieved 
// the first sixteen entries from the virtual palette (of 256), you'd get
// Green, followed by a smooth gradient from green-to-blue, and then Blue.



Iva wekutanga kutaura

Siya yako yekutaura

Your kero e havazobvumirwi ichibudiswa. Raida minda anozivikanwa ne *

*

*

  1. Inotarisira iyo data: Miguel Ángel Gatón
  2. Chinangwa cheiyo data: Kudzora SPAM, manejimendi manejimendi.
  3. Legitimation: Kubvuma kwako
  4. Kutaurirana kwedata
  5. Dhata yekuchengetedza: Dhatabhesi inobatwa neOccentus Networks (EU)
  6. Kodzero: Panguva ipi neipi iwe unogona kudzora, kupora uye kudzima ruzivo rwako