Neo Pixel Arduino Vu-Meter (6 / 6 steg)

Steg 6: Koden.

Denna kod lämnade Adafruit för deras LED förstärkare eller-slips. Jag har ändrat några saker i det att passa mitt projekt.

/*
LED VU mätare för Arduino och Adafruit NeoPixel lysdioder.

Hårdvarukrav:
-De flesta Arduino eller Arduino-kompatibel styrelser (ATmega 328P eller bättre).
-Adafruit Elektret Mikrofonförstärkare (ID: 1063)
-Adafruit Flora RGB Smart pixlar (ID: 1260)
ELLER
-Adafruit NeoPixel Digital LED strip (ID: 1138)
-Tillval: batteri för portabelt bruk (annan ström via USB eller adapter)
Programvarukrav:
-Adafruit NeoPixel bibliotek

Anslutningar:
-3.3V till mic förstärkare +
-GND till mic amp-
-Analog pin till mikrofon-utgång (konfigurerbart nedan)
-Digital pin till LED data ingång (konfigurerbart nedan)
Se anmärkningar i setup() när det gäller 5V vs 3.3V styrelser - det kan finnas en
extra anslutning att göra och en rad med kod för att aktivera eller inaktivera.

Skrivet av Adafruit industrier. Distribueras under BSD-licensen.
Denna punkt måste inkluderas i en omfördelning.
*/

#include < Adafruit_NeoPixel.h >

#define N_PIXELS 30 / / antal pixlar i strand
#define MIC_PIN A5 / / mikrofon är ansluten till denna analoga pin
#define LED_PIN 6 / / NeoPixel LED strand är ansluten till detta stift
#define DC_OFFSET 0 / / DC-offset i mic signal - om unusure, lämna 0
#define buller 20 / / buller/hum/störning i mic signal
#define prover 40 / / längd buffert för dynamisk nivåjustering
#define topp (N_PIXELS + 2) / / tillåt dot att gå något skalan
#define PEAK_FALL 60 / / hastighet av peak faller dot

