Bármely szín három színből áll: piros, zöld és kék, egy egyszerű RGB LED segítségével bármilyen színt előállíthat. De az RGB LED korlátozása az, hogy három külön LED van benne, és egy RGB LED működtetéséhez bármelyik mikrovezérlő három érintkezője szükséges. Tehát nem lehet több száz LED-et összekapcsolni egy mikrovezérlővel.
Ennek a problémának a leküzdésére az Adafruit létrehozta a NeoPixel LED szalagot. Csak három csap szükséges több RGB NeoPixel LED vezetéséhez. Két érintkezõ az áramra és a földre, egy pedig a Data In (DI). A Data IN pin segítségével a szalag különböző LED-eket címezhetjük és vezérelhetjük színükkel, fényességükkel stb. Az Arduino-t nagyon gyakran használják a NeoPixel-lel, így ma megtanuljuk a NeoPixel LED-ek összekapcsolását az Arduino-val. A NeoPixels-ről többet megtudhat az AdaFruit oldalon.
Ebben a projektben a NeoPixel LED-et irányítjuk Arduino és TFT LCD érintőképernyővel. 7 különböző színű érintőgombot hoztunk létre a 2,4 hüvelykes TFT LCD-n, és amikor megérintjük az LCD bizonyos színű gombját, a NeoPixel LED-szalag ugyanolyan színnel világít, mint ez a gomb. Itt NeoPixel Digital RGB LED szalagot használtunk 30 LED-ből.
A NeoPixel RGB LED bármilyen színnel megvilágítható, így további gombokat adhatunk az LCD-n, hogy a gombokat megérintve több színben világítson a LED. Más gyönyörű effektek és minták is hozzáadhatók a Coding használatával. NEO Pixel LED-ek segítségével teljes Arduino vezérlésű dekorációs rendszert készíthet, és ezt a rendszert a közelében fekvő LCD-vel vezérelheti.
Szükséges alkatrészek:
- Arduino Mega vagy bármely más Arduino modell
- 2,4 hüvelykes TFT LCD-pajzs SPFD5408 vezérlővel
- NeoPixel RGB LED szalag
- Vezetékek csatlakoztatása
- USB kábel vagy 12 V 1A adapter
Áramköri csatlakozások:
A NeoPixels Strip csatlakoztatásához az Arduino Mega-hoz egyszerűen csatlakoztassa az Arduino 5V tűt a NeoPixel 5V tűjéhez, a Mega GND-jét pedig a NeoPixel GND-jéhez, majd csatlakoztassa a NeoPixel DI tűt (adat be) az Arduino Mega 36. számú digitális tűjéhez. Óvatosan szerelje fel a TFT LCD érintőképernyőt az Arduino fölé úgy, hogy a MEGA GND az LCD GND alatt legyen, és az 5 V tűs Arduino csatlakozzon az 5 V tűs LCD-hez.
Ügyeljen arra, hogy ne cserélje ki a GND-t és az 5 V tűs NeoPixel LED-szalagot, miközben az Arduinóhoz csatlakoztatja, különben károsíthatja a NeoPixel LED-szalagot. Vegye figyelembe azt is, hogy itt Arduino Mega-t használtunk, de bármilyen más Arduino modellt is használhat.
Kapcsolatok az Arduino-hoz a NeoPixel RGB LED szalaghoz:
Arduino Pins |
NeoPixel Strip gombjai |
5v |
5v |
GND |
GND |
Digital Pin no. 36 |
DI (adatok) |
Munka magyarázat:
A NeoPixel LED használata az Arduino-val nagyon egyszerű. Csak érintse meg bármelyik érintőgombot az LCD-n, amelyen meg akarja világítani a NeoPixel LED-szalagot. A LED ennek a színnek megfelelően világít. A kódot úgy írják meg, hogy ezt a feladatot végtelenül megismételhesse anélkül, hogy vissza kellene állítania az Arduino Mega-t. A cikk végén ellenőrizheti a kódot és a bemutató videót.
Ha bármelyik gombot megérinti az LCD-n, az adatokat elküldi az Arduino-nak, és az Arduino további utasításokat küld a NeoPixel Strip-nek, hogy ennek megfelelően világítson. Például a NeoPixel LED-szalag zöld színben világít, amikor megérintjük a zöld gombot az LCD-n, és a LED-szalag piros színnel világít, amikor megnyomjuk a piros gombot stb.
Programozási magyarázat:
A TFT LCD és az Arduino interfészéhez néhány könyvtárat használtunk. Az összes könyvtár egy rar fájlban található, és letölthető erről a linkről. Kattintson a „Klónozás vagy letöltés” és a „Letöltés ZIP” fájlokra, és adja hozzá az Arduino könyvtár mappájához. Erre a könyvtárra van szükség a TFT LCD megfelelő működéséhez.
#include
Meg kell próbára TFT LCD elégetésével Arduino példákkal megadott kódokat a könyvtár és ellenőrizze, hogy kódokat megfelelően működik. Először ellenőrizze a grafikus tesztet, majd kalibrálja a tesztet és végül festék tesztet. Ha úgy találja, hogy az összes szolgáltatás jól működik, akkor kezdje az ebben az oktatóanyagban megadott kóddal.
A NeoPixel RGB LED szalag megfelelő működéséhez még egy könyvtárra lesz szükség, amely innen letölthető.
#include
Amint azt korábban leírtuk, a MEGA digitális 36-as érintkezője csatlakozik a NeoPixel LED-szalag DI-tűjéhez, az alábbi kód szerint. Szintén a LED-ek száma a szalagban 30, a kód szerint:
#define PIN 36 #define NUM_LEDS 30
Az LCD gombok színét néhány kód jelöli. Ezeket a kódokat az LCD-jének megfelelően módosíthatja.
#define BLACK 0x0000 #define YELLOW 0x001F #define GREEN 0xF800 #define RED 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define BLUE 0xFFE0 #define WHITE 0xFFFF
A gombok néhány paraméterét, például méretét és helyzetét a kód határozza meg:
uint16_t szélesség = 0; uint16_t magasság = 0; uint16_t x = 40; uint16_t y = magasság - 20; uint16_t w = 75; uint16_t h = 20;
h paraméterrel lehet beállítani a gomb méretét az LCD-n. Ha 40-re áll, akkor a gomb mérete megduplázódik. y paraméter az LCD koordinátája.
Az érintőgombokat számokkal jelöljük, a kód szerint:
#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 #define BUTTON_LightBlue 6 #
Néhány funkciót használnak a NeoPixel színének kibocsátására, például:
érvénytelen EmitCyan (); érvénytelen EmitWhite (); érvénytelen EmitGreen (); érvénytelen EmitYellow (); érvénytelen EmitPink (); érvénytelen EmitBlack ();
Az adott színre beírandó digitális RGB-értékek megtalálásához kövesse ezt a linket. Csak írja be azt a színt, amellyel a NeoPixel szalagnak világítania kell, keresse meg az adott szín RGB értékeit, és tegye be a fenti funkciókat.
void initializeButtons () funkcióval szöveget és színt adhat a gomboknak, és elhelyezheti azokat az LCD-n a kívánt helyen.
void initializeButtons () {uint16_t x = 40; uint16_t y = magasság - 20; uint16_t w = 75; uint16_t h = 40; uint8_t spacing_x = 5………………..
void showCalibration () funkció az LCD gombjainak rajzolására szolgál.
void showCalibration () {tft.setCursor (40, 0); for (uint8_t i = 0; i <8; i ++) {gombok.drawButton (); }}
Az alábbiakban a NeoPixel LED-szalag kívánt színű izzójának teljes Arduino kódja található. A kód kissé hosszú, de egyszerű, könnyen megértheti a kódot.