Warna apa pun terdiri dari tiga warna: Merah, Hijau, dan Biru, menggunakan LED RGB sederhana Anda dapat menghasilkan warna apa pun. Tetapi batasan dari LED RGB adalah bahwa ia memiliki tiga LED terpisah di dalamnya dan membutuhkan tiga Pin dari setiap mikrokontroler untuk mengoperasikan satu LED RGB. Jadi tidak mungkin untuk menghubungkan ratusan LED dengan satu mikrokontroler.
Untuk mengatasi masalah ini Adafruit telah menciptakan Strip LED NeoPixel. Ini hanya membutuhkan tiga pin untuk menggerakkan beberapa LED RGB NeoPixel. Dua pin untuk power dan ground dan satu Pin untuk Data In (DI). Pin Data IN digunakan untuk mengatasi dan mengontrol LED yang berbeda di strip dengan warna, kecerahan, dll. Tetapi itu membutuhkan Mikrokontroler untuk menjalankan NeoPixels. Arduino sangat umum digunakan dengan NeoPixel, jadi hari ini kita akan belajar Menghubungkan LED NeoPixel dengan Arduino. Anda dapat mempelajari lebih lanjut tentang NeoPixels di AdaFruit.
Di sini, di proyek ini kami Mengontrol LED NeoPixel menggunakan Arduino dan Layar sentuh LCD TFT. Kami telah membuat 7 tombol sentuh dengan warna berbeda pada LCD TFT 2,4 inci dan saat kami mengetuk tombol warna tertentu pada LCD, strip LED NeoPixel menyala dengan warna yang sama dengan tombol tersebut. Di sini kami telah menggunakan strip LED NeoPixel Digital RGB dari 30 LED.
NeoPixel RGB LED dapat menyala dalam warna apa pun sehingga kami dapat menambahkan lebih banyak tombol pada LCD untuk menerangi LED dalam lebih banyak warna saat mengetuk tombol tersebut. Efek dan pola indah lainnya juga dapat ditambahkan menggunakan Coding. Anda dapat membangun Sistem Dekorasi yang dikontrol Arduino penuh menggunakan NEO Pixel LEDs dan dapat mengontrol sistem ini dengan LCD yang terletak di dekat Anda.
Komponen yang dibutuhkan:
- Arduino Mega atau model Arduino lainnya
- Pelindung LCD TFT 2,4 inci dengan pengontrol SPFD5408
- Strip LED RGB NeoPixel
- Menghubungkan Kabel
- Kabel USB atau adaptor 12 V 1A
Koneksi Sirkuit:
Untuk menghubungkan Strip NeoPixels ke Arduino Mega cukup sambungkan pin Arduino 5V ke pin 5V NeoPixel dan GND Mega ke GND NeoPixel lalu sambungkan pin NeoPixel DI (data masuk) ke Pin Digital no 36 dari Arduino Mega. Pasang TFT LCD Touch Shield dengan hati-hati di atas Arduino sehingga GND MEGA terletak di bawah GND LCD dan pin 5V Arduino terhubung ke pin LCD 5V.
Berhati-hatilah untuk tidak menukar pin GND dan 5V dari strip LED NeoPixel saat menghubungkannya ke Arduino, jika tidak maka akan merusak strip LED NeoPixel. Perhatikan juga bahwa di sini kami telah menggunakan Arduino Mega tetapi Anda dapat menggunakan model Arduino lainnya.
Koneksi ke Arduino ke NeoPixel RGB LED Strip:
Pin Arduino |
Pin NeoPixel Strip |
5v |
5v |
GND |
GND |
Pin Digital no. 36 |
DI (data masuk) |
Penjelasan Kerja:
Bekerja dari NeoPixel LED dengan Arduino sangat mudah. Cukup ketuk tombol sentuh warna apa pun pada LCD di mana Anda ingin menerangi strip LED NeoPixel. LED akan menyala sesuai dengan warna itu. Kode ditulis sedemikian rupa sehingga Anda dapat mengulangi tugas ini tanpa henti tanpa harus mengatur ulang Arduino Mega. Anda dapat memeriksa Kode dan Video Demo di akhir artikel ini.
Ketika ada tombol yang diketuk pada LCD, data dikirim ke Arduino dan Arduino selanjutnya mengirimkan instruksi ke Strip NeoPixel agar menyala sesuai. Misalnya strip LED NeoPixel bersinar dalam warna Hijau ketika kita mengetuk tombol Hijau pada LCD dan strip LED bersinar dalam warna Merah ketika kita menekan tombol Merah dan sebagainya.
Penjelasan Pemrograman:
Untuk Menghubungkan TFT LCD dengan Arduino kami telah menggunakan beberapa perpustakaan. Semua perpustakaan datang dalam satu file rar dan dapat diunduh dari tautan ini. Klik pada 'Clone or download' dan 'Download ZIP' file dan tambahkan ke folder library Arduino Anda. Perpustakaan ini diperlukan untuk memfungsikan LCD TFT.
#include
Anda harus menguji LCD TFT Anda dengan membakar Arduino dengan kode contoh yang diberikan di Perpustakaan dan memeriksa apakah kode berfungsi dengan benar. Pertama periksa tes grafis, kemudian kalibrasi tes dan terakhir tes cat. Jika Anda menemukan bahwa semua fitur berfungsi dengan baik, mulailah dengan kode yang diberikan dalam tutorial ini.
Juga agar strip LED RGB NeoPixel berfungsi dengan baik, Anda akan membutuhkan satu perpustakaan lagi, yang dapat diunduh dari sini.
#include
Seperti yang dijelaskan sebelumnya, Pin Digital 36 MEGA terhubung ke pin DI Strip LED NeoPixel seperti yang ditunjukkan pada kode di bawah ini. Juga jumlah LED di Strip adalah 30 seperti yang tertulis di kode:
#tentukan PIN 36 #tentukan NUM_LEDS 30
Warna tampilan tombol LCD dilambangkan dengan beberapa Kode. Anda dapat mengubah kode-kode ini sesuai dengan LCD Anda.
# Tentukan HITAM 0x0000 # Tentukan KUNING 0x001F # Tentukan HIJAU 0xF800 # Tentukan MERAH 0x07E0 # Tentukan CYAN 0x07FF # Tentukan MAGENTA 0xF81F # Tentukan BIRU 0xFFE0 # Tentukan PUTIH 0xFFFF
Beberapa parameter untuk tombol seperti ukuran dan posisi ditentukan dalam kode:
uint16_t width = 0; tinggi uint16_t = 0; uint16_t x = 40; uint16_t y = tinggi - 20; uint16_t w = 75; uint16_t h = 20;
Parameter h digunakan untuk mengatur ukuran tombol pada LCD. Jika dijadikan 40, maka ukuran tombol akan berlipat ganda. Parameter y adalah koordinat y LCD.
Tombol sentuh dilambangkan dengan angka seperti yang ditunjukkan pada kode:
# Tentukan BUTTONS 9 # Tentukan BUTTON_Red 0 # Tentukan BUTTON_DarkRed 1 # Tentukan BUTTON_RED 2 # Tentukan BUTTON_DarkGreen 3 # Tentukan BUTTON_DeepRed 4 # Tentukan BUTTON_Blue 5 # Tentukan BUTTON_LightBlue 6 # Tentukan BUTTON_LightBlue 6
Beberapa fungsi digunakan untuk memancarkan warna dari NeoPixel seperti:
batal EmitCyan (); void EmitWhite (); batal EmitGreen (); void EmitYellow (); batal EmitPink (); batal EmitBlack ();
Untuk menemukan nilai RGB digital yang akan dimasukkan untuk warna tertentu, Anda dapat mengikuti tautan ini. Cukup masukkan warna yang Anda inginkan agar strip NeoPixel Anda bersinar, temukan nilai RGB untuk warna itu dan masukkan fungsi di atas.
Fungsi void initializeButtons () digunakan untuk memberi teks dan warna pada tombol dan juga untuk menempatkannya di tempat yang diinginkan pada LCD.
void initializeButtons () {uint16_t x = 40; uint16_t y = tinggi - 20; uint16_t w = 75; uint16_t h = 40; uint8_t spacing_x = 5……………………..
void showCalibration () Fungsi digunakan untuk menggambar tombol pada LCD.
void showCalibration () {tft.setCursor (40, 0); untuk (uint8_t i = 0; i <8; i ++) {buttons.drawButton (); }}
Selanjutnya Kode Arduino Lengkap untuk Menyalakan strip LED NeoPixel dalam Warna yang diinginkan diberikan di bawah ini. Kode agak panjang tetapi sederhana, Anda dapat memahami kode dengan mudah.