Stap 4: De CODE
Gezien de beperkte lengte van de led strip die ik heb, ik de led strip zijn onderverdeeld in 6 delen wijzigingen worden weergegeven in verschillende frequenties van de muziek. Er zijn 7 frequenties die de Audio Analyzer kunt krijgen, maar u zult Ontdek die sommige niet heel makkelijk zijn te gebruiken. Dus moet u om te spelen rond en zie wat het beste werkt voor uw eigen ontwerp. U kunt een kijkje nemen op mijn code en starten vanaf het. Nog ingewikkelder patronen kunnen worden gemaakt, en ik ben heel benieuwd naar meer ontwerpen.
/ * muziek verantwoordelijk led strip voorbeeldcode gemaakt door Yu Sun op 07/28/2015 * /
#include
#include
#define PIN 11 //The signaal pin verbonden met Arduino
#define LED_COUNT 34 //total aantal leds in de strip
#define lawaai 120 / / ruisverhouding dat u wilt chrop af
#define SEG 6 / / hoeveel onderdelen u wilt scheiden de led strip in
Analyzer Audio Analyzer (10,9,0); = //Strobe pin -> 10 eerste pin -> 9 analoge Pin -> 0 Adafruit_NeoPixel leds =
Adafruit_NeoPixel (LED_COUNT, PIN, NEO_GRB + NEO_KHZ800);
int FreqVal [7]; //create een matrix voor het opslaan van de waarde van verschillende freq
VOID Setup
{
Serial.begin(57600);
Audio.Init();
LEDs.begin(); Noemen dit opstarten van de LED-strip.
clearLEDs(); Deze functie, hieronder omschreven wordt alle LEDs uitgeschakeld...
LEDs.show(); .. .maar de LEDs eigenlijk niet bijgewerkt totdat u noemen dit.
}
void loop {}
Audio.ReadFreq(FreqVal);
for (int i = 0; ik < 7; i ++) {}
FreqVal[i]=constrain(FreqVal[i],NOISE,1023);
FreqVal [i] = kaart (FreqVal[i],NOISE,1023,0,255);
Serial.Print (FreqVal [i]); //used voor het debuggen en het kiezen van de Freq
Serial.Print("");
}
int j;
verschillende waarden toewijzen
voor (j = 0; j < LED_COUNT; J++) {
Als (0 < = j & & j < = LED_COUNT/7)
{
set(j,FreqVal[1]); / / instellen van de kleur van geleid
LEDs.show();
delay(1.5); / / om de kleur van de led transit natuurlijker
}
anders if((LED_COUNT/SEG) < = j & & j < (LED_COUNT/SEG * 2))
{
set(j,FreqVal[1]);
LEDs.show();
delay(1.5);
}
anders if((LED_COUNT/SEG*2) < = j & & j < (LED_COUNT/SEG * 3)) {}
set(j,FreqVal[3]);
LEDs.show();
delay(1.5);
}
anders if((LED_COUNT/SEG*3) < = j & & j < (LED_COUNT/SEG * 4)) {}
set(j,FreqVal[4]);
LEDs.show();
delay(1.5);
}
anders if((LED_COUNT/SEG*4) < = 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);
}
}
}
de volgende functie instellen de led kleur op basis van haar positie en de waarde van de freq
VOID set (bytepositie, int value) {}
Als (0 < = positie & & positie < LED_COUNT/SEG) {}
leds.setPixelColor (positie, leds. Color(Position*15+value*15,position*5+value*6,0));
}
anders als (LED_COUNT/SEG < = positie & & positie < LED_COUNT/SEG * 2) {}
leds.setPixelColor (positie, leds. Color(Position*5+Value*5,value+Position*2,0));
}
anders als (LED_COUNT/SEG * 2 < = positie & & positie < LED_COUNT/SEG * 3) {}
leds.setPixelColor (positie, leds. Color(Value*5+position*3,Value*4+Position*2,0));
}
anders als (LED_COUNT/SEG * 3 < = positie & & positie < LED_COUNT/SEG * 4) {}
leds.setPixelColor (positie, leds. Color(0,Value*8+position,position*0.96+Value*2));
}
anders als (LED_COUNT/SEG * 4 < = positie & & positie < LED_COUNT/SEG * 5) {}
leds.setPixelColor (positie, leds. Color(0,(Value*2+position*0.2)*3,(Value+position*0.5)*3));
}
else {}
leds.setPixelColor (positie, leds. Color(value*0.4+position*0.8,value*0.3,value*0.5+position*0.2));
}
}
VOID clearLEDs()
{
for (int i = 0; ik < LED_COUNT; i ++)
{leds.setPixelColor (i, 0);
}
}
That's it! Geniet van de bezienswaardigheden en geluiden!