Toute couleur est composée de trois couleurs: rouge, vert et bleu, en utilisant une simple LED RVB, vous pouvez générer n'importe quelle couleur. Mais la limitation de la LED RVB est qu'elle contient trois LED séparées et nécessite trois broches de n'importe quel microcontrôleur pour faire fonctionner une LED RVB. Il n'est donc pas possible de connecter des centaines de LED avec un seul microcontrôleur.
Pour surmonter ce problème, Adafruit a créé NeoPixel LED Strip. Il ne nécessite que trois broches pour piloter plusieurs LED RVB NeoPixel. Deux broches sont pour l'alimentation et la terre et une broche pour l'entrée de données (DI). La broche Data IN est utilisée pour adresser et contrôler les différentes LED de la bande avec leur couleur, leur luminosité, etc. Mais il faut un microcontrôleur pour faire fonctionner les NeoPixels. Arduino est très couramment utilisé avec NeoPixel, nous allons donc aujourd'hui apprendre à interfacer les LED NeoPixel avec Arduino. Vous pouvez en savoir plus sur NeoPixels sur AdaFruit.
Ici, dans ce projet, nous contrôlons la LED NeoPixel à l'aide d'Arduino et d'un écran tactile LCD TFT. Nous avons créé 7 boutons tactiles de couleurs différentes sur un écran LCD TFT de 2,4 pouces et lorsque nous appuyons sur le bouton d'une certaine couleur sur l'écran LCD, la bande LED NeoPixel s'illumine de la même couleur que ce bouton. Ici, nous avons utilisé une bande de LED RVB numérique NeoPixel de 30 LED.
La LED RVB NeoPixel peut être éclairée dans n'importe quelle couleur et nous pouvons donc ajouter plus de boutons sur l'écran LCD pour éclairer la LED dans plus de couleurs en appuyant sur ces boutons. D'autres beaux effets et motifs peuvent également être ajoutés à l'aide du codage. Vous pouvez créer un système de décoration entièrement contrôlé par Arduino à l'aide de LED NEO Pixel et contrôler ce système par un écran LCD situé près de vous.
Composants requis:
- Arduino Mega ou tout autre modèle Arduino
- Blindage LCD TFT 2,4 pouces avec contrôleur SPFD5408
- Bande LED RVB NeoPixel
- Connexion des fils
- Câble USB ou adaptateur 12 V 1A
Connexions du circuit:
Pour connecter NeoPixels Strip à Arduino Mega, connectez simplement la broche Arduino 5V à la broche 5V de NeoPixel et le GND de Mega au GND de NeoPixel, puis connectez la broche DI NeoPixel (entrée de données) à la broche numérique n ° 36 d'Arduino Mega. Montez soigneusement l'écran tactile TFT LCD sur Arduino de sorte que GND de MEGA se trouve sous GND de l'écran LCD et que la broche 5V d'Arduino se connecte à la broche 5V de l'écran LCD.
Veillez à ne pas intervertir la broche GND et 5V de la bande LED NeoPixel lors de la connexion à Arduino, sinon cela endommagera la bande LED NeoPixel. Notez également qu'ici nous avons utilisé Arduino Mega mais vous pouvez utiliser n'importe quel autre modèle Arduino.
Connexions à Arduino à la bande de LED RVB NeoPixel:
Broches Arduino |
Épingles de la bande NeoPixel |
5v |
5v |
GND |
GND |
N ° de broche numérique 36 |
DI (données entrées) |
Explication de travail:
Le fonctionnement de la LED NeoPixel avec Arduino est très simple. Appuyez simplement sur le bouton tactile de n'importe quelle couleur sur l'écran LCD dans lequel vous souhaitez briller la bande LED NeoPixel. La LED s'allumera selon cette couleur. Le code est écrit de manière à ce que vous puissiez répéter cette tâche à l'infini sans avoir à réinitialiser l'Arduino Mega. Vous pouvez consulter le code et la vidéo de démonstration à la fin de cet article.
Lorsqu'un bouton est appuyé sur l'écran LCD, les données sont envoyées à Arduino et Arduino envoie en outre des instructions à NeoPixel Strip pour s'allumer en conséquence. Par exemple, la bande LED NeoPixel brille en vert lorsque nous appuyons sur le bouton vert sur l'écran LCD et la bande LED brille en rouge lorsque nous appuyons sur le bouton rouge et ainsi de suite.
Explication de la programmation:
Pour interfacer l'écran TFT LCD avec Arduino, nous avons utilisé certaines bibliothèques. Toutes les bibliothèques sont livrées dans un fichier rar et peuvent être téléchargées à partir de ce lien. Cliquez sur "Cloner ou télécharger" et "Télécharger le fichier ZIP" et ajoutez-le à votre dossier de bibliothèque Arduino. Cette bibliothèque est nécessaire pour le bon fonctionnement du TFT LCD.
#comprendre
Vous devez tester votre écran LCD TFT en brûlant Arduino avec des exemples de codes donnés dans la bibliothèque et vérifier si les codes fonctionnent correctement. Vérifiez d'abord le test graphique, puis calibrez le test et enfin le test de peinture. Si vous trouvez que toutes les fonctionnalités fonctionnent correctement, commencez par le code donné dans ce didacticiel.
Également pour le bon fonctionnement de la bande LED NeoPixel RGB, vous aurez besoin d'une bibliothèque supplémentaire, qui peut être téléchargée à partir d'ici.
#comprendre
Comme décrit précédemment, la broche numérique 36 de MEGA est connectée à la broche DI de la bande de LED NeoPixel comme indiqué dans le code ci-dessous. De plus, le nombre de LED dans la bande est de 30, comme il est écrit dans le code:
#define PIN 36 #define NUM_LEDS 30
Les couleurs d'affichage des boutons LCD sont indiquées par certains codes. Vous pouvez modifier ces codes en fonction de votre écran 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
Certains paramètres des boutons comme la taille et la position sont définis dans le code:
uint16_t largeur = 0; uint16_t hauteur = 0; uint16_t x = 40; uint16_t y = hauteur - 20; uint16_t w = 75; uint16_t h = 20;
Le paramètre h est utilisé pour ajuster la taille du bouton sur l'écran LCD. Si vous faites 40, la taille du bouton sera doublée. Le paramètre y est la coordonnée y de l'écran LCD.
Les boutons tactiles sont désignés par des chiffres comme indiqué dans le 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_LightBlue1 7 #define BUTTON_LightBlue1
Certaines fonctions sont utilisées pour émettre la couleur hors de NeoPixel comme:
void EmitCyan (); void EmitWhite (); void EmitGreen (); void EmitYellow (); void EmitPink (); void EmitBlack ();
Pour trouver les valeurs RVB numériques à saisir pour la couleur donnée, vous pouvez suivre ce lien. Entrez simplement la couleur que vous voulez que votre bande NeoPixel brille, trouvez les valeurs RVB pour cette couleur et ajoutez les fonctions ci-dessus.
La fonction void initializeButtons () est utilisée pour donner du texte et de la couleur aux boutons et aussi pour les placer à l'endroit voulu sur l'écran LCD.
void initializeButtons () {uint16_t x = 40; uint16_t y = hauteur - 20; uint16_t w = 75; uint16_t h = 40; uint8_t espacement_x = 5………………..
La fonction void showCalibration () est utilisée pour dessiner les boutons sur l'écran LCD.
void showCalibration () {tft.setCursor (40, 0); pour (uint8_t i = 0; i <8; i ++) {boutons.drawButton (); }}
En outre, le code Arduino complet pour éclairer la bande de LED NeoPixel dans la couleur souhaitée est donné ci-dessous. Le code est un peu long mais simple, vous pouvez le comprendre facilement.