byte
toppen = 0, / / används för fallande dot
dotCount = 0, / / ram-mätare för att försena dot-falla hastighet
volCount = 0; Bildräkneverket för att lagra förbi volymdata
int
[exempel], Vol / / tidigare volym provtagning
lvl = 20, / / ström "dämpade" ljudnivå.
minLvlAvg = 0, / / för dynamisk justering av grafen låg & hög
maxLvlAvg = 512;
Adafruit_NeoPixel
Strip = Adafruit_NeoPixel (N_PIXELS, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {

Detta behövs bara på 5V Arduinos (Uno, Leonardo, etc.).
Ansluta 3.3V till mic och till AREF på ARDUINO och möjliggöra den här
linje. Ljudsamplingar är "renare" på 3,3 v.
KOMMENTERA BORT RADEN FÖR 3.3V ARDUINOS (FLORA, ETC.):
analogReference(EXTERNAL);

MEMSET (vol, 0, sizeof(vol));
Strip.BEGIN();
}

void loop() {
uint8_t i.
uint16_t minLvl, maxLvl;
int n, höjd;

n = analogRead(MIC_PIN); RAW från mic
n = abs n - 512 - DC_OFFSET. Center på noll
n = (n < = buller)? 0: n - buller. Ta bort brus/hum
lvl = ((lvl * 7) + n) >> 3. "Dämpade" läsning (annars ser ut ryckiga)

Beräkna stapelhöjd baserat på dynamisk min/max nivåer (fast punkt):
höjd = upp * (lvl - minLvlAvg) / (lång) (maxLvlAvg - minLvlAvg);

om (höjd < 0L) höjd = 0; Klipp ut
annat if(height > TOP) höjd = topp;
IF(height > Peak) topp = höjd; Hålla "peak" prick på toppen

Färgpixlar baserat på rainbow lutning
för (jag = 0; jag < N_PIXELS; i ++) {
om (jag > = höjd) strip.setPixelColor (i, 0, 0, 0);
annat strip.setPixelColor(i,Wheel(map(i,0,strip.numPixels()-1,30,150)));

}

Rita peak prick
om (topp > 0 & & topp < = N_PIXELS-1) strip.setPixelColor(peak,Wheel(map(peak,0,strip.numPixels()-1,30,150)));

Strip.show(); Uppdatering strip

Varje par ramar, göra topp pixel förbi 1:

om (++ dotCount > = PEAK_FALL) {//fall ränta

om (peak > 0) peak--;
dotCount = 0;
}

Vol [volCount] = n; Spara provet för dynamisk utjämning
om (++ volCount > = prover) volCount = 0; Advance/rollover prov counter

Få volym spektrum av tidigare ramar
minLvl = maxLvl = vol [0];
för (jag = 1; jag < prover; i ++) {
om (vol [i] < minLvl) minLvl = vol [i];
annars om (vol [i] > maxLvl) maxLvl = vol [i];
}
minLvl och maxLvl anger volymen spänner över tidigare ramar, används
för vertikalt skalning ut grafen (så det ser intressant
oavsett volymnivå). Om de är för nära varandra men
(t.ex. vid mycket låga volymnivåer) blir grafen super grova
och "nervös"... så håll vissa minsta avstånd mellan dem (detta
också kan grafen gå till noll när inget ljud spelas):
om ((maxLvl-minLvl) < topp) maxLvl = minLvl + topp;
minLvlAvg = (minLvlAvg * 63 + minLvl) >> 6. Dämpa min/max nivåer
maxLvlAvg = (maxLvlAvg * 63 + maxLvl) >> 6. (försköna rullande medelvärde)

}

Ange ett värde 0 till 255 att få ett färgvärde.
Färgerna är en övergång r - g - b - tillbaka till r.
uint32_t hjul (byte WheelPos) {
IF(WheelPos < 85) {
returnera strip. Färg (WheelPos * 3, 255 - WheelPos * 3, 0);
} annat if(WheelPos < 170) {
WheelPos-= 85.
returnera strip. Färg (255 - WheelPos * 3, 0, WheelPos * 3);
} annat {
WheelPos-= 170;
returnera strip. Färg (0, WheelPos * 3, 255 - WheelPos * 3);
}
}

Se Steg
Relaterade Ämnen

Arduino/Twitter Mets Apple

När jag går till Citi Field med mina barn att se Mets, de går galen för Home Run Apple.To mig, Apple är en del av vad gör baseball spännande för barn. Trots att mina barn inte kan titta på de flesta spel, tycker jag fortfarande att föra dem längs.Hom...

Arduino VU-meter

Kan göra en enkel Arduino VU-meter!Steg 1: komponenter · LM386 operationsförstärkare· Elektret mikrofon kondensator· Arduino duemilanove· 10 k potentiometer· Kondensatorer: 47 nF, 1uF, 10uF, 100uF 100nF· Motstånd: 10Ω, 22k· 6 lysdioderFör att skilja...

Arduino baserat Meter - en många LED Driver

som ett direkt resultat av en fråga i forumet Instructables, för en bargraph att visa data på instrumentbrädan i en bil, en anpassad elektronik instructable.Här, för din uppbyggelse är bil-barDuino, visar ett enkelt system för analoga och digitala gr...

ARDUINO ENERGY METER

[Spela Video]Jag tillhör en by i Odisha, Indien där täta strömavbrott är mycket vanligt. Det försvårar livet för var och en. Under min barndom dagar fortsatta studier efter skymningen var en riktig utmaning. På grund av detta problem konstruerade jag...

Arduino vu-meter med förstärkare

din fyra huvudsakliga delar för detta projekt är en Arduino, en LoLshield och en förstärkareLoLshield är ett kretskort som kommer med ett bibliotek som gör det möjligt att individuellt styra en matris av lysdioder. När du har den rätt bibliotek insta...

Arduino: Ljus, ljud, vibrationer, Switch

Detta är en steg för steg guide att göra en avlägsen driven Arduino uppsättning som kommer att producera ljud, ljus och vibrationer i 1 sekund när en switch är tryckt. Jag kommer att ge den arduino koden och steg till inrättande av datorn. Dessutom k...

Arduino ljus

Detta projekt använder Arduino programvara, Google Sketchup och 3D-teknologi.Steg 1: Arduino kodenFör vår slutliga kod sammanställt vi både .h och .ino filer från separata flikar i arduino utvecklingsmiljön (IDE). Color.h behöver en kod från neopixel...

Arduino kontrollerade smart coaster

Den Smart Coaster är en intelligent och dalbana för dina drycker. Den känner igen olika typer av drycker placeras ovanpå det, med en cocktail i Smart Coaster glöder i vissa atmosfäriska och långsamt föränderliga färger. Om du placerar en kopp varmt t...

Rainbow Neo klockan

Denna klocka gjordes som en gåva men jag var så nöjd med den som jag trodde jag skulle göra en instructable för det. Klockan använder 2 Neo Pixel ringar från Adafruit industrier som Arduino Pro Mini mikrokontroller och en DS1307 Realtidsklocka (RTC)...

RGB LED Strip krets med Arduino

Detta Instructable omfattar montering av en krets kan PWM-ning (puls bredd modulerande) en 9-12v RGB LED strip och programmering en Arduino att cykla genom en rad olika färger. Jag kommer att diskutera hur man montera en transistor till en kylfläns &...

Enkla arduino neopixel test

Hej instructabledu vet kamp när du skriver en kod för din neopixel lysdioder och du är inte säker på om din neopixel ledde fungerar bra eller din kod är bud upp?Anyway vet jag problemet,så jag gjorde ett litet test koden att se din lysdioder lyser rö...

Fyrfärg LED cyber passar! (ytterligare instructables för NES Powerglove kontroll, Live Audio EQ, osv. att följa!)

** Kredit till LVL1 Hackerspace för att starta mig i riktning mot LED besatthet och med förbindelser till vissa personer som har varit fantastiska resurser under år www.lvl1.org **Jag kunde bara inte motstå att skapa en instructable för en "Göra det...

Floating Pyramid Lamp With 108 Spiritual Symbols

Hej Tack för att kolla min 2nd Instructable. Jag vet vad du måste tänka... "Det är en läcker lampa!" Ja faktiskt. Innan jag går in skriva om hur man gör denna lampa, vill jag nämna att denna lampa finns på grund av min klient Barbara Thompson oc...

IoT Command Center

Jag beslöt att göra en enhet som var proppfulla med sensorer och knappar som kan göra vad du vill. Den har temperatur, luftfuktighet, gas, ljus, ljud, rörelse och vibrationer sensorer. Det har också en talare och en LED stick för feedback. Jag 3D try...

Retro Tech nyanser

Mina vänner John, Jared och jag uppmanades att design, prototyp, och göra en bärbar teknik. Vi kom fram till en produkt, ett par interaktiva wayfarers solglasögon. De har ett foto-motstånd precis ovanför näsan för att upptäcka mängden ljus i området....

Personliga utrymme försvarare

ett enkelt och elegant sätt att hjälpa hålla din personliga utrymme bubbla från att invaderas av nära talare och alltför Pär människor. Detta är en stulen eller lånat idé från Phillip Torrone av Adafruit, som funderade om något sådant på ett avsnitt...

LED arbetsbelysning för din 3D-skrivare

i detta instructable jag ska beskriva processen för utformning och tillverkning av min Neo-pixel arbetar lampor.När jag fick min skrivare trodde jag skrivare sängen kunde använda lite extra ljus. Jag använder en Arduino Uno för att köra Neopixels, me...

Tesseract, + varp Plasma!

Ingen CGI, ingen mjukpapper och ingen Fooling runt!Ända sedan jag först såg The Avengers har jag velat göra denna kub. Tog mig över tre år för att räkna ut hur. Du kan visa Video på YouTube härEller HD * Test * bilder härMed lite hjälp från Omni-Diy...

Twitter färg Sniffer lampa

Har du någonsin undrat vilken färg människor är tweeting i deras tweets??Nej, rätt? Jag förväntade mig.Men ändå är det en ganska cool sak att göra. Så gå vidare och göra detta.Detta instructable berättar hur man bygger en lampa (bra, det bara monteri...