Mikä tahansa väri koostuu kolmesta väristä: punainen, vihreä ja sininen. Yksinkertaisen RGB-LEDin avulla voit luoda minkä tahansa värin. Mutta RGB-LEDin rajoitus on, että sen sisällä on kolme erillistä LED-valoa, ja yhden RGB-LEDin käyttäminen vaatii minkä tahansa mikro-ohjaimen kolme nastaa. Joten ei ole mahdollista liittää satoja LED-valoja yhteen mikro-ohjaimeen.
Tämän ongelman ratkaisemiseksi Adafruit on luonut NeoPixel LED Strip -liuskan. Useiden RGB NeoPixel -LED-valojen ajamiseen tarvitaan vain kolme nastaa. Kaksi nastaa on virtaa ja maata varten ja yksi nasta datatuloa (DI) varten. Data IN -tappia käytetään osoittamaan ja ohjaamaan nauhan eri LEDejä niiden väreillä, kirkkaudella jne. Mutta NeoPixelsin suorittamiseen tarvitaan mikro-ohjainta. Arduinoa käytetään hyvin yleisesti NeoPixelin kanssa, joten tänään opimme liittämään NeoPixel-LEDit Arduinoon. Voit oppia lisää NeoPixelsistä AdaFruitista.
Tässä projektissa ohjaamme NeoPixel LED -valoa Arduino- ja TFT LCD -kosketusnäytöllä. Olemme luoneet 7 eriväristä kosketuspainiketta 2,4 tuuman TFT-nestekidenäytössä ja kun napautamme tietyn väristä painiketta LCD-näytöllä, NeoPixel-LED-nauha valaisee samalla painikkeella. Tässä olemme käyttäneet NeoPixel Digital RGB LED-nauhaa, jossa on 30 LEDiä.
NeoPixel RGB LED voidaan valaista millä tahansa värillä, joten voimme lisätä LCD-näyttöön lisää painikkeita, jotta LED hehkuisi enemmän värejä napauttamalla näitä painikkeita. Muita kauniita tehosteita ja kuvioita voidaan lisätä myös koodauksen avulla. Voit rakentaa täydellisen Arduino-ohjatun koristelujärjestelmän käyttämällä NEO Pixel -LED-valoja ja hallita tätä järjestelmää lähelläsi sijaitsevalla LCD-näytöllä.
Vaaditut komponentit:
- Arduino Mega tai mikä tahansa muu Arduino-malli
- 2,4 tuuman TFT-LCD-suojus SPFD5408-ohjaimella
- NeoPixel RGB LED -nauha
- Johtojen liittäminen
- USB-kaapeli tai 12 V 1A-sovitin
Piiriliitännät:
Voit liittää NeoPixels kaistan Arduino Mega yksinkertaisesti liittää Työläs 5V pin NeoPixel n 5V pin ja Megan GND NeoPixel GND ja kytke NeoPixel DI tappi (dataa) Digital Nastan nro 36 Arduino Mega. Asenna TFT LCD -kosketussuoja varovasti Arduinon päälle siten, että MEGA: n GND on nestekidenäytön GND: n alapuolella ja 5 V: n Arduino-nasta liitetään 5 V: n nastaan LCD-näyttöä.
Älä vaihda GND: tä ja 5 V: n NeoPixel-LED-nauhaa liittäessäsi sitä Arduinoon, muuten se vahingoittaa NeoPixel-LED-nauhaa. Huomaa myös, että tässä olemme käyttäneet Arduino Megaa, mutta voit käyttää mitä tahansa muuta Arduino-mallia.
Liitännät Arduinoon NeoPixel RGB-LED-nauhaan:
Arduino-nastat |
NeoPixel Stripin nastat |
5v |
5v |
GND |
GND |
Digitaalinen tappi nro. 36 |
DI (tiedot sisään) |
Työselitys:
Työstö NeoPixel LED Arduino on erittäin helppoa. Napauta vain minkä tahansa väristä kosketuspainiketta LCD-näytössä, jossa haluat hehkuttaa NeoPixel-LED-nauhaa. LED syttyy kyseisen värin mukaan. Koodi on kirjoitettu siten, että voit toistaa tämän tehtävän loputtomasti tarvitsematta nollata Arduino Megaa. Voit tarkistaa koodin ja esittelyvideon tämän artikkelin lopussa.
Kun mitä tahansa painiketta napautetaan nestekidenäytössä, tiedot lähetetään Arduinolle ja Arduino lähettää edelleen ohjeet NeoPixel Stripille syttymään vastaavasti. Esimerkiksi NeoPixel-LED-nauha palaa vihreänä, kun napautamme vihreää painiketta LCD-näytössä, ja LED-nauha palaa punaisena, kun painamme punaista painiketta ja niin edelleen.
Ohjelmoinnin selitys:
TFT LCD: n ja Arduinon liittämiseen olemme käyttäneet joitain kirjastoja. Kaikki kirjastot ovat yhdessä rar-tiedostossa ja ne voidaan ladata tältä linkiltä. Napsauta 'Kloonaa tai lataa' ja 'Lataa ZIP' -tiedosto ja lisää Arduino-kirjastokansioon. Tätä kirjastoa tarvitaan TFT LCD: n moitteettomaan toimintaan.
#sisältää
Sinun pitäisi testata TFT LCD polttamalla Arduino esimerkkejä annettuja koodeja kirjastossa ja tarkista koodit toimivat oikein. Tarkista ensin grafiikkatesti, kalibroi sitten testi ja lopuksi maalitesti. Jos huomaat, että kaikki ominaisuudet toimivat hyvin, aloita tässä opetusohjelmassa annetulla koodilla.
NeoPixel RGB LED -nauhan moitteettomaan toimintaan tarvitaan vielä yksi kirjasto, joka voidaan ladata täältä.
#sisältää
Kuten aiemmin on kuvattu, MEGA: n digitaalinen nasta 36 on kytketty NeoPixel LED Stripin DI-nastaan alla olevan koodin mukaisesti. Myös Stripin LEDien lukumäärä on 30, kuten koodiin kirjoitetaan:
#define PIN 36 #define NUM_LEDS 30
LCD-painikkeiden näyttövärit on merkitty joillakin koodeilla. Voit muuttaa näitä koodeja nestekidenäytön mukaan.
#define BLACK 0x0000 #define KELTAINEN 0x001F #define GREEN 0xF800 #define RED 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define BLUE 0xFFE0 #define WHITE 0xFFFF
Jotkut painikkeiden parametrit, kuten koko ja sijainti, on määritelty koodissa:
uint16_t leveys = 0; uint16_t korkeus = 0; uint16_t x = 40; uint16_t y = korkeus - 20; uint16_t, w = 75; uint16_t h = 20;
h-parametria käytetään säätämään nestekidenäytön painikkeen kokoa. Jos teet siitä 40, painikkeen koko kaksinkertaistuu. y-parametri on LCD-näytön y-koordinaatti.
Kosketuspainikkeet on merkitty numeroilla koodin mukaisesti:
#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 #
Joitakin toimintoja käytetään värin tuottamiseen NeoPixelistä, kuten:
mitätöi EmitCyan (); mitätöi EmitWhite (); mitätöi EmitGreen (); mitätöi EmitKeltainen (); mitätöi EmitPink (); mitätöi EmitBlack ();
Voit etsiä digitaalisen RGB-arvot voidaan asettaa kyseiseen tietyllä värillä, voit seurata linkkiä. Syötä vain väri, jonka haluat NeoPixel-nauhasi hehkuvan, etsi kyseisen värin RGB-arvot ja aseta yllä olevat toiminnot.
void initializePainikkeita () käytetään tekstin ja värien antamiseen painikkeille ja myös niiden asettamiseen haluamaasi kohtaan LCD-näytöllä.
void initializeButtons () {uint16_t x = 40; uint16_t y = korkeus - 20; uint16_t, w = 75; uint16_t h = 40; uint8_t väli_x = 5………………..
void show Kalibrointi () -toimintoa käytetään piirtämään nestekidenäytön painikkeet.
void showCalibration () {tft.setCursor (40, 0); for (uint8_t i = 0; i <8; i ++) {painikkeet.drawButton (); }}
Alla on annettu täydellinen Arduino-koodi NeoPixel-LED-nauhan hehkuttamiseen halutulla värillä. Koodi on vähän pitkä, mutta yksinkertainen, voit ymmärtää koodin helposti.