Warna apa pun terdiri daripada tiga warna: Merah, Hijau dan Biru, menggunakan LED RGB sederhana anda boleh menghasilkan warna apa pun. Tetapi had LED RGB adalah bahawa ia mempunyai tiga LED berasingan di dalamnya dan memerlukan tiga Pin mana-mana mikrokontroler untuk mengendalikan satu LED RGB. Oleh itu, tidak mustahil untuk menghubungkan ratusan LED dengan satu mikrokontroler.
Untuk mengatasi masalah ini Adafruit telah membuat NeoPixel LED Strip. Ia hanya memerlukan tiga pin untuk menggerakkan beberapa LED NeoPixel RGB. Dua pin adalah untuk kuasa dan tanah dan satu Pin adalah untuk Data In (DI). Pin data IN digunakan untuk menangani dan mengendalikan LED yang berbeza di jalur dengan warna, kecerahan dll. Tetapi memerlukan Microcontroller untuk menjalankan NeoPixels. Arduino sangat biasa digunakan dengan NeoPixel, jadi hari ini kita akan belajar untuk Interface NeoPixel LED dengan Arduino. Anda boleh mengetahui lebih lanjut mengenai NeoPixels di AdaFruit.
Di sini, dalam projek ini kami Mengendalikan NeoPixel LED menggunakan Arduino dan TFT LCD Touch Screen. Kami telah mencipta 7 butang sentuh dengan warna yang berbeza pada LCD TFT 2,4 inci dan apabila kami mengetuk butang warna tertentu pada LCD, jalur LED NeoPixel menyala dengan warna butang yang sama. Di sini kami telah menggunakan jalur LED NeoPixel Digital RGB 30 LED.
LED NeoPixel RGB dapat diterangi dalam warna apa pun dan oleh itu kami dapat menambahkan lebih banyak butang pada LCD untuk menyalakan LED dengan lebih banyak warna apabila mengetuk butang tersebut. Kesan dan corak cantik lain juga boleh ditambah menggunakan Pengekodan. Anda boleh membina Sistem Hiasan terkawal Arduino penuh dengan menggunakan LED NEO Pixel dan dapat mengawal sistem ini dengan menggunakan LCD yang terletak berdekatan dengan anda.
Komponen yang diperlukan:
- Arduino Mega atau model Arduino yang lain
- Perisai TFT LCD 2.4 inci dengan pengawal SPFD5408
- Jalur LED NeoPixel RGB
- Wayar Penyambung
- Kabel USB atau penyesuai 12 V 1A
Sambungan Litar:
Untuk menyambungkan NeoPixels Strip ke Arduino Mega cukup sambungkan pin Arduino 5V ke pin 5V NeoPixel dan Mega's GND ke GND NeoPixel dan kemudian sambungkan pin NeoPixel DI (data masuk) ke Pin Digital no 36 dari Arduino Mega. Pasang TFT LCD Touch Shield dengan berhati-hati di atas Arduino sehingga GND MEGA terletak di bawah GND LCD dan 5V pin Arduino menyambung ke 5V pin LCD.
Berhati-hatilah untuk tidak menukar pin GND dan 5V jalur LED NeoPixel semasa menyambungkannya ke Arduino, jika tidak, ia akan merosakkan jalur LED NeoPixel. Perhatikan juga bahawa di sini kami telah menggunakan Arduino Mega tetapi anda boleh menggunakan model Arduino yang lain.
Sambungan ke Arduino ke NeoPixel RGB LED Strip:
Pin Arduino |
Pin NeoPixel Strip |
5v |
5v |
GND |
GND |
Pin Digital No. 36 |
DI (data dalam) |
Penjelasan Kerja:
Kerja NeoPixel LED dengan Arduino sangat mudah. Cukup ketuk butang sentuh warna apa pun pada LCD di mana anda ingin menyalakan jalur LED NeoPixel. LED akan menyala mengikut warna itu. Kod ditulis sedemikian rupa sehingga anda dapat mengulangi tugas ini tanpa henti tanpa perlu menetapkan semula Arduino Mega. Anda boleh menyemak Kod dan Video Demo di akhir artikel ini.
Apabila mana-mana butang diketuk pada LCD, data akan dikirimkan ke Arduino dan Arduino selanjutnya mengirimkan arahan ke NeoPixel Strip untuk menyala. Contohnya jalur LED NeoPixel bersinar dengan warna Hijau apabila kita mengetuk butang Hijau pada LCD dan jalur LED bersinar dengan warna Merah apabila kita menekan butang Merah dan sebagainya.
Penjelasan Pengaturcaraan:
Untuk Interface TFT LCD dengan Arduino kami telah menggunakan beberapa perpustakaan. Semua perpustakaan terdapat dalam satu fail rar dan boleh dimuat turun dari pautan ini. Klik pada fail 'Klon atau muat turun' dan 'Muat turun ZIP' dan tambahkan ke folder perpustakaan Arduino anda. Perpustakaan ini diperlukan untuk berfungsi dengan betul TFT LCD.
#sertakan
Anda harus menguji TFT LCD anda dengan membakar Arduino dengan contoh kod yang diberikan di Perpustakaan dan periksa sama ada kod berfungsi dengan baik. Mula-mula periksa ujian grafik, kemudian kalibrasi ujian dan akhirnya ujian cat. Sekiranya anda mendapati bahawa semua ciri berfungsi dengan baik maka mulakan dengan kod yang diberikan dalam tutorial ini.
Juga untuk berfungsi dengan baik jalur LED NeoPixel RGB, anda memerlukan satu lagi perpustakaan yang boleh dimuat turun dari sini.
#sertakan
Seperti yang dijelaskan sebelumnya, Digital Pin 36 dari MEGA disambungkan ke pin DI NeoPixel LED Strip seperti yang ditunjukkan dalam kod di bawah. Juga bilangan LED di Jalur adalah 30 sehingga tertulis dalam kod:
#tentukan PIN 36 # tentukan NUM_LEDS 30
Warna paparan butang LCD dilambangkan oleh beberapa Kod. Anda boleh menukar kod ini mengikut LCD anda.
#define BLACK 0x0000 #define YELLOW 0x001F #define GREEN 0xF800 #define MERAH 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define BLUE 0xFFE0 #define PUTIH 0xFFFFF
Beberapa parameter untuk butang seperti ukuran dan kedudukan ditentukan dalam kod:
uint16_t lebar = 0; uint16_t tinggi = 0; uint16_t x = 40; uint16_t y = tinggi - 20; uint16_t w = 75; uint16_t h = 20;
h parameter digunakan untuk menyesuaikan ukuran butang pada LCD. Sekiranya anda membuatnya 40, ukuran butang akan meningkat dua kali ganda. parameter y ialah koordinat y LCD.
Butang sentuh dilambangkan dengan nombor seperti yang ditunjukkan dalam kod:
#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
Beberapa fungsi digunakan untuk mengeluarkan warna dari NeoPixel seperti:
batal EmitCyan (); batal EmitWhite (); batal EmitGreen (); batal EmitYellow (); batal EmitPink (); batal EmitBlack ();
Untuk mengetahui nilai RGB digital yang dimasukkan untuk warna yang ditentukan, anda boleh mengikuti pautan ini. Cukup masukkan warna yang anda mahu jalur NeoPixel anda bersinar, cari nilai RGB untuk warna itu dan masukkan fungsi di atas.
fungsi void initializeButtons () digunakan untuk memberi teks dan warna pada butang dan juga untuk meletakkannya di tempat yang diperlukan pada LCD.
batal initializeButtons () {uint16_t x = 40; uint16_t y = tinggi - 20; uint16_t w = 75; uint16_t h = 40; uint8_t spacing_x = 5………………..
fungsi void showCalibration () digunakan untuk menarik butang pada LCD.
void showCalibration () {tft.setCursor (40, 0); untuk (uint8_t i = 0; i <8; i ++) {butang.drawButton (); }}
Selanjutnya, Kod Arduino Penuh untuk Glowing jalur LED NeoPixel dalam Warna yang diinginkan diberikan di bawah. Kod agak panjang tetapi ringkas, anda dapat memahami kodnya dengan mudah.