/
function_mp3.ino
87 lines (72 loc) · 1.9 KB
/
function_mp3.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
void setMP3Volume(int volume)
{
execute_CMD(0x06, 0, volume+9); // Set the volume (0x00~0x30)
//execute_CMD(0x10, 1, 31); // Set the volume (0x00~0x30)
}
void mp3Wake()
{
execute_CMD(0x09, 0, 2); // Set Playmode to SD
delay(500);
setMP3Volume(audioVolume);
}
void mp3Sleep()
{
execute_CMD(0x09, 0, 3); // Set MP3 player in sleep mode
execute_CMD(0x0A, 0, 0); // Set MP3 player in power loss
}
void playTrackInFolder(int track, int folder)
{
if ((!playMode && !playingRandom) || folder == 4) // if not Playmode = random or playinRandom is true
execute_CMD(0x0F, folder, track);
else
execute_CMD(0x0F, random(1, 4), random(1, 11));
}
void MP3stop()
{
execute_CMD(0x16, 0, 0);
mp3Sleep(); // Put MP3 is sleep mode since hook is down
}
void execute_CMD(byte CMD, byte Par1, byte Par2)
// Excecute the command and parameters
{
// Calculate the checksum (2 bytes)
word checksum = -(0xFF + 0x06 + CMD + 0x00 + Par1 + Par2);
// Build the command line
byte Command_line[10] = { 0x7E, 0xFF, 0x06, CMD, 0x00,
Par1, Par2, highByte(checksum), lowByte(checksum), 0xEF
};
//Send the command line to the module
for (byte k = 0; k < 10; k++)
{
mySerial.write( Command_line[k]);
}
delay(500);
}
void playFolder(int folder) {
playTrackInFolder(folder + 10, 4);
delay(2000);
}
void playAlarm() {
setMP3Volume(10);
playTrackInFolder(112, 4);
delay(14000);
setMP3Volume(audioVolume);
countedPulses = 112;
folderNumber = 4;
}
void playVolume() {
playTrackInFolder(audioVolume + 20, 4);
delay(2000);
}
void playWillekeurig(int pm) {
playTrackInFolder(pm + 3, 4);
delay(2000);
}
void playContinu(){
playTrackInFolder(5,4);
delay(2000);
}
void playReset(){
playTrackInFolder(6,4);
delay(2000);
}