0

Realizar Degradado Ascendente
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

Realizar Degradado Ascendente

by fadrellcs on Sun Dec 30, 2018 12:15 pm

Hola,

Siento no hablar en ingles, pero si no utilizo traductores no entiendo el idioma.

Desde aquí he visto, varios tutoriales interesantes, pero hay una cosa que no encuentro en la librería <Adafruit_NeoPixel.h> que es el poder realizar degradados.

El objetivo es este vídeo, que no muestra en gran parte degradados,

https://mega.nz/#!cVBhACSZ!taVzqh7jgLYg ... MOiE2vqY04

Buscando codigos, encontre esto,
Code: Select all | TOGGLE FULL SIZE
Adafruit_ColorRGB COLORS[NUM_COLORS] = {
  Adafruit_ColorRGB(0.0, 0.0, 1.0),
  Adafruit_ColorRGB(1.0, 1.0, 0.0)
};


Pero si lo uso, me dice que no es posible utilizarlo y no se si es invención de alguien, o es necesario alguna libreria mas.


A parte este es el código que por ahora he creado, y que funciona bien, pero.... Consume muchos recursos.

Code: Select all | TOGGLE FULL SIZE
#include <Adafruit_NeoPixel.h>

#define PIN 6
//Numero de pixels que va a tener nuestra tira.

#define NUMPIXELS  300
int PasadasEscalera = 0;
int pasadasCascada = 0;
int valorBrillo2 = 0;
int resto= 0;
int TamMT = 10;
int ParteTira = 200;
int gruposCS = NUMPIXELS/TamMT;

uint8_t DegradaRA[][3] = {{255, 0, 0}, // 16 Pasadas
                         {255, 5, 0},
                         {255, 10, 0},
                         {255, 15, 0},
                         {255, 20, 0},
                         {255, 25, 0},
                         {255, 30, 0},
                         {255, 35, 0},
                         {255, 40, 0},
                         {255, 45, 0},
                         {255, 50, 0},
                         {255, 55, 0},
                         {255, 60, 0},
                         {255, 65, 0},
                         {255, 70, 0},
                         {255, 75, 0},
                         {255, 80, 0},
                         {255, 85, 0},
                         {255, 90, 0},
                         {255, 95, 0},
                         {255, 100, 0},
                         {255, 105, 0},
                         {255, 110, 0},
                         {255, 115, 0},
                         {255, 120, 0},
                         {255, 125, 0},
                         {255, 130, 0},
                         {255, 135, 0},
                         {255, 140, 0},
                         {255, 145, 0},
                         {255, 150, 0},
                         {255, 155, 0},
                         {255, 160, 0},
                         {255, 165, 0},
                         {255, 170, 0},
                         {255, 175, 0},
                         {255, 180, 0},
                         {255, 185, 0},
                         {255, 190, 0},
                         {255, 195, 0},
                          };
                         
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

  uint32_t rojo = pixels.Color(250,0,0);
  uint32_t verde = pixels.Color(0,150,0);
  uint32_t azul = pixels.Color(0,0,150);
  uint32_t amarillo = pixels.Color(250,250,0);
  uint32_t morado = pixels.Color(150,0,150);
  uint32_t celeste = pixels.Color(0,150,150);
  uint32_t blanco = pixels.Color(150,150,150);
  uint32_t negro = pixels.Color(0,0,0);


// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across
// pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input
// and minimize distance between Arduino and first pixel.  Avoid connecting
// on a live circuit...if you must, connect GND first.

void setup() {
    Serial.begin(9600);
    pixels.begin();
}

void loop() {

  juegoDegradado(40);
}

void juegoDegradado(int velocidad){
 
 PasadasEscalera = 1;
 pasadasCascada = 0;
 valorBrillo2 = 0;
 resto = 0;
 int PasadasCorre =0;
 
 while (pasadasCascada <= NUMPIXELS+17){
   
   for (int x=0; x<NUMPIXELS; x++){
 
     if (x > pasadasCascada){
       pixels.setPixelColor( x, DegradaRA[PasadasEscalera][0],DegradaRA[PasadasEscalera][1],DegradaRA[PasadasEscalera][2]);
       PasadasEscalera++;
 
      // Serial.println(PasadasEscalera);
       if (PasadasEscalera >= 40){
         PasadasEscalera=39;
       }
     
     } else    {
       pixels.setPixelColor( x, DegradaRA[0][0],DegradaRA[0][1],DegradaRA[0][2]);
     }
     
   }
   
   pasadasCascada++;
   PasadasEscalera=0;
   
   
   pixels.show();   // Mostramos y actualizamos el color del pixel de nuestra cinta led RGB
   delay(velocidad); // Pausa por un periodo de tiempo (en milisegundos).
   
   
   
   
 }//WHILE


Me gustaría dedicarle mas tiempo a programar, pero dispongo de muy poco tiempo, y suelo utilizar el fin de semana para adelantar cosas y no se por donde tirar adelante sin necesidad de recurrir a las tarjetas TS1000

gracias.

fadrellcs
 
Posts: 1
Joined: Sun Dec 30, 2018 12:07 pm

Please be positive and constructive with your questions and comments.