Saltar la navegación

Mesa de luces. Prototipo. Potenciómetros

Diseño de una mesa de luces con la ayuda de potenciómetros. 
Utilizaremos un arduino, una tira de neopixels y 4 potenciómetros. 3 de ellos para cada color luz y el cuarto para el brillo.
Hay que recortar la caja creando una ventana menor que el papel o plástico que vamos a poner.
paso 1

Hay que hacer un agujero para sacar los cables.
En este proyecto, para que se pudiera ver la construcción hemos dejado a la vista todos los cables.

paso 2

Utilizaremos una tira de neopixels de un metro con 30 leds
tira leds

La tira de leds ya lleva una cinta adhesiva que nos permite engancharla.
paso 3

Aqui podeis ver como queda

Cerramos la caja y conectamos los cables de la tira led con nuestro arduino. 
paso 4

Los potenciómetros tienen 3 pines, uno para corriente, otro para suelo y el tercero para señal. Hay que hacer llevar 4 señales a nuestro arduino.

potenciometros

paso 5

Aquí podéis ver como queda

Un vídeo corto del resultado final

Código:

#include <Adafruit_NeoPixel.h>
 
#define PIN 5   //Pin entrada Neopixel a Pin 2 arduino
 
#define NUMPIXELS      150 // Número de píxels de la tira
 
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
 
int delayval = 10; // delay entre píxels
const int analogPinRed = A1;
const int analogPinGreen = A2;
const int analogPinBlue = A3;
const int analogPinBrillo = A4;
int redColor = 0;
int greenColor = 0;
int blueColor = 0;
int brillo=20;
 
void setup() {
  // Inicializa la libreria NeoPixel.
  pixels.begin();
}
 
void loop() {
  setColor();//ejecuta la función fijar color
 
  for (int i=0; i < NUMPIXELS; i++) {
    //cada píxel asume el color
    pixels.setPixelColor(i, pixels.Color(redColor, greenColor, blueColor));
pixels.setBrightness(brillo);
    // manda el color a la tira.
    pixels.show();
 
    // Delay entre píxels (in milliseconds).
    delay(delayval);
  }
}
 
// setColor() 
//fija el color en función de las posiciones de los potenciómetros
void setColor(){
  
  redColor = analogRead(analogPinRed) / 4;//se divide por 4 ya que la lectura analógica es de 0 a 1024
  greenColor = analogRead(analogPinGreen) / 4;
  blueColor = analogRead(analogPinBlue) / 4;
  brillo=analogRead(analogPinBrillo)/10;
}