Arduino MP3 sköld (4 / 5 steg)
Steg 4: Kontrollera ljud med aduino
Inte behöver till biblioteket till program, men om du vill det finns ett bibliotek för denna sköld du kan ladda ner det från här
//..............................................................................
Björn Rawashdeh
MP3 1.2V sköld test.
#include < SoftwareSerial.h >
SoftwareSerial Geno(7,8); RX, Tx
unsigned char Data [10].
unsigned char i.
void setup() {
sätta din installation kod här, om du vill köra en gång:
Geno.BEGIN(9600);
SetVolume(20); ställa in volymen från 0-31
Delay(1000);
FileSource('SD_card',0x05);
SetPlayMode('Single_play');
Delay(5000);
play_pause(); / / pausa
Delay(3000);
FileSource('SD_card',0x01);
play_pause(); spela
Delay(5000);
Next();
Delay(5000);
Next();
för (int v = 15; v > 0; v--) {
SetVolume(v); ställa in volymen från 0-31
Delay(1000);
}
för (int j = 0; j < 15; j ++) {
SetVolume(j); ställa in volymen från 0-31
Delay(500);
}
Delay(1000);
FileSource('SD_card',0x04);
Delay(5000);
FileSource('SD_card',0x05);
FileSource('SD_card',0x03);
Stop();
}
void loop() {
sätta din huvudsakliga kod här, för att köra flera gånger:
}
Välj filen sorce "SD-kort, SPI Flash, U Disk"
void FileSource (char typ, byte spår) {
play_pause(); / / pausa
Data [0] = 0x7E;
Data [5] = 0x7E;
Växla (typ) {
fallet "SD_card":
START
Data [1] = 0x04; Längd
Data [2] = 0xA0; Kommandot
Data [3] = 0x00; Fil nummer övre byte
Data [4] = spår; Fil nummer låg byte
bryta;
fallet "SPI_Flash":
Data [1] = 0x04; Längd
Data [2] = 0xA1; Kommandot spi flash 0XA1
Data [3] = 0x00; Fil nummer övre byte
Data [4] = spår;
bryta;
fallet "U_Disk":
Data [1] = 0x04; Längd
Data [2] = 0xA2; Kommandot
Data [3] = 0x00; Fil nummer övre byte
Data [4] = spår; Fil nummer låg byte
bryta;
}
Command(data,5);
play_pause(); / / pausa
}
void SetVolume (int vol) {
Data [0] = 0x7E; START
Data [1] = 0x03; Längd inte 0x02
Data [2] = 0xA7; Kommandot
Data [3] = vol; ny volym
Data [4] = 0x7E; SLUTET
Command(data,5);
}
void SetPlayMode(char type) {
Data [0] = 0x7E; START
Data [4] = 0x7E; START
Växla (typ) {
fallet "Single_play":
Data [1] = 0x02; Längd
Data [2] = 0xA9; Kommandot
Data [3] = 0x00; Läget parametern
bryta;
fallet "Repeat_single":
Data [1] = 0x02; Längd
Data [2] = 0xA9; Kommandot
Data [3] = 0x01; Läget parametern
bryta;
fallet "Repeat_all":
Data [1] = 0x02; Längd
Data [2] = 0xA9; Kommandot
Data [3] = 0x02; Läget parametern
bryta;
fallet "Play_Random":
Data [1] = 0x02; Längd
Data [2] = 0xA9; Kommandot
Data [3] = 0x03; Läget parametern
bryta;
}
Command(data,5);
}
//...............................
void play_pause() {
Data [0] = 0x7E; START
Data [1] = 0x02; Längd
Data [2] = 0xA3; Kommandot
Data [3] = 0x7E; Läget parametern
Command(data,4);
}
void Stop() {
Data [0] = 0x7E; START
Data [1] = 0x02; Längd
Data [2] = 0xA4; Kommandot
Data [3] = 0x7E; Läget parametern
Command(data,4);
}
void Next() {
Data [0] = 0x7E; START
Data [1] = 0x02; Längd
Data [2] = 0xA5; Kommandot
Data [3] = 0x7E; Läget parametern
Command(data,4);
}
void Previous() {
Data [0] = 0x7E; START
Data [1] = 0x02; Längd
Data [2] = 0xA6; Kommandot
Data [3] = 0x7E; Läget parametern
Command(data,4);
}
Annullera kommando (unsigned char * Data, int längd) {
för (int jag = 0; jag < längd; i ++) {
Geno.write(data[i]);
}
}
Videon nedan visar dig hur det fungerade.