Jede Farbe besteht aus drei Farben: Rot, Grün und Blau. Mit einer einfachen RGB-LED können Sie jede Farbe erzeugen. Die Einschränkung der RGB-LED besteht jedoch darin, dass sie drei separate LEDs enthält und drei Pins eines Mikrocontrollers benötigt, um eine RGB-LED zu betreiben. Es ist also nicht möglich, Hunderte von LEDs mit einem Mikrocontroller zu verbinden.
Um dieses Problem zu lösen, hat Adafruit einen NeoPixel LED-Streifen erstellt. Es sind nur drei Pins erforderlich, um mehrere RGB-NeoPixel-LEDs anzusteuern. Zwei Pins sind für Strom und Masse und ein Pin ist für Data In (DI). Der Data IN-Pin wird verwendet, um die verschiedenen LEDs im Streifen mit ihrer Farbe, Helligkeit usw. zu adressieren und zu steuern. Zum Ausführen von NeoPixels ist jedoch ein Mikrocontroller erforderlich. Arduino wird sehr häufig mit NeoPixel verwendet, daher werden wir heute lernen, NeoPixel-LEDs mit Arduino zu verbinden. Weitere Informationen zu NeoPixels erhalten Sie bei AdaFruit.
Hier in diesem Projekt steuern wir NeoPixel LED mit Arduino und TFT LCD Touchscreen. Wir haben 7 Touch-Tasten in verschiedenen Farben auf einem 2,4-Zoll-TFT-LCD erstellt. Wenn wir auf die Taste einer bestimmten Farbe auf dem LCD tippen, leuchtet der NeoPixel-LED-Streifen mit derselben Farbe wie diese Taste. Hier haben wir NeoPixel Digital RGB LED-Streifen mit 30 LEDs verwendet.
Die NeoPixel RGB-LED kann in jeder Farbe beleuchtet werden. Daher können wir weitere Tasten auf dem LCD hinzufügen, um die LED beim Tippen auf diese Tasten in mehr Farben zu leuchten. Andere schöne Effekte und Muster können ebenfalls mithilfe der Codierung hinzugefügt werden. Sie können ein vollständiges Arduino-gesteuertes Dekorationssystem mit NEO-Pixel-LEDs erstellen und dieses System über ein LCD in Ihrer Nähe steuern.
Erforderliche Komponenten:
- Arduino Mega oder ein anderes Arduino-Modell
- 2,4-Zoll-TFT-LCD-Abschirmung mit SPFD5408-Controller
- NeoPixel RGB LED Strip
- Kabel anschließen
- USB-Kabel oder 12 V 1A Adapter
Schaltungsanschlüsse:
Um den NeoPixels Strip mit Arduino Mega zu verbinden, verbinden Sie einfach den Arduino 5V-Pin mit dem NeoPixel 5V-Pin und den Mega GND mit dem NeoPixel GND und verbinden Sie dann den NeoPixel DI-Pin (Dateneingang) mit dem Digital Pin Nr. 36 von Arduino Mega. Montieren Sie das TFT LCD Touch Shield vorsichtig so über Arduino, dass GND von MEGA unter GND von LCD liegt und der 5-V-Pin von Arduino mit dem 5-V-Pin von LCD verbunden ist.
Achten Sie darauf, GND und 5-V-Pin des NeoPixel-LED-Streifens nicht auszutauschen, während Sie ihn an Arduino anschließen. Andernfalls wird der NeoPixel-LED-Streifen beschädigt. Beachten Sie auch, dass wir hier Arduino Mega verwendet haben, aber Sie können jedes andere Arduino-Modell verwenden.
Verbindungen zu Arduino zu NeoPixel RGB LED Strip:
Arduino Pins |
NeoPixel Strip's Pins |
5v |
5v |
GND |
GND |
Digital Pin Nr. 36 |
DI (Daten in) |
Arbeitserklärung:
Die Arbeit mit NeoPixel LED mit Arduino ist sehr einfach. Tippen Sie einfach auf die Touch-Taste einer beliebigen Farbe auf dem LCD, in der der NeoPixel-LED-Streifen leuchten soll. Die LED leuchtet entsprechend dieser Farbe. Der Code ist so geschrieben, dass Sie diese Aufgabe endlos wiederholen können, ohne das Arduino Mega zurücksetzen zu müssen. Sie können das Code- und Demo-Video am Ende dieses Artikels überprüfen.
Wenn eine Taste auf dem LCD getippt wird, werden Daten an Arduino gesendet und Arduino sendet ferner eine Anweisung an NeoPixel Strip, entsprechend zu leuchten. Zum Beispiel leuchtet der NeoPixel-LED-Streifen in grüner Farbe, wenn wir auf die grüne Taste auf dem LCD tippen, und der LED-Streifen leuchtet in roter Farbe, wenn wir die rote Taste drücken und so weiter.
Programmiererklärung:
Um TFT LCD mit Arduino zu verbinden, haben wir einige Bibliotheken verwendet. Alle Bibliotheken werden in einer rar-Datei geliefert und können über diesen Link heruntergeladen werden. Klicken Sie auf "Klonen oder herunterladen" und "ZIP herunterladen" und fügen Sie sie Ihrem Arduino-Bibliotheksordner hinzu. Diese Bibliothek wird für die ordnungsgemäße Funktion des TFT-LCD benötigt.
#einschließen
Sie sollten Ihr TFT-LCD testen, indem Sie Arduino mit Beispielcodes in der Bibliothek brennen und prüfen, ob die Codes ordnungsgemäß funktionieren. Überprüfen Sie zuerst den Grafiktest, kalibrieren Sie den Test und malen Sie schließlich den Test. Wenn Sie feststellen, dass alle Funktionen einwandfrei funktionieren, beginnen Sie mit dem in diesem Lernprogramm angegebenen Code.
Für die ordnungsgemäße Funktion des NeoPixel RGB-LED-Streifens benötigen Sie eine weitere Bibliothek, die Sie hier herunterladen können.
#einschließen
Wie zuvor beschrieben, ist der digitale Pin 36 von MEGA mit dem DI-Pin des NeoPixel-LED-Streifens verbunden, wie im folgenden Code gezeigt. Auch die Anzahl der LEDs im Strip beträgt 30, wie im Code geschrieben:
#define PIN 36 #define NUM_LEDS 30
Die Anzeigefarben der LCD-Tasten sind mit einigen Codes gekennzeichnet. Sie können diese Codes entsprechend Ihrem LCD ändern.
#define BLACK 0x0000 #define YELLOW 0x001F #define GREEN 0xF800 #define RED 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define BLUE 0xFFE0 #define WHITE 0xFFFF
Einige Parameter für die Schaltflächen wie Größe und Position sind im Code definiert:
uint16_t width = 0; uint16_t height = 0; uint16_t x = 40; uint16_t y = Höhe - 20; uint16_t w = 75; uint16_t h = 20;
Mit dem Parameter h wird die Größe der Taste auf dem LCD eingestellt. Wenn Sie es auf 40 bringen, wird die Größe der Schaltfläche verdoppelt. Der Parameter y ist die y-Koordinate des LCD.
Touch-Tasten werden wie im Code gezeigt durch Zahlen gekennzeichnet:
#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 #define BUTTON_LightBlue 6
Einige Funktionen werden verwendet, um die Farbe aus NeoPixel herauszugeben, wie:
void EmitCyan (); void EmitWhite (); void EmitGreen (); void EmitYellow (); void EmitPink (); void EmitBlack ();
Um die digitalen RGB-Werte zu finden, die für die angegebene Farbe eingegeben werden müssen, folgen Sie diesem Link. Geben Sie einfach die Farbe ein, in der Ihr NeoPixel-Streifen leuchten soll, suchen Sie die RGB-Werte für diese Farbe und geben Sie die obigen Funktionen ein.
Die Funktion void initializeButtons () wird verwendet, um Schaltflächen Text und Farbe zu geben und sie an der gewünschten Stelle auf dem LCD zu platzieren.
void initializeButtons () {uint16_t x = 40; uint16_t y = Höhe - 20; uint16_t w = 75; uint16_t h = 40; uint8_t spacing_x = 5………………..
Mit der Funktion void showCalibration () werden die Tasten auf dem LCD gezeichnet .
void showCalibration () {tft.setCursor (40, 0); für (uint8_t i = 0; i <8; i ++) {button.drawButton (); }}
Weiterhin ist der vollständige Arduino-Code zum Leuchten des NeoPixel-LED-Streifens in der gewünschten Farbe unten angegeben. Code ist etwas langwierig, aber einfach. Sie können den Code leicht verstehen.