Het LED Matrix deelvenster of LMP, voor de Arduino microcomputer, voortgezet. (1 / 3 stap)

Stap 1: De schets (LMP_Musicator01)


/*

  • VUmeter / Light organ (volledige db presentatie)
  • Horizontale presentatie - centrum-out lineaire weergave
  • (c) Copyright 2009 QS
  • Alle rechten voorbehouden

*

  • LED Matrix rij: 1-5; Col: 1-6
  • Kaart van PORTB == D8:D12 - pin [rij + 7]: + v
  • PORTD == D2:D7 - pin [8-col]; GND
  • Onze productie: col::D2:D7 - ve (laag), terwijl row::D8:D13 + ve

*/

char msg [] {} =
0x11, 0x0a, 0x0e, 0x0e, 0x0a, 0x11, / / starburst
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 een buffer overrun

bitpatroon, 1 byte per kolom. Top = lsb

char display [6], hdisp [6];

int w10kbuf [2], w1kbuf [20], w100buf [100]; Neem aan dat alle nulpunt (: P)
int w10kidx, w1kidx, w100idx;
int w10kmax, w5kmax, w1kmax, w500max, w100max;
lang w, w10ksum = 0, w1ksum = 0, w100sum = 0;
int www, w10k, w1k, w100, meter [5];

int schaal = 3; Meld u schaal (beginnen bij 23)
int herinneren = 0; AGC tarief
int inPin = 1; analogRead op A01

void setup / / run eenmaal in, wanneer de schets wordt gestart
{
voor (int ledPin = 2; ledPin < = 12; ledPin ++) {}
pinMode (ledPin, OUTPUT); Hiermee stelt u de digitale pen als uitvoer
digitalWrite (ledPin, (ledPin < = 7)); Alle cols uitschakelen
}
lmpWrite(msg,0,15); Cyclus vertraging is 1/10 sec
(het is echt voor het initialiseren van de items)
analogReference(INTERNAL); Gebruik geen standaard of externe!
int i = digitalRead(inPin); verwijderen oude gegevens
}

void loop / / run over en weer
{
W100 = (w100sum / 23) >> schaal; Een goedkoop filter @ app 100Hz
W1K abs ((w1ksum / 3)-w100 =) >> schaal; 1kHz
w10k = (www + w10ksum) >> schaal; 10kHz
w = (w100, w1k + w10k); Totaal vermogen (VU-functie)

Als (w < 13) {}
herinneren ++;
Als (herinneren > = 15) {//350mS telt voordat herijking van meter
herinneren = 0;
-= schalen (schaal > 3);
}} / / verhoging res alleen als minder dan 1/2 schaal

Als ((w100>33) || (w1k > 30) || (w10k>33)) {/ / log2
Als ((w100 w1k + w10k) > 83) {/ / piek: het minder gevoelig maken
herinneren = 0;
schaal ++;
W100 w100 = >> 1;
W1K w1k = >> 1;
w10k = w10k >> 1;
}
meter [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);
[4] meter = min((w10k*5) >> 3,31);

voor (int col = 0; col < 6; col ++) {}
int c = 0;
voor (int mm = 0; mm < = 4; mm ++) {}
c = c << 1;
c += (meter [mm] > col);
}
hdisp [col] = c;
}
weergeven [0] = hdisp [4];
weergeven [1] = hdisp [2];
weergeven [2] = hdisp [0];
weergeven [3] = hdisp [0];
weergeven [4] = hdisp [2];
weergeven [5] = hdisp [4];

lmpWrite(display,0,1);

weergeven [0] = hdisp [5];
weergeven [1] = hdisp [3];
weergeven [2] = hdisp [1];
weergeven [3] = hdisp [1];
weergeven [4] = hdisp [3];
weergeven [5] = hdisp [5];

/ * Verticale display routine
*
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 (weergeven, 5, w10k >> 1);
fillVBar (display, 5, schaal + 1);
int i = 0;
int s = weegschaal-1;
voor (int ii = 0; ii < 5; ii ++) {}
Ik = i | (s & 1);
Ik = i << 1;
s = s >> 1;
}
weergeven [5] = i;
*
*/

