Baserade Arduino visuell musik display (3 / 4 steg)
Steg 3: Kod:
Dags att programmera Arduino! Lyckligtvis, programmet är en enkel som ledningarna. Känn dig fri att fippla runt med koden!
Det finns två olika program, med lite olika kod, som uppnår olika utseende. Den första ser mindre spänstiga och flimrar/bleknar lysdioderna mer. Andra är bouncier och blekna inte lamporna så mycket. Du kan antingen hämta dem via den zip arkivera, eller kopia/tidigare från här.
Här är koden för den första versionen, AudioVisualDisplay:
/*
* AudioVisualDisplay, ett program av Jacob Field, skriven för arduino
* UNO. Programmet använder 6 lysdioder ansluten till stift 8, 9, 10, 11, 12,
* och 13 som en visuell volym visar för ljud. Ljudet ska visas
* matas in Arduino via den analoga pin A0. Jag rekommenderar att använda en
* andra audio domkraft så att du kan höra ljud som spelas. ;) Känn dig fri
* att använda denna kod, eller någon del av den, i din egen personliga projekt,
* eller distribuera det fritt som du tycker passar, bara ge kredit om kreditinstitut
* är due.
*/
byte ledValue;
int signalIn;
void setup() {
Ange alla LED stift som utgångar
pinMode (8, OUTPUT);
pinMode (9, OUTPUT);
pinMode (10, OUTPUT);
pinMode (11, OUTPUT);
pinMode (12, OUTPUT);
pinMode (13, OUTPUT);
}
void loop() {
signalIn = analogRead(A0); Läs det analoga värdet och lagra den
ledValue = karta (signalIn, 0, 100, 0, 6); Konvertera 10 bit värdet ner till bara 7 olika värden
Switch(ledValue) {
fall 0:
Om värdet är 0 ange alla lampor låg
digitalWrite 8, låg.
digitalWrite (9, låg).
digitalWrite (10, låg).
digitalWrite (11, låg).
digitalWrite 12, låg.
digitalWrite 13, låg.
bryta;
fall 1:
Om värdet är 1, ange den första lysdioden hög
digitalWrite 8, hög.
digitalWrite (9, låg).
digitalWrite (10, låg).
digitalWrite (11, låg).
digitalWrite 12, låg.
digitalWrite 13, låg.
bryta;
fall 2:
Om värdet är 2, ange de första 2 lysdioderna hög
digitalWrite 8, hög.
digitalWrite (9, hög).
digitalWrite (10, låg).
digitalWrite (11, låg).
digitalWrite 12, låg.
digitalWrite 13, låg.
bryta;
fall 3:
Om värdet är 3, ange de första 3 lysdioderna hög
digitalWrite 8, hög.
digitalWrite (9, hög).
digitalWrite 10, hög.
digitalWrite (11, låg).
digitalWrite 12, låg.
digitalWrite 13, låg.
bryta;
fall 4:
Om värdet är 4, ange de första 4 lysdioderna hög
digitalWrite 8, hög.
digitalWrite (9, hög).
digitalWrite 10, hög.
digitalWrite (11, hög).
digitalWrite 12, låg.
digitalWrite 13, låg.
bryta;
fall 5:
Om värdet är 5, ange de första 5 lysdioderna hög
digitalWrite 8, hög.
digitalWrite (9, hög).
digitalWrite 10, hög.
digitalWrite (11, hög).
digitalWrite 12, hög.
digitalWrite 13, låg.
bryta;
fall 6:
Om värdet är 6, ange alla höga lampor
digitalWrite 8, hög.
digitalWrite (9, hög).
digitalWrite 10, hög.
digitalWrite (11, hög).
digitalWrite 12, hög.
digitalWrite 13, hög.
bryta;
}
}
Här är koden för den andra versionen, AudioVisualDisplayRev2:
/*
* AudioVisualDisplay, revidering 2, ett program av Jacob Field, skriven för den
* arduino UNO. Denna version använder en annorlunda algoritm för att analysera den
* signal, att skapa ett annorlunda utseende detta program använder 6 lysdioder anslutna till stiften
* 8, 9, 10, 11, 12 och 13 som en visuell volym uppvisning för ljud. Den
-ljud visas matas in Arduino via den analoga pin A0.
* Jag rekommenderar att du använder en andra audio jack så att du kan höra ljud som
* spelat. ;) Känn dig fri att använda denna kod, eller någon del av den, i din egen
* personliga projekt, eller distribuera det fritt som du tycker passar, bara ge
* kredit som äras bör.
*/
byte ledValue;
int valueHigh;
int signalIn;
void setup() {
Ange alla LED stift som utgångar
pinMode (8, OUTPUT);
pinMode (9, OUTPUT);
pinMode (10, OUTPUT);
pinMode (11, OUTPUT);
pinMode (12, OUTPUT);
pinMode (13, OUTPUT);
}
void loop() {
signalIn = analogRead(A0); Läs det analoga värdet och lagra den
valueHigh = valueHigh - 5. Subtrahera 5 från valueHigh så att den går över tid
om (signalIn > = valueHigh) {//If värdet kommer från audio domkraft är högre än det tidigare värdet av valueHigh:
valueHigh = signalIn; Ange värde kommer från audio jack för valueHigh
}
ledValue = karta (valueHigh, 0, 100, 0, 6); Konvertera 10 bit värdet ner till bara 7 olika värden
Switch(ledValue) {
fall 0:
Om värdet är 0 ange alla lampor låg
digitalWrite 8, låg.
digitalWrite (9, låg).
digitalWrite (10, låg).
digitalWrite (11, låg).
digitalWrite 12, låg.
digitalWrite 13, låg.
bryta;
fall 1:
Om värdet är 1, ange den första lysdioden hög
digitalWrite 8, hög.
digitalWrite (9, låg).
digitalWrite (10, låg).
digitalWrite (11, låg).
digitalWrite 12, låg.
digitalWrite 13, låg.
bryta;
fall 2:
Om värdet är 2, ange de första 2 lysdioderna hög
digitalWrite 8, hög.
digitalWrite (9, hög).
digitalWrite (10, låg).
digitalWrite (11, låg).
digitalWrite 12, låg.
digitalWrite 13, låg.
bryta;
fall 3:
Om värdet är 3, ange de första 3 lysdioderna hög
digitalWrite 8, hög.
digitalWrite (9, hög).
digitalWrite 10, hög.
digitalWrite (11, låg).
digitalWrite 12, låg.
digitalWrite 13, låg.
bryta;
fall 4:
Om värdet är 4, ange de första 4 lysdioderna hög
digitalWrite 8, hög.
digitalWrite (9, hög).
digitalWrite 10, hög.
digitalWrite (11, hög).
digitalWrite 12, låg.
digitalWrite 13, låg.
bryta;
fall 5:
Om värdet är 5, ange de första 5 lysdioderna hög
digitalWrite 8, hög.
digitalWrite (9, hög).
digitalWrite 10, hög.
digitalWrite (11, hög).
digitalWrite 12, hög.
digitalWrite 13, låg.
bryta;
fall 6:
Om värdet är 6, ange alla höga lampor
digitalWrite 8, hög.
digitalWrite (9, hög).
digitalWrite 10, hög.
digitalWrite (11, hög).
digitalWrite 12, hög.
digitalWrite 13, hög.
bryta;
}
}