Paso 4: El código
Dada la limitada longitud de la tira led que tengo, separa la tira de led en 6 partes para mostrar cambios en distintas frecuencias de la música. Hay 7 frecuencias que se puede obtener el analizador de Audio, pero encontrarás fuera que algunos no son muy fáciles de utilizar. Por lo tanto debe jugar y ver qué funciona mejor para su propio diseño. Puede echar un vistazo a mi codigo y a partir de él. Se pueden crear patrones más complicados, y bastante estoy deseando más diseños.
/ * música responsable led código tira creado por Yu Sun el 28/07/2015 * /
#include
#include
#define PIN 11 //The señal pin conectado con Arduino
#define LED_COUNT 34 //total número de leds en la franja de
#define ruido 120 / / ruido que desea chrop off
#define 6 SEG / / cuántas piezas quieres separan la tira de led en
Analizador Audio = analizador (10,9,0); //Strobe pin -> 10 pin RST -> 9 Pin analógico -> 0 Adafruit_NeoPixel leds =
Adafruit_NeoPixel (LED_COUNT, PIN, NEO_GRB + NEO_KHZ800);
int FreqVal [7]; //create un array para almacenar el valor de frecuencia diferente
void setup()
{
Serial.Begin(57600);
Audio.Init();
LEDs.Begin(); Llamar a esto para poner en marcha la tira de LED.
clearLEDs(); Esta función, definida a continuación, apaga todos los LEDs...
LEDs.Show(); .. .pero los LED realmente no actualizar hasta que se llama esto.
}
void loop() {}
Audio.ReadFreq(FreqVal);
para (int i = 0; i < 7; i ++) {}
FreqVal[i]=constrain(FreqVal[i],NOISE,1023);
FreqVal [i] = mapa (FreqVal[i],NOISE,1023,0,255);
Serial.Print (FreqVal [i]); //used para la depuración y Freq elegir
Serial.Print("");
}
int j;
asignar diferentes valores
para (j = 0; j < LED_COUNT; J++) {
Si (0 < = j & & j < = LED_COUNT/7)
{
Set(j,FreqVal[1]); / / establecer el color de led
LEDs.Show();
Delay(1.5); / / para que el color del led de tránsito más naturalmente
}
if((LED_COUNT/SEG) demás < = j & & j < (LED_COUNT/SEG * 2))
{
Set(j,FreqVal[1]);
LEDs.Show();
Delay(1.5);
}
if((LED_COUNT/SEG*2) demás < = j & & j < (LED_COUNT/SEG * 3)) {}
Set(j,FreqVal[3]);
LEDs.Show();
Delay(1.5);
}
if((LED_COUNT/SEG*3) demás < = j & & j < (LED_COUNT/SEG * 4)) {}
Set(j,FreqVal[4]);
LEDs.Show();
Delay(1.5);
}
if((LED_COUNT/SEG*4) demás < = j & & j < (LED_COUNT/SEG * 5)) {}
Set(j,FreqVal[3]);
LEDs.Show();
Delay(1.5); }
Else {}
Set(j,FreqVal[2]);
LEDs.Show();
Delay(1.5);
}
}
}
la siguiente función establece el color del led basado en su posición y valor de la frecuencia
conjunto vacío (posición de byte, int valor) {}
Si (0 < = posición & & posición < LED_COUNT/SEG) {}
leds.setPixelColor (posición, leds. Color(Position*15+Value*15,Position*5+Value*6,0));
}
else if (LED_COUNT/SEG < = posición & & posición < LED_COUNT/SEG * 2) {}
leds.setPixelColor (posición, leds. Color(Position*5+Value*5,Value+Position*2,0));
}
else if (LED_COUNT/SEG * 2 < = posición & & posición < LED_COUNT/SEG * 3) {}
leds.setPixelColor (posición, leds. Color(Value*5+Position*3,Value*4+position*2,0));
}
else if (LED_COUNT/SEG * 3 < = posición & & posición < LED_COUNT/SEG * 4) {}
leds.setPixelColor (posición, leds. Color(0,Value*8+Position,Position*0.96+Value*2));
}
else if (LED_COUNT/SEG * 4 < = posición & & posición < LED_COUNT/SEG * 5) {}
leds.setPixelColor (posición, leds. Color(0,(Value*2+Position*0.2)*3,(Value+Position*0.5)*3));
}
Else {}
leds.setPixelColor (posición, leds. Color(Value*0.4+position*0.8,Value*0.3,Value*0.5+Position*0.2));
}
}
void clearLEDs()
{
para (int i = 0; i < LED_COUNT; i ++)
{leds.setPixelColor (i, 0);
}
}
Eso es todo! Disfrutar de las vistas y sonidos!