Saltar la navegación

Matrix Pixel

Esta matrix de neopixels se ha construido con cartón pluma, una tira de leds neopixels, un arduino nado y poca cosa más.
El proceso lo tenéis en las ilustraciones. El codigo puede ser cualquiera de los ejemplos que lleva las librerias de Adafruit o Fastled que encontrareis gestionando Bibliotecas en Arduino; solo tendréis que modificar el número de leds y el dispositivo controlador.

Hay diferentes tipos de neopixels. Nosotros elegimos estos por tener una distancia entre led y led que nos permitía separarlos lo necesario y evitar tener que soldarlos.
El precio de las tiras es razonable.
007

01

002

003

004

005

006

Se ha utilizado cartón pluma por su resistencia y ligerreza pero se puede utilizar cualquier otro material. La cola para el cartón ha sido una silicona escolar de lo más normal, la plancha que tapa ligeramente los leds son hojas de papel vegetal, los agujeros se hicieron con un soldador que quemaba el porxpán del cartón pluma,...

Código Arduino

//asigna un color al azar (función set color)  a un led al azar (función np) en cada uno de los tramos
 
#include <Adafruit_NeoPixel.h>
 
#define PIN 7   // pin X de arduino 
 
#define NUMPIXELS      50 // numero de pixels
 
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int numtramos=5;
int delayval = 2000; // tiempo de regeneración de color
 
int redColor = 0;
int greenColor = 0;
int blueColor = 0;
int np1=0;
int np2=0;
int np3=0;
int np4=0;
int np5=0;
/*int np6=0;
int np7=0;
int np8=0;
int np9=0;
int np10=0;
int np11=0;
int np12=0;
int np13=0;
int np14=0;
int np15=0;
*/
 
void setup() {
  // Initialize the NeoPixel library.
  pixels.begin();
 }
 
void loop() {
   setColor();
  np();
  
  // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
  pixels.setPixelColor(np1, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np2, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np3, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np4, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np5, pixels.Color(redColor, greenColor, blueColor));
  setColor(); 
 
    pixels.show();
 
    setColor();
 
 delay(delayval);
 
 
}
void np(){
  np1 =random (0,NUMPIXELS/numtramos);
  np2 =random (NUMPIXELS/numtramos,2*NUMPIXELS/numtramos);
  np3 =random (2*NUMPIXELS/numtramos,3*NUMPIXELS/numtramos);
  np4 =random (3*NUMPIXELS/numtramos,4*NUMPIXELS/numtramos);
  np5 =random (4*NUMPIXELS/numtramos,5*NUMPIXELS/numtramos);
 
}
// setColor()
// picks random values to set for RGB
void setColor(){
  redColor = random(0, 255);
  greenColor = random(0,255);
  blueColor = random(0, 255);
}