Den LED-matris Panel, eller LMP, för Arduino mikrodator, fortsatte. (1 / 3 steg)

Steg 1: Skissen (LMP_Musicator01)



/*

  • VUmeter / ljus orgel (Full db presentation)
  • Horisontella presentation - center-out linjära displayen
  • (c) Copyright 2009 QS
  • Alla rättigheter reserverade

*

  • LEDDE matrisen rad: 1-5. Col: 1-6
  • Mappa PORTB == D8:D12 - pin [rad + 7]: + v
  • PORTD == D2:D7 - pin [8-col]; GND
  • Vår produktion: col::D2:D7 - ve (låg) medan row::D8:D13 + ve

*/

char msg [] = {
0x11, 0x0a, 0x0e, 0x0e, 0x0a, 0x11, / / stjärnexplosion
0x00, 0x00, 0x00, 0x00, 0x00, 0x0e,
0X11, 0X19, 0X1E, 0X00, 0X1F, 0X10, / / Q U
0X1F, 0X00, 0X1E, 0X05, 0X1E, 0X00, / / A
0X1F, 0X06, 0X0C, 0X1F, 0X00, 0X03, / / N T
0X1F, 0X03, 0X00, 0X12, 0X15, 0X09, / / S
0X00, 0X1F, 0X10, 0X1F, 0X00, 0X1F, / / U F
0X05, 0X05, 0X00, 0X1F, 0X05, 0X05, / / F
0,0,0,0,0,0}. Plus en överskridande buffert

lite mönster, 1 byte per kolumn. Toppen = lsb

char display [6], hdisp [6].

int w10kbuf [2], w1kbuf [20], w100buf [100]; Antar att alla nollställs (: P)
int w10kidx, w1kidx, w100idx;
int w10kmax, w5kmax, w1kmax, w500max, w100max;
långa w, w10ksum = 0, w1ksum = 0, w100sum = 0;
int www, w10k, w1k, w100, meter [5];

int skala = 3; Logga skala (börja på 23)
int recal = 0; AGC kurs
int inPin = 1; analogRead på A01

void setup() / / kör en gång, när skissen startar
{
för (int ledPin = 2; ledPin < = 12; ledPin ++) {
pinMode (ledPin, produktionen); Anger den digitala pin som utdata
digitalWrite (ledPin, (ledPin < = 7)); Inaktivera alla kolumner
}
lmpWrite(msg,0,15); Cykeln är 1/10 SEK
(det är verkligen för att initiera räknarna)
analogReference(INTERNAL); Använd inte standard eller extern!
int jag = digitalRead(inPin); ta bort gamla data
}

