Ľubovoľná farba sa skladá z troch farieb: červenej, zelenej a modrej. Pomocou jednoduchej LED RGB môžete vygenerovať ľubovoľnú farbu. Obmedzenie RGB LED však spočíva v tom, že má vo vnútri tri samostatné LED, a na fungovanie jednej RGB LED vyžaduje tri piny ľubovoľného mikrokontroléra. Nie je teda možné prepojiť stovky LED diód s jedným mikrokontrolérom.
Na prekonanie tohto problému Adafruit vytvoril NeoPixel LED Strip. Na napájanie niekoľkých LED diód RGB NeoPixel vyžaduje iba tri piny. Dva piny sú pre napájanie a zem a jeden pin je pre Data In (DI). Kolík Data IN sa používa na adresovanie a riadenie rôznych LED diód v páse podľa ich farby, jasu atď. Na spustenie NeoPixels je však potrebný mikrokontrolér. Arduino sa s NeoPixel používa veľmi často, takže sa dnes naučíme prepojiť LED NeoPixel s Arduino. Viac informácií o NeoPixeloch sa dozviete na stránkach AdaFruit.
Tu v tomto projekte kontrolujeme LED NeoPixel pomocou Arduina a TFT LCD dotykovej obrazovky. Vytvorili sme 7 dotykových tlačidiel rôznych farieb na 2,4-palcovom TFT LCD displeji a keď klepneme na tlačidlo určitej farby na LCD displeji, LED pás NeoPixel sa rozsvieti rovnakou farbou ako toto tlačidlo. Tu sme použili NeoPixel Digital RGB LED pásik s 30 LED diódami.
NeoPixel RGB LED môže byť osvetlená ľubovoľnou farbou, a tak môžeme pridať viac tlačidiel na LCD, aby sa po klepnutí na tieto tlačidlá rozsvietila LED vo viacerých farbách. Pomocou kodovania je možné pridať aj ďalšie nádherné efekty a vzory. Môžete si vytvoriť kompletný dekoračný systém ovládaný pomocou Arduina pomocou NEO Pixel LED a tento systém môžete ovládať pomocou LCD, ktoré leží blízko vás.
Požadované komponenty:
- Arduino Mega alebo akýkoľvek iný model Arduino
- 2,4 palcový TFT LCD štít s ovládačom SPFD5408
- NeoPixel RGB LED pásik
- Pripojenie drôtov
- Kábel USB alebo adaptér 12 V 1A
Pripojenie obvodu:
Ak chcete pripojiť NeoPixels Strip k Arduino Mega, jednoducho pripojte 5V pin Arduino na 5V pin NeoPixel a GND Mega na GND NeoPixel a potom pripojte DI pin (NeoPixel) ( digitálny vstup) do Digital Pin č. 36 Arduino Mega. Opatrne namontujte dotykový štít TFT LCD na Arduino tak, aby GND MEGA ležal pod GND LCD a 5V pin Arduina sa pripája na 5V pin LCD.
Dbajte na to, aby ste pri pripájaní k Arduino nezamieňali GND a 5V kolík pásky NeoPixel LED, inak by sa páska LED NeoPixel poškodila. Upozorňujeme tiež, že tu sme použili Arduino Mega, ale môžete použiť akýkoľvek iný model Arduino.
Pripojenie k Arduino a NeoPixel RGB LED pásikom:
Arduino piny |
Piny NeoPixel Strip |
5v |
5v |
GND |
GND |
Digitálny pin č. 36 |
DI (údaje v) |
Pracovné vysvetlenie:
Práca NeoPixel LED s Arduino je veľmi jednoduchá. Stačí klepnúť na dotykové tlačidlo ľubovoľnej farby na LCD displeji, ktorým chcete svietiť na LED pásik NeoPixel. LED bude podľa tejto farby svietiť. Kód je napísaný tak, aby ste mohli túto úlohu donekonečna opakovať bez nutnosti resetovania Arduino Mega. Kódové a ukážkové video si môžete pozrieť na konci tohto článku.
Po klepnutí na ľubovoľné tlačidlo na LCD displeji sa dáta odošlú do Arduina a Arduino ďalej pošle inštrukciu do NeoPixel Strip, aby sa zodpovedajúcim spôsobom rozsvietilo. Napríklad LED pás NeoPixel svieti zelenou farbou, keď klepneme na zelené tlačidlo na LCD displeji, a LED pásik svieti červenou farbou, keď stlačíme červené tlačidlo atď.
Vysvetlenie programovania:
Na prepojenie TFT LCD s Arduinom sme použili niektoré knižnice. Všetky knižnice sú v jednom súbore rar a je možné ich stiahnuť z tohto odkazu. Kliknite na „Klonovať alebo stiahnuť“ a „Stiahnuť ZIP“ a pridajte ich do priečinka knižnice Arduino. Táto knižnica je potrebná pre správne fungovanie TFT LCD.
#include
Mali by ste otestovať svoj TFT LCD vypálením Arduina s príkladmi kódov uvedených v knižnici a skontrolovať, či kódy fungujú správne. Najskôr skontrolujte test grafiky, potom vykonajte kalibráciu a nakoniec test farby. Ak zistíte, že všetky funkcie fungujú dobre, začnite kódom uvedeným v tomto návode.
Pre správne fungovanie RGB LED pásky NeoPixel budete potrebovať ešte jednu knižnicu, ktorú si môžete stiahnuť odtiaľto.
#include
Ako už bolo popísané vyššie, digitálny kolík 36 konektora MEGA je pripojený k DI kolíku NeoPixel LED Strip, ako je uvedené v kóde nižšie. Počet LED diód v páse je tiež 30, ako je napísané v kóde:
# definovať PIN 36 # definovať NUM_LEDS 30
Farby displeja LCD tlačidiel sú označené niektorými kódmi. Tieto kódy môžete zmeniť podľa LCD displeja.
#define BLACK 0x0000 #define YELLOW 0x001F #define GREEN 0xF800 #define RED 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define BLUE 0xFFE0 #define WHITE 0xFFFF
Niektoré parametre pre tlačidlá, ako je veľkosť a umiestnenie, sú definované v kóde:
uint16_t šírka = 0; uint16_t výška = 0; uint16_t x = 40; uint16_t y = výška - 20; uint16_t w = 75; uint16_t h = 20;
Parameter h sa používa na nastavenie veľkosti tlačidla na LCD displeji. Ak nastavíte hodnotu 40, veľkosť gombíku sa zdvojnásobí. y parameter je y súradnica LCD.
Dotykové tlačidlá sú označené číslami, ako je uvedené v kóde:
#define BUTTONS 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_BUTTON_BUTTON_BUTTON_
Niektoré funkcie sa používajú na vyžarovanie farby z NeoPixel, ako napríklad:
void EmitCyan (); void EmitWhite (); void EmitGreen (); void EmitYellow (); void EmitPink (); void EmitBlack ();
Ak chcete nájsť digitálne RGB hodnoty, ktoré sa majú obstarávať pre danú farbu, môžete sledovať tento odkaz. Stačí zadať farbu, ktorou má váš pás NeoPixel svietiť, nájsť hodnoty RGB pre túto farbu a vložiť vyššie uvedené funkcie.
void initializeButtons () funkcia slúži na dávanie textu a farieb tlačidlám a tiež na ich umiestnenie na požadované miesto na LCD displeji.
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………………..
void showCalibration () funkcia slúži na nakreslenie tlačidiel na LCD displeji.
void showCalibration () {tft.setCursor (40, 0); pre (uint8_t i = 0; i <8; i ++) {buttons.drawButton (); }}
Ďalej je uvedený úplný Arduino kód na svietenie pásky LED NeoPixel v požadovanej farbe. Kód je trochu zdĺhavý, ale jednoduchý, kódu ľahko porozumiete.