Étape 4: Le CODE
Compte tenu de la durée limitée de la bande de led que j’ai, je me suis séparé de la bande de led en 6 parties pour afficher les modifications dans des fréquences différentes de la musique. Il y a 7 fréquences que l’Analyseur Audio peut obtenir, mais vous trouverez hors que certains ne sont pas tout à fait faciles à utiliser. Ainsi, vous aurez besoin jouer et voir ce qui fonctionne le mieux pour votre propre conception. Vous pouvez jeter un oeil à mon code et commencer à partir de celui-ci. Vous pouvez créer des modèles encore plus compliqués, et je suis assez impatient de plus de conceptions.
/ * musique responsable conduit code d’échantillon de bandelette créé par Yu Sun le 28/07/2015 * /
#include
#include
#define PIN 11 //The signal broche reliée avec Arduino
#define LED_COUNT 34 //total nombre de leds dans la bande de
#define bruit 120 / / bruit que vous voulez chrop off
#define SEG 6 / / combien de pièces vous souhaitez séparent la bande led dans
Analyseur Audio = Analyzer (10,9,0); //Strobe pin -> 10 broches RST -> 9 broches analogique -> 0 Adafruit_NeoPixel leds =
Adafruit_NeoPixel (LED_COUNT, PIN, NEO_GRB + NEO_KHZ800) ;
int FreqVal [7]; //create un tableau pour stocker la valeur de différent freq
void setup()
{
Serial.Begin(57600) ;
Audio.Init() ;
LEDs.Begin() ; Appelons cela pour commencer vers le haut de la bande de LED.
clearLEDs() ; Cette fonction, définie ci-dessous, désactive toutes les LED...
LEDs.Show() ; .. .mais les LEDs ne réellement à jour jusqu'à ce que vous appeliez cela.
}
void loop() {}
Audio.ReadFreq(FreqVal) ;
pour (int i = 0; i < 7; i ++) {}
FreqVal[i]=constrain(FreqVal[i],NOISE,1023) ;
FreqVal [i] = carte (FreqVal[i],NOISE,1023,0,255) ;
Serial.Print (FreqVal [i]); //used pour le débogage et Freq choisir
Serial.Print("") ;
}
int j ;
affecter des valeurs différentes
pour (j = 0; j < LED_COUNT ; J++) {
Si (0 < = j & & j < = LED_COUNT/7)
{
Set(j,FreqVal[1]); / / définir la couleur de led
LEDs.Show() ;
Delay(1.5); / / pour rendre la couleur de la led de transit plus naturellement
}
d’autre if((LED_COUNT/SEG) < = j & & j < (LED_COUNT/SEG * 2))
{
Set(j,FreqVal[1]) ;
LEDs.Show() ;
Delay(1.5) ;
}
d’autre if((LED_COUNT/SEG*2) < = j & & j < (LED_COUNT/SEG * 3)) {}
Set(j,FreqVal[3]) ;
LEDs.Show() ;
Delay(1.5) ;
}
d’autre if((LED_COUNT/SEG*3) < = j & & j < (LED_COUNT/SEG * 4)) {}
Set(j,FreqVal[4]) ;
LEDs.Show() ;
Delay(1.5) ;
}
d’autre 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) ;
}
}
}
la fonction suivante définie la couleur led basée sur sa position et la valeur de freq
void set (position de l’octet, int valeur) {}
Si (0 < = position & & position < LED_COUNT/SEG) {}
leds.setPixelColor (position, leds. Color(position*15+value*15,position*5+value*6,0)) ;
}
ElseIf (LED_COUNT/SEG < = position & & position < LED_COUNT/SEG * 2) {}
leds.setPixelColor (position, leds. Color(position*5+value*5,value+position*2,0)) ;
}
ElseIf (LED_COUNT/SEG * 2 < = position & & position < LED_COUNT/SEG * 3) {}
leds.setPixelColor (position, leds. Color(value*5+position*3,value*4+position*2,0)) ;
}
ElseIf (LED_COUNT/SEG * 3 < = position & & position < LED_COUNT/SEG * 4) {}
leds.setPixelColor (position, leds. Color(0,value*8+position,position*0.96+value*2)) ;
}
ElseIf (LED_COUNT/SEG * 4 < = position & & position < LED_COUNT/SEG * 5) {}
leds.setPixelColor (position, leds. Color(0,(value*2+position*0.2)*3,(value+position*0.5)*3)) ;
}
else {}
leds.setPixelColor (position, leds. Color(value*0.4+position*0.8,value*0.3,value*0.5+position*0.2)) ;
}
}
Sub clearLEDs()
{
pour (int i = 0; i < LED_COUNT; i ++)
{leds.setPixelColor (i, 0) ;
}
}
C’est tout ! Apprécier les vues et les sons !