Herhangi bir renk üç renkten oluşur: Kırmızı, Yeşil ve Mavi, basit bir RGB LED kullanarak istediğiniz rengi üretebilirsiniz. Ancak RGB LED'in sınırlaması, içinde üç ayrı LED'e sahip olması ve bir RGB LED'i çalıştırmak için herhangi bir mikro denetleyicinin üç Pimine ihtiyaç duymasıdır. Bu yüzden yüzlerce LED'i tek bir mikrodenetleyici ile bağlamak mümkün değildir.
Bu sorunun üstesinden gelmek için Adafruit, NeoPixel LED Strip'i yarattı. Birkaç RGB NeoPixel LED'i sürmek için yalnızca üç pime ihtiyaç duyar. İki pin güç ve toprak içindir ve bir Pin Veri Girişi (DI) içindir. Data IN pini, şeritteki farklı LED'leri renkleri, parlaklıkları vb. İle adreslemek ve kontrol etmek için kullanılır. Ancak NeoPikselleri çalıştırmak için bir Mikroişlemci gerektirir. Arduino, NeoPixel ile çok yaygın olarak kullanılmaktadır, bu nedenle bugün NeoPixel LED'leri Arduino ile Arabirim yapmayı öğreneceğiz. AdaFruit'te NeoPikseller hakkında daha fazla bilgi edinebilirsiniz.
İşte bu projede NeoPixel LED'i Arduino ve TFT LCD dokunmatik ekran kullanarak kontrol ediyoruz. 2,4 inç TFT LCD üzerinde 7 farklı renkte dokunmatik buton oluşturduk ve LCD'de belirli renkteki butona dokunduğumuzda NeoPixel LED şerit o butonla aynı renkte yanar. Burada NeoPixel Dijital RGB LED şeridini 30 LED kullandık.
NeoPixel RGB LED herhangi bir renkte aydınlatılabilir ve böylece bu düğmelere dokunduğumuzda LED'i daha fazla renkte parlatmak için LCD'ye daha fazla düğme ekleyebiliriz. Kodlama kullanılarak başka güzel efektler ve desenler de eklenebilir. NEO Pixel LED'leri kullanarak tam bir Arduino kontrollü Dekorasyon Sistemi kurabilir ve bu sistemi yanınızda yatan LCD ile kontrol edebilirsiniz.
Gerekli bileşenler:
- Arduino Mega veya başka bir Arduino modeli
- SPFD5408 denetleyicili 2,4 inç TFT LCD Kalkanı
- NeoPixel RGB LED Şerit
- Kabloların Bağlanması
- USB Kablosu veya 12 V 1A adaptör
Devre Bağlantıları:
To Arduino için NeoPixels Strip bağlamak Mega basitçe Arduino 5V NeoPixel en 5V pin pin ve NeoPixel en GND'ye Mega en GND'nin ve ardından bağlan (veri) NeoPixel DI pimi Dijital Pin için Arduino Mega hiçbir 36. TFT LCD Dokunmatik Kalkanı, MEGA'nın GND'si LCD'nin GND'sinin altında olacak ve Arduino'nun 5V pini LCD'nin 5V pinine bağlanacak şekilde Arduino üzerine dikkatlice monte edin.
NeoPixel LED şeridinin GND ve 5V pinini Arduino ya bağlarken değiştirmemeye dikkat edin, aksi takdirde NeoPixel LED şeridine zarar verir. Ayrıca burada Arduino Mega kullandığımızı ancak başka bir Arduino modelini kullanabileceğinizi unutmayın.
Arduino ile NeoPixel RGB LED Strip bağlantıları:
Arduino Pinleri |
NeoPixel Şerit Pimleri |
5v |
5v |
GND |
GND |
Dijital Pin no. 36 |
DI (veri girişi) |
Çalışma Açıklaması:
Çalışma Arduino ile NeoPixel LED çok kolaydır. NeoPixel LED şeridini parlatmak istediğiniz LCD üzerindeki herhangi bir rengin dokunmatik düğmesine dokunmanız yeterlidir. LED o renge göre yanacaktır. Kod, Arduino Mega'yı sıfırlamak zorunda kalmadan bu görevi sonsuzca tekrarlayabilmeniz için yazılmıştır. Bu makalenin sonundaki Kod ve Demo Videosu'na bakabilirsiniz.
LCD'de herhangi bir düğmeye dokunulduğunda, veriler Arduino'ya gönderilir ve Arduino ayrıca NeoPixel Strip'e ışığa uygun şekilde talimat gönderir. Örneğin NeoPixel LED şeridi, LCD üzerindeki Yeşil düğmeye dokunduğumuzda Yeşil renkte yanar ve Kırmızı düğmeye bastığımızda LED şerit Kırmızı renkte yanar vb.
Programlama Açıklaması:
TFT LCD'yi Arduino ile arayüzlemek için bazı kütüphaneler kullandık. Tüm kitaplıklar tek bir rar dosyası içinde gelir ve bu bağlantıdan indirilebilir. 'Klonla veya indir' ve 'ZIP indir' dosyasına tıklayın ve Arduino kitaplık klasörünüze ekleyin. Bu kitaplık, TFT LCD'nin düzgün çalışması için gereklidir.
#Dahil etmek
Kütüphanede verilen örnek kodlar ile Arduino yazarak TFT LCD'nizi test etmeli ve kodların düzgün çalışıp çalışmadığını kontrol etmelisiniz. Önce grafik testini, ardından kalibre testini ve son olarak boya testini kontrol edin. Tüm özelliklerin iyi çalıştığını fark ederseniz, bu eğitimde verilen kodla başlayın.
Ayrıca NeoPixel RGB LED şeridin düzgün çalışması için buradan indirebileceğiniz bir kitaplığa daha ihtiyacınız olacak.
#Dahil etmek
Daha önce açıklandığı gibi, MEGA'nın Dijital Pini 36, aşağıdaki kodda gösterildiği gibi NeoPixel LED Strip'in DI pinine bağlanır. Ayrıca Şeritteki LED sayısı kodda yazıldığı gibi 30'dur:
#define PIN 36 #define NUM_LEDS 30
LCD düğmelerinin ekran renkleri bazı Kodlarla belirtilmiştir. Bu kodları LCD'nize göre değiştirebilirsiniz.
#define BLACK 0x0000 #define SARI 0x001F #define GREEN 0xF800 #define RED 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define BLUE 0xFFE0 #define WHITE 0xFFFF
Düğmeler için boyut ve konum gibi bazı parametreler kodda tanımlanmıştır:
uint16_t genişlik = 0; uint16_t yükseklik = 0; uint16_t x = 40; uint16_t y = yükseklik - 20; uint16_t w = 75; uint16_t h = 20;
h parametresi LCD üzerindeki buton boyutunu ayarlamak için kullanılır. 40 yaparsanız, düğme boyutu ikiye katlanır. y parametresi, LCD'nin y koordinatıdır.
Dokunmatik düğmeler, kodda gösterildiği gibi sayılarla belirtilir:
#define BUTTONS 9 #define BUTTON_Red 0 #define BUTTON_DarkRed 1 #define BUTTON_RED 2 #define BUTTON_DarkGreen 3 #define BUTTON_DeepRed 4 #define BUTBTON_Blue 5 #define BUTTON_LightBlue 6 #define BUTTON_LightBlue 6 #define
Renkleri NeoPixel'ten çıkarmak için aşağıdaki gibi bazı işlevler kullanılır:
void EmitCyan (); void EmitWhite (); void EmitGreen (); void EmitYellow (); void EmitPink (); void EmitBlack ();
To dijital RGB değerleri bulmak verilen renk için girilecek, bu bağlantıyı takip edebilirsiniz. NeoPixel şeridinizin parlamasını istediğiniz rengi girin, o rengin RGB değerlerini bulun ve yukarıdaki işlevleri ekleyin.
void initializeButtons () işlevi, düğmelere metin ve renk vermek ve ayrıca bunları LCD'de istenen yere yerleştirmek için kullanılır.
void initializeButtons () {uint16_t x = 40; uint16_t y = yükseklik - 20; uint16_t w = 75; uint16_t h = 40; uint8_t spacing_x = 5………………..
void showCalibration () işlevi, LCD üzerindeki düğmeleri çizmek için kullanılır.
void showCalibration () {tft.setCursor (40, 0); için (uint8_t i = 0; i <8; i ++) {buttons.drawButton (); }}
Ayrıca NeoPixel LED şeridini istenilen Renkte Parlatmak için Tam Arduino Kodu aşağıda verilmiştir. Kod biraz uzun ama basittir, kodu kolayca anlayabilirsiniz.