Libovolná barva se skládá ze tří barev: červené, zelené a modré, pomocí jednoduché RGB LED můžete generovat jakoukoli barvu. Omezení RGB LED ale spočívá v tom, že má uvnitř tři samostatné LED diody a pro ovládání jedné RGB LED vyžaduje tři piny libovolného mikrokontroléru. Není tedy možné připojit stovky LED diod k jednomu mikrokontroléru.
K překonání tohoto problému vytvořil Adafruit NeoPixel LED Strip. K řízení několika LED diod RGB NeoPixel vyžaduje pouze tři piny. Dva piny jsou pro napájení a uzemnění a jeden pin pro Data In (DI). Kolík Data IN se používá k adresování a ovládání různých LED diod v proužku pomocí jejich barvy, jasu atd. K provozu NeoPixels však vyžaduje mikrokontrolér. Arduino se s NeoPixel velmi často používá, takže se dnes naučíme propojovat LED diody NeoPixel s Arduinem. Více se o NeoPixels dozvíte na AdaFruit.
Zde v tomto projektu kontrolujeme LED NeoPixel pomocí Arduina a TFT LCD dotykové obrazovky. Na 2,4 palcovém TFT LCD jsme vytvořili 7 dotykových tlačítek různých barev a když klepneme na tlačítko určité barvy na LCD, LED pásek NeoPixel se rozsvítí stejnou barvou tohoto tlačítka. Zde jsme použili NeoPixel Digital RGB LED pásek 30 LED.
NeoPixel RGB LED lze osvětlit libovolnou barvou, a tak můžeme přidat více tlačítek na LCD, abychom po klepnutí na tato tlačítka rozsvítili LED více barvami. Pomocí kódu můžete také přidat další krásné efekty a vzory. Pomocí systému NEO Pixel LED můžete vytvořit plně dekorační systém řízený Arduinem a tento systém můžete ovládat pomocí LCD, které leží poblíž vás.
Požadované komponenty:
- Arduino Mega nebo jakýkoli jiný model Arduino
- 2,4palcový TFT LCD štít s řadičem SPFD5408
- NeoPixel RGB LED pásek
- Připojení vodičů
- Kabel USB nebo adaptér 12 V 1A
Připojení obvodu:
Chcete-li připojit NeoPixels Strip k Arduino Mega, jednoduše připojte 5V pin Arduino na 5V pin NeoPixel a Mega GND na GND NeoPixel a poté připojte NeoPixel DI pin (data in) na digitální Pin č. 36 Arduino Mega. Opatrně připojte dotykový štít TFT LCD přes Arduino tak, aby GND MEGA ležel pod GND LCD a 5V pin Arduino se připojil k 5V pin LCD.
Dbejte na to, abyste při připojování k Arduino nezaměňovali GND a 5V kolík LED pásky NeoPixel, jinak by došlo k poškození LED pásky NeoPixel. Všimněte si také, že zde jsme použili Arduino Mega, ale můžete použít jakýkoli jiný model Arduino.
Připojení k Arduino na RGB LED pásek NeoPixel:
Arduino piny |
Piny NeoPixel Strip |
5v |
5v |
GND |
GND |
Digitální pin č. 36 |
DI (data in) |
Pracovní vysvětlení:
Práce s LED NeoPixel s Arduinem je velmi snadná. Stačí klepnout na dotykové tlačítko libovolné barvy na LCD displeji, kterým chcete svítit LED pásek NeoPixel. LED se rozsvítí podle této barvy. Kód je napsán takovým způsobem, abyste tento úkol mohli nekonečně opakovat, aniž byste museli resetovat Arduino Mega. Na konci tohoto článku si můžete prohlédnout kód a ukázkové video.
Když na LCD stisknete jakékoli tlačítko, data se odešlou do Arduina a Arduino dále odešle instrukce do NeoPixel Strip, aby se odpovídajícím způsobem rozsvítily. Například LED pásek NeoPixel svítí zeleně, když klepneme na zelené tlačítko na LCD a LED pás svítí červeně, když stiskneme červené tlačítko atd.
Vysvětlení programování:
Pro rozhraní TFT LCD s Arduinem jsme použili některé knihovny. Všechny knihovny přicházejí v jednom souboru rar a lze je stáhnout z tohoto odkazu. Klikněte na „Klonovat nebo stáhnout“ a „Stáhnout ZIP“ a přidejte do složky knihovny Arduino. Tato knihovna je nutná pro správné fungování TFT LCD.
#zahrnout
Měli byste otestovat TFT LCD vypálením Arduina s ukázkovými kódy uvedenými v knihovně a zkontrolovat, zda kódy fungují správně. Nejprve zkontrolujte grafický test, poté proveďte kalibraci a nakonec test barvy. Pokud zjistíte, že všechny funkce fungují dobře, začněte s kódem uvedeným v tomto kurzu.
Pro správnou funkci RGB LED pásky NeoPixel budete potřebovat ještě jednu knihovnu, kterou si můžete stáhnout zde.
#zahrnout
Jak bylo popsáno výše, digitální kolík 36 MEGA je připojen k DI kolíku NeoPixel LED Strip, jak je znázorněno v kódu níže. Také počet LED diod ve stripu je 30, jak je napsáno v kódu:
#define PIN 36 #define NUM_LEDS 30
Barvy displeje LCD tlačítek jsou označeny některými kódy. Tyto kódy můžete změnit podle svého LCD.
#define BLACK 0x0000 #define YELLOW 0x001F #define GREEN 0xF800 #define RED 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define BLUE 0xFFE0 #define WHITE 0xFFFF
Některé parametry tlačítek, jako je velikost a poloha, jsou definovány v kódu:
uint16_t width = 0; uint16_t výška = 0; uint16_t x = 40; uint16_t y = výška - 20; uint16_t w = 75; uint16_t h = 20;
Parametr h se používá k nastavení velikosti tlačítka na LCD. Pokud nastavíte 40, velikost tlačítka se zdvojnásobí. y parametr je y souřadnice LCD.
Dotyková tlačítka jsou označena čísly, jak je znázorněno v kódu:
#define TLAČÍTKA 9 #define BUTTON_Red 0 #define BUTTON_DarkRed 1 #define BUTTON_RED 2 #define BUTTON_DarkGreen 3 #define BUTTON_DeepRed 4 #define BUTTON_Blue 5 #defight BUTTON_LUTBON 6
Některé funkce se používají k vyzařování barvy z NeoPixel, jako například:
void EmitCyan (); void EmitWhite (); void EmitGreen (); void EmitYellow (); void EmitPink (); void EmitBlack ();
Chcete-li najít digitální hodnoty RGB, které mají být zadány pro danou barvu, můžete použít tento odkaz. Jednoduše zadejte barvu, kterou má váš pásek NeoPixel svítit, najděte hodnoty RGB pro tuto barvu a vložte výše uvedené funkce.
Funkce void initializeButtons () se používá k přidávání textu a barev k tlačítkům a také k jejich umístění na požadované místo na LCD.
void initializeButtons () {uint16_t x = 40; uint16_t y = výška - 20; uint16_t w = 75; uint16_t h = 40; uint8_t spacing_x = 5………………..
funkce void showCalibration () slouží k nakreslení tlačítek na LCD displeji.
void showCalibration () {tft.setCursor (40, 0); for (uint8_t i = 0; i <8; i ++) {buttons.drawButton (); }}
Dále je uveden úplný kód Arduino pro zářící LED pásek NeoPixel v požadované barvě. Kód je trochu zdlouhavý, ale jednoduchý, kódu snadno porozumíte.