lmpWrite(display,0,1);
}

VOID fillVBar (char [disp], int o, int val) {}
int j = B100000; cijfer patroon
Val = constrain(val,2,127);
terwijl (val > 2) {}
j| = (j >> 1);
Val = val >> 1;
}
DISP [o] = j;
}

VOID lmpWrite (char disp [], int stchar, int stappen)
/ * Gebruik: ladingen bitpatroon in disp [], basisgewicht van stchar,

  • 1 byte per kolom links-naar-rechts, top-to-bottom
  • Kaart van PORTB == D8:D12 - pin [rij + 7]: + v
  • PORTD == D2:D7 - pin [8-col]; GND

*/
{
int col, rij, cval, verlicht = 0, ww = 0;
lange delayStart=millis() + 90*(constrain(steps,1,100));
Display / loop van de tijd
www = 0;
{}
voor (col = 0; col < 6; col ++) {}
CVal = disp [col + stchar];
voor (rij = 1; rij < = 5; rij ++) {//only 5 lage bits
Als (cval & 1) {/ / deze LED light
Als (verlicht == 0)
digitalWrite(7-col,LOW); Col moet activeren
digitalWrite(row+7,HIGH);
verlichte ++; in het geval dat we willen weten hoeveel LEDs verlicht
}
Fietsen stelen hier om te lezen input van de VU
WW=Max(WW,analogRead(inPin)); Gegevens van de rauwe volume (gerectificeerd)
www=Max(WW,www); Piek retect
delayMicroseconds(80); Dit zorgt ervoor dat het deelvenster is
verlicht de dezelfde periode van tijd.
digitalWrite(row+7,LOW); LED uitschakelen
CVal cval = >> 1; Controleer de volgende bit
}
digitalWrite(7-col,HIGH); col uitschakelen
w10ksum += www-w10kbuf [w10kidx]; Dit is onze 'condensator'
w10kbuf [w10kidx] = www;
w10kidx ++;
w10kidx = ((w10kidx<1)); 0 of 1
Als (w10kidx > 3) w10kidx = 0;
w10ksum = ww; De high-end respons verhogen

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

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

verlicht = 0;
}
}
terwijl (delayStart > millis());
}

Gerelateerde Artikelen

Het bouwen van een low-cost, scrollen LED-display voor de Arduino microprocessor regeling.

Het bouwen van een low-cost, scrollen LED-display voor de Arduino microprocessor regeling.

The Arduino Microcomputer system is een betaalbaar platform voor meer informatie over microprocessing en programmering. Nog Arduinos kan worden gebruikt voor instrumentatie, Robotica en vele geautomatiseerde processen.In deze serie gaan we door enkel
Arduino gebaseerde Bi-color LED Matrix Snake Game

Arduino gebaseerde Bi-color LED Matrix Snake Game

We laten zien hoe een Arduino gebaseerd Bi-color LED Matrix Tetris spel kan worden gebouwd in ons laatste instructable. We waren heel verrassing het werd gekenmerkt op de homepage van Instructables en vrij een handvol favorieten hebt opgeslaen gedure
Grote 8 x 8 LED Matrix Display

Grote 8 x 8 LED Matrix Display

Heb je gewerkt met kant en klare 8 x 8 LED matrix als beeldschermen? Ze komen in verschillende maten en zijn erg interessant om mee te werken. De grootte van een grote beschikbaar is rond 60 x 60 mm. Als u op zoek bent voor een veel grotere kant en k
Arduino gebaseerd Bi-color LED Matrix Game of Life

Arduino gebaseerd Bi-color LED Matrix Game of Life

Conway's Game of Life is geen conventionele spel. Het is de bekendste tweedimensionale cellulaire automaat gemaakt door de Britse wiskundige John Horton Conway in 1970.Het wordt gespeeld op een tweedimensionaal raster van cellen. Een cel kan worden d
Arduino (SPI) 7 Bi-color LED Matrix scrollen tekstweergave

Arduino (SPI) 7 Bi-color LED Matrix scrollen tekstweergave

