Сигурно требате додати дашак боје својим самосталним пројектима. За ово многи творци користе чувене ВС2812Б РГБ ЛЕД траке, помоћу којих ћете постићи разнолику контролу боја и прилично атрактивне светлосне ефекте за своје пројекте. То су, наравно, траке у потпуности компатибилне са Ардуино плочама, тако да нећете имати проблема када их покушате интегрисати.
Можете их наћи у дужине од 1 метрана пример, иако могу да варирају у зависности од врсте густине ЛЕД диода за сваки метар који имају. На пример, постоји од 30 ЛЕД до 144 ЛЕД. Међутим, ако су вам потребне веће дужине да бисте добили већу површину, на тржишту имате и друге опције као што су РГБ ЛЕД панели или увек можете користити неколико трака ...
Ове траке нису ништа више од низ састављених РГБ ЛЕД диода и постављени на заједничку потпору како би се групирали у траке. Али његов рад је идентичан засебним РГБ ЛЕД-има.
Шта је ВС2812Б?
Заправо ВС2812Б није сама трака, већ свака од њих ћелије или мале РГБ ЛЕД плоче које укључују. Могу се груписати у облику траке или панела, тако да можете да направите различите конфигурације у погледу њиховог броја и облика. Траке које чине су флексибилне траке, али ВС2812Б можете пронаћи и на ПЦБ плочама које то нису.
Ако желите, можете пронаћи уређаје ВС2812Б одвојено да бисте сами креирали облике који су вам потребни. На пример, око 100 јединица обично коштају нешто више од 10 евра.
Такође бисте требали знати да их бацате можете их исећи маказама где год вам треба, то не значи да престају да раде. Тако можете имати само РГБ ЛЕД диоде које су вам потребне. У ствари, има неке ознаке (три бакарне плочице) које можете прорезати. Ако прорежете ове јастучиће, на једној страни траке имаћете три трака, а на другој, у случају да желите да поново користите остале делове, у њих можете залемити клинове ради лакшег повезивања.
Пиноут и датасхеет
За више информација о вашем РГБ ЛЕД трака ВС2812Б Можете прочитати датасхеет које нуди сваки произвођач, тамо можете консултовати све детаље о димензијама и техничким карактеристикама да бисте знали како их правилно користити, поред тога што знате све радне домете и ограничења.
Као пиноутНи то није главни проблем, ове траке имају једноставну везу коју можете савладати од почетка без превише знања. На располагању су само три, мада свака ВС2812Б ћелија заправо има више веза ...
Једноставно мораш повежите се на свакој траци Вцц пин који напаја траку на 5В од Ардуина или од другог напајања, ГНД до земље, наравно, и на крају ДИ који је други који ће ићи на било који излаз микроконтролера да би активирао РГБ ЛЕД на траци.
Ако погледате ћелија ВС2812Б Видећете да има улаз података или улаз ДИ и напајање Вцц и ГНД. Тада ће имати још три излаза, они ће бити повезани са следећом ћелијом траке, а следећа ћелија ће имати излазе повезане са улазом следеће и тако даље све док цела трака не буде завршена ...
Управо је то ДИ или унос података онај који је занимљив за конфигурисање РГБ ЛЕД диода, и тај исти ће бити повезан на Дата Оут или ДО који ће те исте информације одвести на следећу везу у траци. И тако се шири кроз траку.
Купите ВС2812Б РГБ ЛЕД траке
Можете купујте по не превисокој цени у разним специјализованим продавницама. Имате их и на Амазону у различитим форматима. Неки примери су:
- РГБ ЛЕД траке ВС2812Б од 60 ЛЕД / м.
- РГБ ЛЕД траке ВС2812Б од 100 ЛЕД / м.
- РГБ ЛЕД траке ВС2812Б од 144 ЛЕД / м.
- ВС2812Б РГБ ЛЕД траке од 5 метара од 30 ЛЕД.
- ВС2812Б РГБ ЛЕД траке од 5 метара од 60 ЛЕД.
- ВС2812Б панел
- Свитак од 5 метара РГБ ЛЕД диода.
Тестирање са Ардуином и ВС2812Б
Као што можете да замислите, са само три пина је врло лако повежите се са ардуином као што видите на дијаграму изнад. Само треба да повежете 5в и ГНД на траку ВС2812Б, а ДИ на излаз који желите на Ардуину. Имајте на уму да ако промените пин, морате изменити и изворни код како би програм исправно функционисао.
Као скица код, може бити прилично једноставно попут следећег кода. Ако не желите да копирате и налепите, можете га пронаћи међу примерима који већ долазе. Дакле, идите на Датотека> Примери> ФастЛЕД> ЦолорПалетте.
#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.