Enhver farve består af tre farver: Rød, grøn og blå, ved hjælp af en simpel RGB-LED kan du generere enhver farve. Men begrænsningen af RGB LED er, at den har tre separate LED'er inde i den og kræver tre ben på en hvilken som helst mikrokontroller til at betjene en RGB LED. Så det er ikke muligt at forbinde hundredvis af lysdioder med en mikrocontroller.
For at løse dette problem har Adafruit skabt NeoPixel LED Strip. Det kræver kun tre ben for at køre flere RGB NeoPixel LED'er. To ben er til strøm og jord, og en ben er til Data In (DI). Data IN-pin bruges til at adressere og styre de forskellige lysdioder i stripen med deres farve, lysstyrke osv. Men det kræver, at en Microcontroller kører NeoPixels. Arduino bruges meget almindeligt med NeoPixel, så i dag lærer vi at interface NeoPixel LED'er med Arduino. Du kan lære mere om NeoPixels på AdaFruit.
Her i dette projekt styrer vi NeoPixel LED ved hjælp af Arduino og TFT LCD berøringsskærm. Vi har oprettet 7 berøringsknapper i forskellige farver på 2,4 tommer TFT LCD, og når vi trykker på knappen med en bestemt farve på LCD'et, lyser NeoPixel LED-stripen med den samme farve på den knap. Her har vi brugt NeoPixel Digital RGB LED-strip på 30 LED'er.
NeoPixel RGB LED kan belyses i enhver farve, og så kan vi tilføje flere knapper på LCD'et for at lyse LED i flere farver ved at trykke på disse knapper. Andre smukke effekter og mønstre kan også tilføjes ved hjælp af kodning. Du kan opbygge et komplet Arduino-styret dekorationssystem ved hjælp af NEO Pixel LED'er og kan styre dette system ved hjælp af LCD, der ligger tæt på dig.
Nødvendige komponenter:
- Arduino Mega eller enhver anden Arduino-model
- 2,4 tommer TFT LCD-skærm med SPFD5408-controller
- NeoPixel RGB LED Strip
- Tilslutning af ledninger
- USB-kabel eller 12 V 1A-adapter
Kredsløbstilslutninger:
For at forbinde NeoPixels Strip til Arduino Mega skal du bare slutte Arduino 5V-pin til NeoPixels 5V-pin og Mega's GND til NeoPixel's GND og derefter tilslutte NeoPixel DI-pin (data ind) til Digital Pin nr.36 af Arduino Mega. Monter forsigtigt TFT LCD Touch Shield over Arduino, så GND af MEGA ligger under GND af LCD og 5V pin af Arduino forbinder til 5V pin af LCD.
Pas på ikke at udskifte GND og 5V ben NeoPixel LED-strip, mens du slutter den til Arduino, ellers beskadiger NeoPixel LED-stripen. Bemærk også, at her har vi brugt Arduino Mega, men du kan bruge enhver anden Arduino-model.
Forbindelser til Arduino til NeoPixel RGB LED Strip:
Arduino Pins |
NeoPixel Strips Pins |
5v |
5v |
GND |
GND |
Digital pin nr. 36 |
DI (data ind) |
Arbejdsforklaring:
At arbejde med NeoPixel LED med Arduino er meget let. Bare tryk på berøringsknappen i en hvilken som helst farve på LCD'et, hvor du vil gløde NeoPixel LED-stripen. LED'en lyser i henhold til den farve. Koden er skrevet på en sådan måde, at du kan gentage denne opgave uendeligt uden at skulle nulstille Arduino Mega. Du kan kontrollere koden og demo-videoen i slutningen af denne artikel.
Når der trykkes på en knap på LCD'et, sendes data til Arduino, og Arduino sender yderligere instruktion til NeoPixel Strip for at lyse i overensstemmelse hermed. For eksempel lyser NeoPixel LED-strip i grøn farve, når vi trykker på den grønne knap på LCD-skærmen, og LED-strip lyser i rød farve, når vi trykker på den røde knap og så videre.
Programmeringsforklaring:
For at interface TFT LCD med Arduino har vi brugt nogle biblioteker. Alle bibliotekerne findes i en rar fil og kan downloades fra dette link. Klik på 'Clone or download' og 'Download ZIP' fil og tilføj til din Arduino biblioteksmappe. Dette bibliotek er nødvendigt for, at TFT LCD fungerer korrekt.
#omfatte
Du skal teste din TFT LCD ved at brænde Arduino med eksempler på koder i biblioteket og kontrollere, om koder fungerer korrekt. Kontroller først grafiktesten, kalibrer derefter testen og til sidst malingstesten. Hvis du finder ud af, at alle funktioner alle fungerer fint, skal du starte med koden, der er angivet i denne vejledning.
Også for at NeoPixel RGB LED-strip fungerer korrekt, skal du bruge endnu et bibliotek, som kan downloades herfra.
#omfatte
Som beskrevet tidligere er Digital Pin 36 af MEGA forbundet til DI-pin på NeoPixel LED Strip som vist i koden nedenfor. Antallet af lysdioder i strimlen er også 30, således som det er skrevet i kode:
#definer PIN 36 #definer NUM_LEDS 30
Visningsfarver på LCD-knapper er betegnet med nogle koder. Du kan ændre disse koder i henhold til din LCD.
#definer SORT 0x0000 #definer GUL 0x001F #definer GRØN 0xF800 #definer RØD 0x07E0 #definer CYAN 0x07FF #definer MAGENTA 0xF81F #definer BLÅ 0xFFE0 #definer HVID 0xFFFF
Nogle parametre for knapperne som størrelse og position er defineret i koden:
uint16_t bredde = 0; uint16_t højde = 0; uint16_t x = 40; uint16_t y = højde - 20; uint16_t w = 75; uint16_t h = 20;
h parameter bruges til at justere størrelsen på knappen på LCD. Hvis du gør det 40, bliver størrelsen på knappen fordoblet. y-parameter er y-koordinat for LCD.
Touch-knapper er angivet med tal som vist i kode:
#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 #defineBUTTON
Nogle funktioner bruges til at udsende farven fra NeoPixel som:
ugyldigt EmitCyan (); ugyldigt EmitWhite (); ugyldigt EmitGreen (); ugyldigt EmitGul (); ugyldigt EmitPink (); ugyldigt EmitBlack ();
For at finde de digitale RGB-værdier, der skal indtastes for den givne farve, kan du følge dette link. Indtast bare den farve, du vil have din NeoPixel-strimmel til at lyse, find RGB-værdierne for den farve og læg ovenstående funktioner.
void initializeButtons () -funktionen bruges til at give tekst og farve til knapper og også til at placere dem på det ønskede sted på LCD-skærmen.
ugyldigt initializeButtons () {uint16_t x = 40; uint16_t y = højde - 20; uint16_t w = 75; uint16_t h = 40; uint8_t spacing_x = 5………………..
void showCalibration () funktion bruges til at tegne knapperne på LCD'et.
ugyldigt showCalibration () {tft.setCursor (40, 0); for (uint8_t i = 0; i <8; i ++) {buttons.drawButton (); }}
Yderligere er den fulde Arduino-kode til glødning af NeoPixel LED-striben i ønsket farve angivet nedenfor. Koden er lidt lang, men enkel, du kan let forstå koden.