- Componenti necessari:
- Collegamenti del circuito:
- Spiegazione di lavoro:
- Spiegazione della programmazione:
Ogni colore è composto da tre colori: Rosso, Verde e Blu, utilizzando un semplice LED RGB è possibile generare qualsiasi colore. Ma il limite del LED RGB è che ha tre LED separati al suo interno e richiede tre pin di qualsiasi microcontrollore per far funzionare un LED RGB. Quindi non è possibile collegare centinaia di LED con un microcontrollore.
Per ovviare a questo problema, Adafruit ha creato NeoPixel LED Strip. Richiede solo tre pin per pilotare diversi LED NeoPixel RGB. Due pin sono per l'alimentazione e la messa a terra e un Pin è per Data In (DI). Il pin Data IN viene utilizzato per indirizzare e controllare i diversi LED nella striscia con il loro colore, luminosità, ecc. Ma richiede un microcontrollore per eseguire NeoPixels. Arduino è molto comunemente usato con NeoPixel, quindi oggi impareremo a interfacciare i LED NeoPixel con Arduino. Puoi saperne di più su NeoPixels su AdaFruit.
Qui in questo progetto stiamo controllando i LED NeoPixel utilizzando Arduino e touch screen LCD TFT. Abbiamo creato 7 pulsanti a sfioramento di colori diversi su LCD TFT da 2,4 pollici e quando tocchiamo il pulsante di un determinato colore sull'LCD, la striscia LED NeoPixel si illumina con lo stesso colore di quel pulsante. Qui abbiamo utilizzato la striscia LED NeoPixel Digital RGB di 30 LED.
Il LED RGB NeoPixel può essere illuminato in qualsiasi colore e quindi possiamo aggiungere più pulsanti sull'LCD per illuminare il LED in più colori toccando quei pulsanti. Altri bellissimi effetti e modelli possono anche essere aggiunti utilizzando Coding. Puoi costruire un sistema di decorazione completamente controllato da Arduino utilizzando i LED NEO Pixel e puoi controllare questo sistema da un display LCD vicino a te.
Componenti necessari:
- Arduino Mega o qualsiasi altro modello Arduino
- Schermo LCD TFT da 2,4 pollici con controller SPFD5408
- Striscia LED RGB NeoPixel
- Collegamento dei cavi
- Cavo USB o adattatore 12 V 1A
Collegamenti del circuito:
Per collegare NeoPixels Strip ad Arduino Mega è sufficiente collegare il pin 5V di Arduino al pin 5V di NeoPixel e GND di Mega al GND di NeoPixel, quindi collegare il pin DI NeoPixel (data in) al pin digitale n. 36 di Arduino Mega. Montare con attenzione lo schermo tattile TFT LCD su Arduino in modo che GND di MEGA si trovi sotto GND di LCD e il pin 5V di Arduino si colleghi al pin 5V di LCD.
Fare attenzione a non scambiare GND e 5V pin della striscia LED NeoPixel durante il collegamento ad Arduino, altrimenti danneggerà la striscia LED NeoPixel. Nota anche che qui abbiamo usato Arduino Mega ma puoi usare qualsiasi altro modello di Arduino.
Connessioni ad Arduino a NeoPixel RGB LED Strip:
Pin Arduino |
Pin di NeoPixel Strip |
5v |
5v |
GND |
GND |
Pin digitale n. 36 |
DI (dati in) |
Spiegazione di lavoro:
Lavorare con NeoPixel LED con Arduino è molto semplice. Basta toccare il pulsante a sfioramento di qualsiasi colore sul display LCD in cui si desidera illuminare la striscia LED NeoPixel. Il LED si accenderà in base a quel colore. Il codice è scritto in modo tale da poter ripetere questa operazione all'infinito senza dover ripristinare Arduino Mega. Puoi controllare il codice e il video dimostrativo alla fine di questo articolo.
Quando si tocca un pulsante sul display LCD, i dati vengono inviati ad Arduino e Arduino invia inoltre istruzioni a NeoPixel Strip per illuminarsi di conseguenza. Ad esempio, la striscia LED NeoPixel si illumina di colore verde quando si tocca il pulsante verde sul display LCD e la striscia LED si illumina di colore rosso quando si preme il pulsante rosso e così via.
Spiegazione della programmazione:
Per interfacciare LCD TFT con Arduino abbiamo utilizzato alcune librerie. Tutte le librerie vengono fornite in un file rar e possono essere scaricate da questo collegamento. Fai clic su "Clona o scarica" e "Scarica il file ZIP" e aggiungilo alla cartella della libreria di Arduino. Questa libreria è necessaria per il corretto funzionamento di TFT LCD.
#includere
Dovresti testare il tuo LCD TFT masterizzando Arduino con codici di esempio forniti nella Libreria e verificare se i codici funzionano correttamente. Prima controlla il test grafico, quindi calibra il test e infine il test della vernice. Se trovi che tutte le funzionalità funzionano correttamente, inizia con il codice fornito in questo tutorial.
Anche per il corretto funzionamento della striscia LED RGB NeoPixel, avrai bisogno di un'altra libreria, che può essere scaricata da qui.
#includere
Come descritto in precedenza, il pin digitale 36 di MEGA è collegato al pin DI della striscia LED NeoPixel come mostrato nel codice sottostante. Anche i numeri di LED nella Strip sono 30 così come è scritto in codice:
#define PIN 36 #define NUM_LEDS 30
I colori del display dei pulsanti LCD sono indicati da alcuni codici. È possibile modificare questi codici in base al display LCD.
#define NERO 0x0000 #define GIALLO 0x001F #define VERDE 0xF800 #define ROSSO 0x07E0 #define CIANO 0x07FF #define MAGENTA 0xF81F #define BLU 0xFFE0 #define BIANCO 0xFFFF
Alcuni parametri per i pulsanti come dimensione e posizione sono definiti nel codice:
uint16_t larghezza = 0; uint16_t altezza = 0; uint16_t x = 40; uint16_t y = altezza - 20; uint16_t w = 75; uint16_t h = 20;
Il parametro h viene utilizzato per regolare la dimensione del pulsante sull'LCD. Se ottieni 40, la dimensione del pulsante verrà raddoppiata. Il parametro y è la coordinata y dell'LCD.
I pulsanti a sfioramento sono contrassegnati da numeri come mostrato nel codice:
#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
Alcune funzioni sono utilizzate per emettere il colore da NeoPixel come:
void EmitCyan (); void EmitWhite (); void EmitGreen (); void EmitYellow (); void EmitPink (); void EmitBlack ();
Per trovare i valori RGB digitali da inserire per il colore dato, puoi seguire questo link. Basta inserire il colore che vuoi che la tua striscia NeoPixel si illumini, trovare i valori RGB per quel colore e inserire le funzioni sopra.
La funzione void initializeButtons () viene utilizzata per dare testo e colore ai pulsanti e anche per posizionarli nel punto richiesto sull'LCD.
void initializeButtons () {uint16_t x = 40; uint16_t y = altezza - 20; uint16_t w = 75; uint16_t h = 40; uint8_t spaziatura_x = 5………………..
La funzione void showCalibration () viene utilizzata per disegnare i pulsanti sull'LCD.
void showCalibration () {tft.setCursor (40, 0); for (uint8_t i = 0; i <8; i ++) {buttons.drawButton (); }}
Di seguito è riportato inoltre il codice Arduino completo per illuminare la striscia LED NeoPixel nel colore desiderato. Il codice è un po 'lungo ma semplice, puoi capire facilmente il codice.