Cas d'estudi: NeoPixels
Les tires de NeoPixels són agrupacions en forma de tira (strip en anglés) més o menys allargada amb leds RGB que comparteixen el càtode (GND) i l'anòde (+) però tenen un circuit integrat que connectem a un pin digital d'entrada en Arduino, usant les funcions que hi ha programes a les llibreries poden engegar diferents leds RGB. Anem a veure com es connecten les tires NeoPixel de 8x8.
Primer del tot, cal soldar 6 pins a les exides GND (x2), 5V (x2) , DIN (Digital Input), i DOUT (Digital Output), per poder connectar cables al nostre Arduino Uno i fer el muntatge següent:
A continuació et cal baixar les llibreries d'Adafruit següents:
Llibreria 1: Adafruit_NeoPixel
LLibreria 2: Adafruit_NeoMatrix-master.zip
Llibreria 3: Adafruit-GFX-Library-master.zip
Descarrega-les i copia-les a la carpeta libraries de la teua /home/«usuari»/Arduino/libraries en lliurex.
El programa passarà les dades pel pin 6 d'Arduino a la tira NeoPixel. I anirà escrivint alguna dels 64 leds RGB que té definits per omplir de color.
Mira el dibuix de baix per veure quins leds s'ompliràn de color.
Escriu el programa provaNeoPixel8x8.
El programa equivalent en Arduino IDE és:
#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel MATRIX_RGB = Adafruit_NeoPixel(64, 6, NEO_GRB + NEO_KHZ800);
void setup() {
Serial.begin(9600);
pinMode(6, OUTPUT);
MATRIX_RGB.begin();
}
void loop() {
MATRIX_RGB.setPixelColor(0, 0x009900);
MATRIX_RGB.setPixelColor(2, 0x009900);
MATRIX_RGB.setPixelColor(4, 0x009900);
MATRIX_RGB.setPixelColor(5, 0x009900);
MATRIX_RGB.setPixelColor(6, 0x009900);
MATRIX_RGB.setPixelColor(8, 0x009900);
MATRIX_RGB.setPixelColor(9, 0x009900);
MATRIX_RGB.setPixelColor(10, 0x009900);
MATRIX_RGB.setPixelColor(12, 0x009900);
MATRIX_RGB.setPixelColor(14, 0x009900);
MATRIX_RGB.setPixelColor(16, 0x009900);
MATRIX_RGB.setPixelColor(18, 0x009900);
MATRIX_RGB.setPixelColor(20, 0x009900);
MATRIX_RGB.setPixelColor(21, 0x009900);
MATRIX_RGB.setPixelColor(22, 0x009900);
MATRIX_RGB.setPixelColor(32, 0x009900);
MATRIX_RGB.setPixelColor(36, 0x009900);
MATRIX_RGB.setPixelColor(37, 0x009900);
MATRIX_RGB.setPixelColor(38, 0x009900);
MATRIX_RGB.setPixelColor(40, 0x009900);
MATRIX_RGB.setPixelColor(44, 0x009900);
MATRIX_RGB.setPixelColor(45, 0x009900);
MATRIX_RGB.setPixelColor(46, 0x009900);
MATRIX_RGB.setPixelColor(48, 0x009900);
MATRIX_RGB.setPixelColor(49, 0x009900);
MATRIX_RGB.setPixelColor(50, 0x009900);
MATRIX_RGB.setPixelColor(52, 0x009900);
MATRIX_RGB.setPixelColor(54, 0x009900);
MATRIX_RGB.show();
delay(2000);
MATRIX_RGB.setPixelColor(0, 0xff0000);
MATRIX_RGB.setPixelColor(2, 0xff0000);
MATRIX_RGB.setPixelColor(4, 0xff0000);
MATRIX_RGB.setPixelColor(5, 0xff0000);
MATRIX_RGB.setPixelColor(6, 0xff0000);
MATRIX_RGB.setPixelColor(8, 0xff0000);
MATRIX_RGB.setPixelColor(9, 0xff0000);
MATRIX_RGB.setPixelColor(10, 0xff0000);
MATRIX_RGB.setPixelColor(12, 0xff0000);
MATRIX_RGB.setPixelColor(14, 0xff0000);
MATRIX_RGB.setPixelColor(16, 0xff0000);
MATRIX_RGB.setPixelColor(18, 0xff0000);
MATRIX_RGB.setPixelColor(20, 0xff0000);
MATRIX_RGB.setPixelColor(21, 0xff0000);
MATRIX_RGB.setPixelColor(22, 0xff0000);
MATRIX_RGB.setPixelColor(32, 0xff0000);
MATRIX_RGB.setPixelColor(36, 0xff0000);
MATRIX_RGB.setPixelColor(37, 0xff0000);
MATRIX_RGB.setPixelColor(38, 0xff0000);
MATRIX_RGB.setPixelColor(40, 0xff0000);
MATRIX_RGB.setPixelColor(44, 0xff0000);
MATRIX_RGB.setPixelColor(45, 0xff0000);
MATRIX_RGB.setPixelColor(46, 0xff0000);
MATRIX_RGB.setPixelColor(48, 0xff0000);
MATRIX_RGB.setPixelColor(49, 0xff0000);
MATRIX_RGB.setPixelColor(50, 0xff0000);
MATRIX_RGB.setPixelColor(52, 0xff0000);
MATRIX_RGB.setPixelColor(54, 0xff0000);
MATRIX_RGB.show();
delay(2000);
}
Fes la pràctica NeoPixels 8x8_1