- Mga kinakailangang bahagi:
- Mga Koneksyon sa Circuit:
- Paggawa ng Paliwanag:
- Paliwanag sa Programming:
Ang anumang kulay ay binubuo ng tatlong mga kulay: Pula, berde at asul, gamit ang isang simpleng RGB LED maaari kang makabuo ng anumang kulay. Ngunit ang limitasyon ng RGB LED ay mayroon itong tatlong magkakahiwalay na LED sa loob nito at nangangailangan ng tatlong Pin ng anumang microcontroller upang mapatakbo ang isang RGB LED. Kaya't hindi posible na ikonekta ang daan-daang mga LED sa isang microcontroller.
Upang mapagtagumpayan ang problemang ito Adafruit ay lumikha ng NeoPixel LED Strip. Nangangailangan lamang ito ng tatlong mga pin upang magmaneho ng maraming RGB NeoPixel LEDs. Ang dalawang pin ay para sa lakas at lupa at ang isang Pin ay para sa Data In (DI). Ang data IN pin ay ginagamit upang matugunan at makontrol ang iba't ibang mga LED sa strip sa kanilang kulay, ningning atbp. Ngunit nangangailangan ito ng isang Microcontroller upang patakbuhin ang NeoPixels. Ang Arduino ay karaniwang ginagamit sa NeoPixel, kaya ngayon matututunan natin ang Interface NeoPixel LEDs kasama ang Arduino. Maaari kang matuto nang higit pa tungkol sa NeoPixels sa AdaFruit.
Dito sa proyektong ito kinokontrol namin ang NeoPixel LED gamit ang Arduino at TFT LCD touch Screen. Lumikha kami ng 7 mga pindutan ng ugnayan ng magkakaibang kulay sa 2.4 inch TFT LCD at kapag na-tap namin ang pindutan ng ilang mga kulay sa LCD, ang NeoPixel LED strip ay nag-iilaw sa parehong kulay ng pindutang iyon. Dito ginamit namin ang NeoPixel Digital RGB LED strip ng 30 LEDs.
Ang NeoPixel RGB LED ay maaaring mailawan sa anumang kulay at sa gayon maaari kaming magdagdag ng higit pang mga pindutan sa LCD upang magaan ang LED sa mas maraming mga kulay sa pag-tap sa mga pindutang iyon. Ang iba pang mga magagandang epekto at pattern ay maaari ring maidagdag gamit ang Coding. Maaari kang bumuo ng isang buong Arduino kinokontrol na Dekorasyon System gamit ang NEO Pixel LEDs at makontrol ang sistemang ito sa pamamagitan ng LCD na nakahiga malapit sa iyo.
Mga kinakailangang bahagi:
- Arduino Mega o anumang iba pang modelo ng Arduino
- 2.4 pulgada TFT LCD Shield na may SPFD5408 controller
- NeoPixel RGB LED Strip
- Mga Koneksyon sa Mga Wires
- USB Cable o 12 V 1A adapter
Mga Koneksyon sa Circuit:
Upang ikonekta ang NeoPixels Strip sa Arduino Mega ikonekta lamang ang Arduino 5V pin sa NeoPixel's 5V pin at ang Mega's GND sa NeoPixel's GND at pagkatapos ay ikonekta ang NeoPixel DI pin (data sa) sa Digital Pin no 36 ng Arduino Mega. Maingat na i-mount ang TFT LCD Touch Shield sa Arduino tulad ng ang GND ng MEGA ay nakalagay sa ilalim ng GND ng LCD at 5V pin ng Arduino ay kumokonekta sa 5V pin ng LCD.
Mag-ingat na huwag palitan ang GND at 5V pin ng NeoPixel LED strip habang kumokonekta ito sa Arduino, kung hindi man ay makakasama ito sa NeoPixel LED strip. Tandaan din na dito ginamit namin ang Arduino Mega ngunit maaari mong gamitin ang anumang iba pang modelo ng Arduino.
Mga koneksyon sa Arduino sa NeoPixel RGB LED Strip:
Arduino Pins |
Mga Pin ng NeoPixel Strip |
5v |
5v |
GND |
GND |
Digital Pin no. 36 |
DI (data sa) |
Paggawa ng Paliwanag:
Ang pagtatrabaho ng NeoPixel LED na may Arduino ay napakadali. I-tap lamang ang pindutang pindutin ng anumang kulay sa LCD kung saan mo nais na glow ang NeoPixel LED strip. Ang LED ay ilaw ayon sa kulay na iyon. Ang code ay nakasulat sa isang paraan upang maaari mong ulitin ang gawaing ito nang walang katapusan nang hindi na kinakailangang i-reset ang Arduino Mega. Maaari mong suriin ang Code at Demo Video sa pagtatapos ng artikulong ito.
Kapag ang anumang pindutan ay na-tap sa LCD, ang data ay ipinadala sa Arduino at ang Arduino ay nagpapadala pa rin ng tagubilin sa NeoPixel Strip upang i-ilaw nang naaayon. Halimbawa NeoPixel LED strip kumikinang sa berdeng kulay kapag na-tap namin ang berdeng pindutan sa LCD at LED strip na kumikinang sa Pulang kulay kapag pinindot namin ang Pulang pindutan at iba pa.
Paliwanag sa Programming:
Upang Mag-interface ng TFT LCD sa Arduino nagamit namin ang ilang mga aklatan. Ang lahat ng mga aklatan ay dumating sa isang rar file at maaaring ma-download mula sa link na ito. Mag-click sa 'I-clone o i-download' at 'I-download ang ZIP' file at idagdag sa iyong Arduino library folder. Kailangan ang library na ito para sa wastong paggana ng TFT LCD.
# isama
Dapat mong subukan ang iyong TFT LCD sa pamamagitan ng pagsunog sa Arduino ng mga halimbawa ng mga code na ibinigay sa Library at suriin kung gumagana nang maayos ang mga code. Suriin muna ang pagsubok sa grapiko, pagkatapos ay i-calibrate ang pagsubok at sa wakas ay pintura ang pagsubok. Kung nakita mo na ang lahat ng mga tampok sa lahat ng gumagana nang maayos pagkatapos ay magsimula sa code na ibinigay sa tutorial na ito.
Para din sa wastong paggana ng NeoPixel RGB LED strip, kakailanganin mo ng isa pang silid-aklatan, na maaaring ma-download mula dito.
# isama
Tulad ng inilarawan nang mas maaga ang Digital Pin 36 ng MEGA ay konektado sa DI pin ng NeoPixel LED Strip tulad ng ipinakita sa code sa ibaba. Gayundin ang mga bilang ng mga LED sa Strip ay 30 sa gayon ay nakasulat sa code:
# tukuyin ang PIN 36 # tukuyin ang NUM_LEDS 30
Ang mga kulay ng display ng mga LCD button ay tinukoy ng ilang mga Code. Maaari mong baguhin ang mga code na ito alinsunod sa iyong LCD.
#define BLACK 0x0000 #define YELLOW 0x001F #define GREEN 0xF800 #define RED 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define BLUE 0xFFE0 #define WHITE 0xFFFF
Ang ilang mga parameter para sa mga pindutan tulad ng laki at posisyon ay tinukoy sa code:
uint16_t lapad = 0; uint16_t taas = 0; uint16_t x = 40; uint16_t y = taas - 20; uint16_t w = 75; uint16_t h = 20;
Ginamit ang h parameter upang ayusin ang laki ng pindutan sa LCD. Kung gagawin mo itong 40, pagkatapos ang laki ng pindutan ay magiging doble. y parameter ay y coordinate ng LCD.
Ang mga pindutan ng pindutin ay tinukoy ng mga bilang tulad ng ipinakita sa code:
#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
Ang ilang mga pagpapaandar ay ginagamit upang ibuga ang kulay sa labas ng NeoPixel tulad ng:
walang bisa ang EmitCyan (); walang bisa ang EmitWhite (); walang bisa ang EmitGreen (); walang bisa ang EmitYellow (); walang bisa ang EmitPink (); walang bisa ang EmitBlack ();
Upang mahanap ang mga halagang digital RGB na mailalagay para sa naibigay na kulay, maaari mong sundin ang link na ito. Ipasok lamang ang kulay na nais mong lumiwanag ang iyong NeoPixel strip, hanapin ang mga halagang RGB para sa kulay na iyon at ilagay sa mga pag-andar sa itaas.
void initialize Buttons () function ay ginagamit para sa pagbibigay ng teksto at kulay sa mga pindutan at din para sa paglalagay ng mga ito sa kinakailangang lugar sa LCD.
walang bisa ang mga initialize Buttons () {uint16_t x = 40; uint16_t y = taas - 20; uint16_t w = 75; uint16_t h = 40; uint8_t spacing_x = 5………………..
void showCalibration () function ay ginagamit upang iguhit ang mga pindutan sa LCD.
walang bisa ang showCalibration () {tft.setCursor (40, 0); para sa (uint8_t i = 0; i <8; i ++) {pindutan.drawbutton (); }}
Dagdag dito ang Buong Arduino Code para sa Pagkikinang ng NeoPixel LED strip sa nais na Kulay ay ibinibigay sa ibaba. Ang code ay medyo mahaba ngunit simple, maaari mong maunawaan ang code nang madali.