void loop() / / kör om och om igen
{
W100 = (w100sum / 23) >> skala; En billig filter @ app 100Hz
W1K = abs ((w1ksum / 3)-w100) >> skala; 1kHz
w10k = (www + w10ksum) >> skala; 10kHz
w = (w100 + w1k + w10k); Total effekt (VU funktion)

om (w < 13) {
RECAL ++;
om (recal > = 15) {//350mS räknar innan omkalibrering av mätare
RECAL = 0;
skala-= (skala > 3);
{}} / / öka res endast om mindre än 1/2 skala

om ((w100>33) || (w1k > 30) || (w10k>33)) {/ / log2
om ((w100 + w1k + w10k) > 83) {/ / toppnotering: göra det mindre känsliga
RECAL = 0;
skala ++;
W100 = w100 >> 1;
W1K = w1k >> 1;
w10k = w10k >> 1;
}
mätaren [0] = min (w100 >> 1,31);
meter [1] = min(abs(w100+w1k-w10k) >> 2,31);
meter [2] = min (w1k >> 2,31);
meter [3] = min(abs(w1k+w10k-w100) >> 2,31);
mätaren [4] = min((w10k*5) >> 3,31);

för (int col = 0; col < 6, col ++) {
int c = 0;
för (int mm = 0; mm < = 4; mm ++) {
c = c << 1;
c + = (mätare [mm] > col);
}
hdisp [col] = c;
}
Visa [0] = hdisp [4].
Visa [1] = hdisp [2].
Visa [2] = hdisp [0];
Visa [3] = hdisp [0];
Visa [4] = hdisp [2].
Visa [5] = hdisp [4].

lmpWrite(display,0,1);

Visa [0] = hdisp [5].
Visa [1] = hdisp [3].
Visa [2] = hdisp [1].
Visa [3] = hdisp [1].
Visa [4] = hdisp [3].
Visa [5] = hdisp [5].

/ * Vertikal display rutin
*
fillVBar(display,0,w100);
fillVBar(display,1,abs(w100+w1k-w10k));
fillVBar(display,2,w1k);
fillVBar(display,3,abs(w1k+w10k-w100));
fillVBar(display,4,w10k);
fillVBar (Visa, 5, w10k >> 1);
fillVBar (display, 5, skala + 1);
int jag = 0;
int s = skala-1;
för (int ii = 0; ii < 5; ii ++) {
jag = jag | (s & 1);
jag = jag << 1;
s = s >> 1;
}
Visa [5] = i.
*
*/

lmpWrite(display,0,1);
}

void fillVBar (char disp [], int o, int val) {
int j = B100000; siffriga mönster
Val = constrain(val,2,127);
medan (val > 2) {
j| = (j >> 1);
Val = val >> 1;
}
Disp [o] = j;
}

void lmpWrite (char disp [], int stchar, int steg)
/ * Användning: laddar lite mönster i disp [], börjar vid stchar,

  • 1 byte per kolumn, vänster till höger, uppifrån-och-ner
  • Mappa PORTB == D8:D12 - pin [rad + 7]: + v
  • PORTD == D2:D7 - pin [8-col]; GND

*/
{
int col, rader, cval, lit = 0, ww = 0;
lång delayStart=millis() + 90*(constrain(steps,1,100));
Display / slinga tid
www = 0;
göra {
för (col = 0; col < 6, col ++) {
cval = disp [col + stchar];
för (rad = 1; rad < = 5; rad ++) {//only 5 nedre bitarna
om (cval & 1) {/ / ljus denna LED
om (lit == 0)
digitalWrite(7-col,LOW); Col behöver aktivera
digitalWrite(row+7,HIGH);
upplysta ++; om vi behöver veta hur många LED lyser
}
Cykla stjäla här, för att läsa VU input
WW=Max(WW,analogRead(inPin)); Rå volymdata (rättas)
www=Max(WW,www); Peak retect
delayMicroseconds(80); Detta gör att panelen är
lit i samma tidsperiod.
digitalWrite(row+7,LOW); Inaktivera LED
cval = cval >> 1; Kolla nästa lite
}
digitalWrite(7-col,HIGH); Inaktivera col
w10ksum += www-w10kbuf [w10kidx]; Detta är vår "kondensatorn"
w10kbuf [w10kidx] = www;
w10kidx ++;
w10kidx = ((w10kidx<1)); 0 eller 1
om (w10kidx > 3) w10kidx = 0;
w10ksum = ww; Öka den high-end Svaren

w1ksum += ww-w1kbuf [w1kidx];
w1kbuf [w1kidx] = ww;
w1kidx ++;
om (w1kidx > 19) w1kidx = 0;
w1kidx = ((w1kidx<19) & & (w1kidx ++)); 0 - 19

w100sum += ww-w100buf [w100idx];
w100buf [w100idx] = ww;
w100idx ++;
om (w100idx > 99) w100idx = 0;
w100idx = ((w100idx<1) & & (w100idx ++)); 0 - 199

lit = 0;
}
}
medan (delayStart > millis());
}

Se Steg
Relaterade Ämnen

8 x 40 LED matris klocka med kalender med fjärrkontrollen

Idag ska jag visa hur man gör rullning och animerade LED matris klocka med kalender för arduino. Detta projekt har följande funktionerVad är nytt i Version 2.0Extra IR-fjärr baserade justera tid/datumSmidig animationMånga buggfixar i programvaraVersi...

Baserade Arduino Bi-color LED matris orm spel

Vi demonstrerade hur en Arduino baserat Bi-color LED Matrix Tetris spel kan byggas i vårt senaste instructable. Vi var ganska överraskning det var med till Instructables hemsida och har samlat en hel handfull favoriter under en kort tidsperiod. Du ka...

DIY bärbara LED belysning Panel

En bärbar LED belysning panel kan verkligen komma till hands för fotografi och video arbete, så idag ska vi göra en DIY version som ännu är super bra, lätt att göra. Så jag ständigt tar bilder och video från saker arbetar jag på, projekt, mat, av mig...

Spektrometern/LED-matris med Charlieplexed LED

I detta instructable vi konstruera en mängd leds som sedan kan kontrolleras med en Arduino, eller några andra AVR baserat mikrokontroller, eller Raspberry Pi eller vad du vill. Vi helt enkelt bygga verktyget här och du kan tillämpa det som du önskar....

LED-matris på en budget

En unik del av möbler utan att spendera en massa pengar?! Det är vad jag ville uppnå i detta projekt. Även jag är inte helt obekant med programmering och elektronik och som de flesta av oss gör, jag tror att lysdioder är bara awesome, vilket är varfö...

LED-matris jacka

att infoga en LED-matris i en militär jacka. Ser cool, och kommer sannolikt att få dig arresterad på flygplatser!Detta är ett ganska enkelt projekt.Delar som behövs:MAX6952 LED Array förarenMikrokontroller (jag använde en boarduino)280 lysdioder (jag...

Styra en RGB LED-matris med Android och IOIO

Produktversion av detta projekt finns på http://ledpixelart.com ***En Android kontrollerade interaktiva mirror. Kör olika Android apps, visar interaktiva spegeln bilder, löpande text, enkla spel och video som strömmas från en Android-enhet via Blueto...

LED Spider dekoration eller hund kostym

Som Halloween närmade sig, och vår lokala envis daycare tillkännagav deras Sällskapsdjur Allhelgonaaften Klädedräkt Strid var jag försökande till räkna ut vilken kostym göra för min hund Jeriko. Någon gång insåg jag att eftersom Jeriko är svart, och...

Gör din egen LED belysning paneler

I detta lilla projekt kommer jag visa dig hur man bygger riktigt awesome letar LED belysning paneler som är ett bra alternativ till vanliga belysningssystem. De viktigaste komponenterna är mycket vanliga och lätt att hitta. Låt oss komma igång!Steg 1...

Enkla seashell LED night light eller humör lampa (w/LED styrkrets)

så detta är en tvådelad instructable, först att vara styrkrets LED (oroa dig inte, det är mycket enkelt) den andra delen är den fysiska lampan. Detta är en extremt flexibel design, bara om någon LED kan användas och bara om någon, låg makt, makt käll...

LED-matris blixtsko till gängad anslutning

jag plockade nyligen upp en 60-LED -ljus från DealExtreme. Denna billiga ljus har energiinställningar, är extremt portabel och kan laddas via usb. Denna LED array kastar en massa ljus och är perfekt för fotografering eftersom botten av LED matrisen h...

Porchetta - den ultimata maträtt

Porchetta anses den ultimata maträtt av de flesta italienarna. Traditionellt tillverkad av hela urbenat hogs, är denna porchetta tillverkad av lätt tillgängliga nedskärningar. Använd bästa fläsk men för bästa smak. Jag föreslår starkt att köpa din fl...

Hur till använda den laserskärare och eller vattenstrålen göra en RADIUS-kolla mätare för organinc plåt arbete (metall formar, panelen slog, etc) jag gjorde det på TechShop

Hur man använder den laserskärare och eller vattenstrålen göra en RADIUS-kolla mätare för organiska plåt arbete (metall formar, panelen slog, etc)Jag gjorde det på Techshop.Detta kommer att vara en riktigt kort och enkelt, men om du gör någon plåt bi...

Hur man gör en RGB-LED hälsa indikator för Minecraft - Arduino!

Du vill göra cool ljus feedback för din perfekt spelupplevelse i minecraft? Inte leta längre!Vad du behöver:1 Arduino (alla typer som accepterar Vin Power)1 set av brödunderläggen / PrototypeboardNågra bygel-tråd3 transistorer (jag hade inte drivatra...

Arduino binär klocka med LED-matris

Denna webbplats har många fina inlägg som beskriver byggandet av armbandsur. Jag är oerhört skakig, emellertid, och har svårt med någon lödning. Jag ville därför göra mig från en 8 x 8 MAX7219-kontrollerade ledde matrisen.Steg 1: Läsa BCD binär klock...

DIY LED ljus Panel

Hej alla,Jag trodde jag skulle ta några minuter idag och visa dig denna ljusramp som jag gjort.Denna panel använder nu denna fina lilla fjärrkontroll. Det används för att justera intensiteten av ljuset – lysa upp saker, gör saker ser ganska bra och d...

LED-matris-skärm

detta är ett enkelt steg för steg göra egna personliga LED Dot-Matrix display. Jag kommer att lägga till det fullständiga programmet med en förklaring att tända lysdioder med. Det är också ganska hacka, du kan ändra den för att passa dig.Jag decieded...

Lightweight interaktiv LED DJ paneler

Hallå där! Brian Allen här, utbildning och tekniska Specialist Elemental LED ger dig min allra första Instrucatable. Jag har alltid varit något av en musik fanatiker (ok... ok, så det kan vara en liten underdrift), oavsett om det är att lyssna, skapa...

LED Flasher (bil eller motorcykel)

jag ersatte blinker glödlampor i min Kawasaki Concours motorcykel med lysdioder eftersom 1) de ljusare 2) de längre och 3) de kräver mindre ström än glödlampor. Eftersom de kräver mindre ström, standard flasher unit (den lilla rutan som gör din tur s...