Stap 3: Afdrukken de SoundWave
I 'm gonna een Neopixel stok van 16 leds geleid over een afstand van één meter en mijn opgenomen SoundWave op de 16 leds kaart verplaatsen. Ik koos voor het maken van een kleine kar met een coderingsprogramma wiel dat geeft als de positie van de kar resultaat.
Het coderingsprogramma en het wiel gaf me 340 stappen voor één meter. (Ik heb gemeten dit met een verschillende schets).
Wanneer ik de wagen krijg ik een positie van de roterende coderingsprogramma rol. Ik zou dit standpunt vervolgens toegewezen aan een monster in mijn soundSampleArray. Dan ik de gegevens van die soundSample aan een van de 16 toewijzen zou led's.
myEnc.write(0); // set encoderPosition to 0 oldPosition = 0; // oldPosition to 0 stepsPerMeter = 340; // amount of steps for covering one meter while(oldPosition < stepsPerMeter) { long newPosition = myEnc.read(); // read new encoder position if (newPosition != oldPosition) { oldPosition = newPosition; int myArrayPos = map(newPosition, 0, stepsPerMeter ,0 ,soundSampleSize ); outputValue = map(soundSampleArray[myArrayPos] ,calMid-calDif ,calMid+calDif ,0 ,16 ); // print to led stick for(uint16_t i=0; i < strip.numPixels(); i++) { if (i == outputValue) { strip.setPixelColor(i,255,0,0); } else { strip.setPixelColor(i,0,0,0); } } strip.show(); } }