Enige tijd terug, kwamen we met een instructable te bouwen een 7 Bi-color 8 x 8 LED-Matrix Scrolling tekst-Display. U kunt bezoeken voor meer detail.In die instructable, gebruikten we de uitstekende LedControl-bibliotheek die is speciaal geschreven v
Verbazingwekkend binaire kalender en met inbegrip van maanfase in een LED Matrix klok

Verbazingwekkend binaire kalender en met inbegrip van maanfase in een LED Matrix klok

Hallo, alle!!Dit is mijn project met meer functies dan mijn Binary Clock die je ook op mijn andere Instructables zien kunt.Belangrijkste concept is een heleboel functies, waaronder een volledige maandkalender met dag, maand, jaar, nummer van de week
32 x 32 LED Matrix

32 x 32 LED Matrix

Het bouwen van een 32 x 32 LED matrix met behulp van een Atmega2560 microcontroller.  Het project omvat de stappen voor het bouwen van de matrix bord, de PCB en de software (geschreven in C++).  De software bevat meer dan 30 animaties, een RTC (real-
Eenvoudige Arduino 5 x 2 LED Matrix

Eenvoudige Arduino 5 x 2 LED Matrix

dit is mijn eerste Arduino project dus geduld met mij.Dit een eenvoudige LED-Matrix die wordt gerund door een Arduino Uno 3.U moet de volgende onderdelen:-10 LEDs-Arduino Board-Breadbord-Jumper draden- En wat draad vaste kernStap 1: LED plaatsing De
Controle van een RGB-LED-Matrix met Android- en IOIO

Controle van een RGB-LED-Matrix met Android- en IOIO

De versie van het product van dit project beschikbaar op http://ledpixelart.com ***Een Android gecontroleerd interactieve spiegel. Running verschillende Android apps draaien, weergegeven de interactieve spiegel foto's, lopende tekst, eenvoudige games
Arduino gebaseerde Bi-color LED Matrix Flappy Bird Game

Arduino gebaseerde Bi-color LED Matrix Flappy Bird Game

We hebben een flink aantal projecten met behulp van de Bi-kleur (rood en groen) LED Matrix Driver Module kits van jolliFactory gebouwd en ze hebben gepubliceerd als instructables hier. Elk van deze modules twee MAX7219 Display Driver ICs gebruikt voo
Beginner tutorial: controle LED matrix met 2 595 shift registers en potmeter

Beginner tutorial: controle LED matrix met 2 595 shift registers en potmeter

Ik ben net begonnen met Arduino en de instructables van amandaghassaei sociaal assistente mij alot. In haar tweede tutorialabout in- en uitgangen vertelt ze hoe met shift registers en het instellen van een LED-matrix door multiplex. In de laatste sta
TFT Touch scherm Animation Engine en 8 x 8 RGB LED Matrix Controller

TFT Touch scherm Animation Engine en 8 x 8 RGB LED Matrix Controller

Deze ingesloten toepassing heeft hoopjes van creatieve potentieel voor elke aspirant Arduino fanatici! Een TFT Touch scherm Animation Engine en optionele 8 x 8 RGB LED Matrix Controller. Bekijk de introductie video voor meer details:Wat je nodig hebt
Morse codegenerator voor de 16 x 24 HT1632C LED Matrix-ik maakte het op TechShop

Morse codegenerator voor de 16 x 24 HT1632C LED Matrix-ik maakte het op TechShop

In dit instructable ik zal detail hoe met de HT1642C LED Matrix van Adafruit een Morse codegenerator die zowel een brief begint te flikkeren en speelt een zoemer die overeenkomt met de Morse-code gelijkwaardig te maken.Om het vak voor de matrix, neem
Het maken van een doos voor uw 16 x 24 HT1632C LED Matrix - ik maakte het op TechShop

Het maken van een doos voor uw 16 x 24 HT1632C LED Matrix - ik maakte het op TechShop

ongeveer een jaar geleden vond ik mezelf in het bezit van deze LED Matrix van Adafruit. Het is een cool speeltje om mee te spelen, als moeilijk, maar het is niet heel mooi gewoon zittend op een oppervlak met de printplaat en draden blootgesteld. Om d