Saltar la navegación

Tubos de luces

Video ejemplo

Material necesario

Tubo
tubo 1
5 metros de tubo en el que se va a poner una tira de 5 m de leds.
En la foto ya parece el alambre dentro del tuvo, alambre que nos ayudará a hacer pasar la tira de leds.
tub 1
Con la tira de leds dentro. 

Leds: Aconsejable de base blanca (White PCB)
leds 5 m
Arduino y conector a la corriente a una distancia del tubo, para ello se le ha añadido,
soldado, un cable de 3 metros.

Tira de led de acorde con la longuitud del tubo.
Muy importante mirar la anchura del tubo. 
Normalmente las tiras son de 1 cm de ancho.
Para pasar la tira primero será necesario pasar un pasador.
En el ejemplo se utilizo un alambre un poco grueso disponiendo el 
tubo en linea recta.

Arduino/Controlador

Para este ejercicio nos hemos decantado por un Arduino Nano que dispondremos
dentro de una caja de plastico a gran distancia del tubo.
Hemos elegido Arduino para poder utilizar nuestra programación.
Queriamos que fuera una aparición de colores aleatoria, con un brillo determinado
y, especialmente, con una velocidad controlada, velocidad baja dado el publico destinatario.

Programación

//divide la tira en 10 tramos (variable numtramos)
//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 6   // pin 5 de arduino a in tira
#define NUMPIXELS      150 // numero de pixels
 
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int brillo=50;//para fijar Brightness
int numtramos=10;
int delayval = 3000; // 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;
void setup() {
  // Initialize the NeoPixel library.
  pixels.begin();
  pixels.setBrightness(brillo);
 for (int i=0; i<NUMPIXELS;i++){
  setColor();
  pixels.setPixelColor(i, pixels.Color(redColor, greenColor, blueColor));
  }
}
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.setPixelColor(np6, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np7, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np8, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np9, pixels.Color(redColor, greenColor, blueColor));
  setColor();
  pixels.setPixelColor(np10, 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);
  np6 =random (5*NUMPIXELS/numtramos,6*NUMPIXELS/numtramos);
  np7 =random (6*NUMPIXELS/numtramos,7*NUMPIXELS/numtramos);
  np8 =random (7*NUMPIXELS/numtramos,8*NUMPIXELS/numtramos);
  np9 =random (8*NUMPIXELS/numtramos,9*NUMPIXELS/numtramos );
  np10 =random (9*NUMPIXELS/numtramos,10*NUMPIXELS/numtramos);
 
}
// setColor()
// picks random values to set for RGB
void setColor(){
  redColor = random(0, 255);
  greenColor = random(0,255);
  blueColor = random(0, 255);
}

tubo 2