Bilo koja boja sastoji se od tri boje: crvene, zelene i plave, pomoću jednostavnog RGB LED-a možete generirati bilo koju boju. No, ograničenje RGB LED-a je to što u sebi ima tri odvojene LED-e i potrebna su tri pina bilo kojeg mikrokontrolera za rad s jednom RGB LED-om. Dakle, nije moguće povezati stotine LED dioda s jednim mikrokontrolerom.
Da bi prevladao ovaj problem, Adafruit je stvorio NeoPixel LED traku. Potrebna su samo tri pina za pogon nekoliko RGB NeoPixel LED-a. Dva pina su za napajanje i masu, a jedan za za ulaz podataka (DI). Priključak Data IN koristi se za adresiranje i kontrolu različitih LED dioda u traci s njihovom bojom, svjetlinom itd. Ali potreban je mikrokontroler za pokretanje NeoPixelsa. Arduino se vrlo često koristi s NeoPixel-om, pa ćemo danas naučiti povezivati NeoPixel LED-e s Arduinom. Više o NeoPixelima možete saznati na AdaFruit.
![]()
Ovdje u ovom projektu kontroliramo NeoPixel LED pomoću Arduino i TFT LCD zaslona osjetljivog na dodir. Stvorili smo 7 dodirnih tipki različitih boja na 2,4-inčnom TFT LCD-u, a kada dodirnemo tipku određene boje na LCD-u, NeoPixel LED traka svijetli istom bojom tog gumba. Ovdje smo koristili NeoPixel Digital RGB LED traku od 30 LED dioda.
NeoPixel RGB LED može biti osvijetljen u bilo kojoj boji, tako da možemo dodati više gumba na LCD zaslon da bi LED svijetlio u više boja pri kucanju na te gumbe. Ostali lijepi efekti i uzorci također se mogu dodati pomoću kodiranja. Možete izraditi cjeloviti sustav ukrašavanja pod nadzorom Arduina koristeći NEO Pixel LED diode i možete upravljati ovim sustavom LCD zaslonom koji leži u vašoj blizini.
Potrebne komponente:
- Arduino Mega ili bilo koji drugi Arduino model
- 2,4-inčni TFT LCD štit s kontrolorom SPFD5408
- NeoPixel RGB LED traka
- Spajanje žica
- USB kabel ili adapter od 12 V 1A
Kružne veze:
Da biste povezali NeoPixels Strip s Arduino Mega, jednostavno spojite Arduino 5V pin na NeoPixel-ov 5V pin i Mega-GND na NeoPixel-ov GND, a zatim spojite NeoPixel DI pin (podaci u) na Digitalni pin broj 36 Arduino Mega-e. Pažljivo postavite TFT LCD zaslon osjetljiv na dodir preko Arduina tako da se GND MEGA-e nalazi ispod GND-a LCD-a, a 5V pin Arduina spaja se na 5V pin LCD-a.
![]()
![]()
![]()
Pazite da ne zamijenite GND i 5 V pin NeoPixel LED trake dok je spajate na Arduino, inače će oštetiti NeoPixel LED traku. Također imajte na umu da smo ovdje koristili Arduino Mega, ali možete koristiti bilo koji drugi Arduino model.
Priključci za Arduino na NeoPixel RGB LED traku:
|
Arduino pribadače |
Igle za NeoPixel Strip |
|
5v |
5v |
|
GND |
GND |
|
Digitalni pin br. 36 |
DI (podaci u) |
Radno objašnjenje:
Rad NeoPixel LED-a s Arduinom je vrlo jednostavan. Samo dodirnite dodirni gumb bilo koje boje na LCD-u na kojem želite zasvijetliti NeoPixel LED traku. LED će svijetliti u skladu s tom bojom. Kôd je napisan na takav način da ovaj zadatak možete ponavljati unedogled bez potrebe za resetiranjem Arduino Mege. Code i Demo Video možete provjeriti na kraju ovog članka.
![]()
Kada se bilo koji gumb pritisne na LCD-u, podaci se šalju Arduinu, a Arduino dalje šalje upute NeoPixel Stripu da se u skladu s tim zasvijetle. Na primjer, NeoPixel LED traka svijetli u zelenoj boji kada dodirnemo zelenu tipku na LCD-u, a LED traka svijetli u crvenoj boji kada pritisnemo crvenu tipku i tako dalje.
Objašnjenje programiranja:
Za povezivanje TFT LCD-a s Arduinom koristili smo neke knjižnice. Sve se knjižnice isporučuju u jednoj rar datoteci i mogu se preuzeti s ove poveznice. Kliknite datoteku "Kloniraj ili preuzmi" i "Preuzmi ZIP" i dodaj u mapu Arduino biblioteke. Ova je knjižnica potrebna za pravilno funkcioniranje TFT LCD-a.
#include
Trebali biste testirati svoj TFT LCD spaljivanjem Arduina s primjerima kodova danih u knjižnici i provjeriti rade li kodovi ispravno. Prvo provjerite grafički test, zatim kalibrirajte test i na kraju test boja. Ako ustanovite da sve značajke rade u redu, započnite s kodom navedenim u ovom vodiču.
Također za pravilno funkcioniranje NeoPixel RGB LED trake trebat će vam još jedna knjižnica koju možete preuzeti ovdje.
#include
Kao što je ranije opisano, Digitalni pin 36 MEGA spojen je na DI pin NeoPixel LED trake kao što je prikazano u donjem kodu. Također je broj LED dioda u traci 30, kako je napisano u kodu:
#define PIN 36 #define NUM_LEDS 30
Boje zaslona LCD gumba označene su nekim kodovima. Ove kodove možete mijenjati u skladu s LCD zaslonom.
#define BLACK 0x0000 #define YELLOW 0x001F #define GREEN 0xF800 #define RED 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define BLUE 0xFFE0 #define WHITE 0xFFFF
U kodu su definirani neki parametri za tipke poput veličine i položaja:
uint16_t širina = 0; uint16_t visina = 0; uint16_t x = 40; uint16_t y = visina - 20; uint16_t w = 75; uint16_t h = 20;
Parametar h služi za podešavanje veličine gumba na LCD-u. Ako napravite 40, tada će se veličina gumba udvostručiti. y parametar je y koordinata LCD-a.
Dodirni gumbi označeni su brojevima kao što je prikazano u kodu:
#define GUMBI 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 #define BUTTONE_define BUTTON_define BIGHTTONE_Define BUTTON_define BIGHTTONE
Neke se funkcije koriste za emitiranje boje iz NeoPixela poput:
void EmitCyan (); praznina EmitWhite (); void EmitGreen (); void EmitYellow (); void EmitPink (); void EmitBlack ();
Da biste pronašli digitalne RGB vrijednosti koje se unose za datu boju, možete slijediti ovu vezu. Samo unesite boju u kojoj želite da vaša NeoPixel traka svijetli, pronađite RGB vrijednosti za tu boju i stavite gore navedene funkcije.
funkcija void initializeButtons () koristi se za davanje teksta i boje tipkama te za njihovo postavljanje na traženo mjesto na LCD-u.
void initializeButtons () {uint16_t x = 40; uint16_t y = visina - 20; uint16_t w = 75; uint16_t h = 40; uint8_t razmak_x = 5………………..
void show Funkcija Kalibracija () koristi se za crtanje gumba na LCD-u.
void showCalibration () {tft.setCursor (40, 0); za (uint8_t i = 0; i <8; i ++) {gumbi.drawButton (); }}
Dalje je dolje naveden puni Arduino kod za svijetljenje NeoPixel LED trake u željenoj boji. Kôd je pomalo dugačak, ali jednostavan, možete ga lako razumjeti.
