Grove MP3 v2 Library

Committer:
fmanzano_dtk
Date:
Sun May 13 18:08:26 2018 +0000
Revision:
0:52ad25e0a9d0
Initial version;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fmanzano_dtk 0:52ad25e0a9d0 1 /*
fmanzano_dtk 0:52ad25e0a9d0 2 * MP3Player_KT403A.cpp
fmanzano_dtk 0:52ad25e0a9d0 3 * A library for Grove-Serial MP3 Player V2.0
fmanzano_dtk 0:52ad25e0a9d0 4 *
fmanzano_dtk 0:52ad25e0a9d0 5 * Copyright (c) 2015 seeed technology inc.
fmanzano_dtk 0:52ad25e0a9d0 6 * Website : www.seeed.cc
fmanzano_dtk 0:52ad25e0a9d0 7 * Author : Wuruibin
fmanzano_dtk 0:52ad25e0a9d0 8 * Created Time: Dec 2015
fmanzano_dtk 0:52ad25e0a9d0 9 * Modified Time:
fmanzano_dtk 0:52ad25e0a9d0 10 *
fmanzano_dtk 0:52ad25e0a9d0 11 * The MIT License (MIT)
fmanzano_dtk 0:52ad25e0a9d0 12 *
fmanzano_dtk 0:52ad25e0a9d0 13 * Permission is hereby granted, free of charge, to any person obtaining a copy
fmanzano_dtk 0:52ad25e0a9d0 14 * of this software and associated documentation files (the "Software"), to deal
fmanzano_dtk 0:52ad25e0a9d0 15 * in the Software without restriction, including without limitation the rights
fmanzano_dtk 0:52ad25e0a9d0 16 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
fmanzano_dtk 0:52ad25e0a9d0 17 * copies of the Software, and to permit persons to whom the Software is
fmanzano_dtk 0:52ad25e0a9d0 18 * furnished to do so, subject to the following conditions:
fmanzano_dtk 0:52ad25e0a9d0 19 *
fmanzano_dtk 0:52ad25e0a9d0 20 * The above copyright notice and this permission notice shall be included in
fmanzano_dtk 0:52ad25e0a9d0 21 * all copies or substantial portions of the Software.
fmanzano_dtk 0:52ad25e0a9d0 22 *
fmanzano_dtk 0:52ad25e0a9d0 23 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
fmanzano_dtk 0:52ad25e0a9d0 24 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
fmanzano_dtk 0:52ad25e0a9d0 25 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
fmanzano_dtk 0:52ad25e0a9d0 26 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
fmanzano_dtk 0:52ad25e0a9d0 27 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
fmanzano_dtk 0:52ad25e0a9d0 28 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
fmanzano_dtk 0:52ad25e0a9d0 29 * THE SOFTWARE.
fmanzano_dtk 0:52ad25e0a9d0 30 */
fmanzano_dtk 0:52ad25e0a9d0 31
fmanzano_dtk 0:52ad25e0a9d0 32 #include <Arduino.h>
fmanzano_dtk 0:52ad25e0a9d0 33 #include "MP3Player_KT403A.h"
fmanzano_dtk 0:52ad25e0a9d0 34
fmanzano_dtk 0:52ad25e0a9d0 35
fmanzano_dtk 0:52ad25e0a9d0 36 // Note: You must define a SoftwareSerial class object that the name must be mp3,
fmanzano_dtk 0:52ad25e0a9d0 37 // but you can change the pin number according to the actual situation.
fmanzano_dtk 0:52ad25e0a9d0 38 //SoftwareSerial mp3(2, 3); // define in the demo file
fmanzano_dtk 0:52ad25e0a9d0 39
fmanzano_dtk 0:52ad25e0a9d0 40
fmanzano_dtk 0:52ad25e0a9d0 41 /****************************************************************
fmanzano_dtk 0:52ad25e0a9d0 42 * Function Name: SelectPlayerDevice
fmanzano_dtk 0:52ad25e0a9d0 43 * Description: Select the player device, U DISK or SD card.
fmanzano_dtk 0:52ad25e0a9d0 44 * Parameters: 0x01:U DISK; 0x02:SD card
fmanzano_dtk 0:52ad25e0a9d0 45 * Return: none
fmanzano_dtk 0:52ad25e0a9d0 46 ****************************************************************/
fmanzano_dtk 0:52ad25e0a9d0 47 void SelectPlayerDevice(uint8_t device)
fmanzano_dtk 0:52ad25e0a9d0 48 {
fmanzano_dtk 0:52ad25e0a9d0 49 mp3.write(0x7E);
fmanzano_dtk 0:52ad25e0a9d0 50 mp3.write(0xFF);
fmanzano_dtk 0:52ad25e0a9d0 51 mp3.write(0x06);
fmanzano_dtk 0:52ad25e0a9d0 52 mp3.write(0x09);
fmanzano_dtk 0:52ad25e0a9d0 53 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 54 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 55 mp3.write(device);
fmanzano_dtk 0:52ad25e0a9d0 56 mp3.write(0xEF);
fmanzano_dtk 0:52ad25e0a9d0 57 delay(200);
fmanzano_dtk 0:52ad25e0a9d0 58 }
fmanzano_dtk 0:52ad25e0a9d0 59
fmanzano_dtk 0:52ad25e0a9d0 60 /****************************************************************
fmanzano_dtk 0:52ad25e0a9d0 61 * Function Name: SpecifyMusicPlay
fmanzano_dtk 0:52ad25e0a9d0 62 * Description: Specify the music index to play, the index is decided by the input sequence of the music.
fmanzano_dtk 0:52ad25e0a9d0 63 * Parameters: index: the music index: 0-65535.
fmanzano_dtk 0:52ad25e0a9d0 64 * Return: none
fmanzano_dtk 0:52ad25e0a9d0 65 ****************************************************************/
fmanzano_dtk 0:52ad25e0a9d0 66 void SpecifyMusicPlay(uint16_t index)
fmanzano_dtk 0:52ad25e0a9d0 67 {
fmanzano_dtk 0:52ad25e0a9d0 68 uint8_t hbyte, lbyte;
fmanzano_dtk 0:52ad25e0a9d0 69 hbyte = index / 256;
fmanzano_dtk 0:52ad25e0a9d0 70 lbyte = index % 256;
fmanzano_dtk 0:52ad25e0a9d0 71 mp3.write(0x7E);
fmanzano_dtk 0:52ad25e0a9d0 72 mp3.write(0xFF);
fmanzano_dtk 0:52ad25e0a9d0 73 mp3.write(0x06);
fmanzano_dtk 0:52ad25e0a9d0 74 mp3.write(0x03);
fmanzano_dtk 0:52ad25e0a9d0 75 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 76 mp3.write(uint8_t(hbyte));
fmanzano_dtk 0:52ad25e0a9d0 77 mp3.write(uint8_t(lbyte));
fmanzano_dtk 0:52ad25e0a9d0 78 mp3.write(0xEF);
fmanzano_dtk 0:52ad25e0a9d0 79 delay(10);
fmanzano_dtk 0:52ad25e0a9d0 80 // return true;
fmanzano_dtk 0:52ad25e0a9d0 81 }
fmanzano_dtk 0:52ad25e0a9d0 82
fmanzano_dtk 0:52ad25e0a9d0 83 /*************************************************************
fmanzano_dtk 0:52ad25e0a9d0 84 * Function Name: PlayMP3folder
fmanzano_dtk 0:52ad25e0a9d0 85 * Description: Plays the music specified in the MP3 folder.
fmanzano_dtk 0:52ad25e0a9d0 86 * First create a folder named MP3. Then rename the music file to 0001.mp3,0002.mp3, and so on. Save these music files in the MP3 folder.
fmanzano_dtk 0:52ad25e0a9d0 87 * The name must be Decimal.
fmanzano_dtk 0:52ad25e0a9d0 88 * Parameters: index, the name of MP3 flie.
fmanzano_dtk 0:52ad25e0a9d0 89 * Return: none
fmanzano_dtk 0:52ad25e0a9d0 90 **************************************************************/
fmanzano_dtk 0:52ad25e0a9d0 91 void PlayMP3folder(uint16_t index)
fmanzano_dtk 0:52ad25e0a9d0 92 {
fmanzano_dtk 0:52ad25e0a9d0 93 uint8_t hbyte, lbyte;
fmanzano_dtk 0:52ad25e0a9d0 94 hbyte = index / 256;
fmanzano_dtk 0:52ad25e0a9d0 95 lbyte = index % 256;
fmanzano_dtk 0:52ad25e0a9d0 96 mp3.write(0x7E);
fmanzano_dtk 0:52ad25e0a9d0 97 mp3.write(0xFF);
fmanzano_dtk 0:52ad25e0a9d0 98 mp3.write(0x06);
fmanzano_dtk 0:52ad25e0a9d0 99 mp3.write(0x12);
fmanzano_dtk 0:52ad25e0a9d0 100 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 101 mp3.write(uint8_t(hbyte));
fmanzano_dtk 0:52ad25e0a9d0 102 mp3.write(uint8_t(lbyte));
fmanzano_dtk 0:52ad25e0a9d0 103 mp3.write(0xEF);
fmanzano_dtk 0:52ad25e0a9d0 104 delay(10);
fmanzano_dtk 0:52ad25e0a9d0 105 // return true;
fmanzano_dtk 0:52ad25e0a9d0 106 }
fmanzano_dtk 0:52ad25e0a9d0 107
fmanzano_dtk 0:52ad25e0a9d0 108 /****************************************************************
fmanzano_dtk 0:52ad25e0a9d0 109 * Function Name: SpecifyfolderPlay
fmanzano_dtk 0:52ad25e0a9d0 110 * Description: Specify the music index in the folder to play, the index is decided by the input sequence of the music.
fmanzano_dtk 0:52ad25e0a9d0 111 * Parameters: folder: folder name, must be number; index: the music index.
fmanzano_dtk 0:52ad25e0a9d0 112 * Return: none
fmanzano_dtk 0:52ad25e0a9d0 113 ****************************************************************/
fmanzano_dtk 0:52ad25e0a9d0 114 void SpecifyfolderPlay(uint8_t folder, uint8_t index)
fmanzano_dtk 0:52ad25e0a9d0 115 {
fmanzano_dtk 0:52ad25e0a9d0 116 mp3.write(0x7E);
fmanzano_dtk 0:52ad25e0a9d0 117 mp3.write(0xFF);
fmanzano_dtk 0:52ad25e0a9d0 118 mp3.write(0x06);
fmanzano_dtk 0:52ad25e0a9d0 119 mp3.write(0x0F);
fmanzano_dtk 0:52ad25e0a9d0 120 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 121 mp3.write(uint8_t(folder));
fmanzano_dtk 0:52ad25e0a9d0 122 mp3.write(uint8_t(index));
fmanzano_dtk 0:52ad25e0a9d0 123 mp3.write(0xEF);
fmanzano_dtk 0:52ad25e0a9d0 124 delay(10);
fmanzano_dtk 0:52ad25e0a9d0 125 // return true;
fmanzano_dtk 0:52ad25e0a9d0 126 }
fmanzano_dtk 0:52ad25e0a9d0 127
fmanzano_dtk 0:52ad25e0a9d0 128 /****************************************************************
fmanzano_dtk 0:52ad25e0a9d0 129 * Function Name: PlayPause
fmanzano_dtk 0:52ad25e0a9d0 130 * Description: Pause the MP3 player.
fmanzano_dtk 0:52ad25e0a9d0 131 * Parameters: none
fmanzano_dtk 0:52ad25e0a9d0 132 * Return: none
fmanzano_dtk 0:52ad25e0a9d0 133 ****************************************************************/
fmanzano_dtk 0:52ad25e0a9d0 134 void PlayPause(void)
fmanzano_dtk 0:52ad25e0a9d0 135 {
fmanzano_dtk 0:52ad25e0a9d0 136 mp3.write(0x7E);
fmanzano_dtk 0:52ad25e0a9d0 137 mp3.write(0xFF);
fmanzano_dtk 0:52ad25e0a9d0 138 mp3.write(0x06);
fmanzano_dtk 0:52ad25e0a9d0 139 mp3.write(0x0E);
fmanzano_dtk 0:52ad25e0a9d0 140 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 141 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 142 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 143 // mp3.write(0xFE);
fmanzano_dtk 0:52ad25e0a9d0 144 // mp3.write(0xED);
fmanzano_dtk 0:52ad25e0a9d0 145 mp3.write(0xEF);
fmanzano_dtk 0:52ad25e0a9d0 146 delay(20);
fmanzano_dtk 0:52ad25e0a9d0 147 // return true;
fmanzano_dtk 0:52ad25e0a9d0 148 }
fmanzano_dtk 0:52ad25e0a9d0 149
fmanzano_dtk 0:52ad25e0a9d0 150 /****************************************************************
fmanzano_dtk 0:52ad25e0a9d0 151 * Function Name: PlayResume
fmanzano_dtk 0:52ad25e0a9d0 152 * Description: Resume the MP3 player.
fmanzano_dtk 0:52ad25e0a9d0 153 * Parameters: none
fmanzano_dtk 0:52ad25e0a9d0 154 * Return: none
fmanzano_dtk 0:52ad25e0a9d0 155 ****************************************************************/
fmanzano_dtk 0:52ad25e0a9d0 156 void PlayResume(void)
fmanzano_dtk 0:52ad25e0a9d0 157 {
fmanzano_dtk 0:52ad25e0a9d0 158 mp3.write(0x7E);
fmanzano_dtk 0:52ad25e0a9d0 159 mp3.write(0xFF);
fmanzano_dtk 0:52ad25e0a9d0 160 mp3.write(0x06);
fmanzano_dtk 0:52ad25e0a9d0 161 mp3.write(0x0D);
fmanzano_dtk 0:52ad25e0a9d0 162 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 163 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 164 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 165 // mp3.write(0xFE);
fmanzano_dtk 0:52ad25e0a9d0 166 // mp3.write(0xEE);
fmanzano_dtk 0:52ad25e0a9d0 167 mp3.write(0xEF);
fmanzano_dtk 0:52ad25e0a9d0 168 delay(20);
fmanzano_dtk 0:52ad25e0a9d0 169 // return true;
fmanzano_dtk 0:52ad25e0a9d0 170 }
fmanzano_dtk 0:52ad25e0a9d0 171
fmanzano_dtk 0:52ad25e0a9d0 172 /****************************************************************
fmanzano_dtk 0:52ad25e0a9d0 173 * Function Name: PlayNext
fmanzano_dtk 0:52ad25e0a9d0 174 * Description: Play the next song.
fmanzano_dtk 0:52ad25e0a9d0 175 * Parameters: none
fmanzano_dtk 0:52ad25e0a9d0 176 * Return: none
fmanzano_dtk 0:52ad25e0a9d0 177 ****************************************************************/
fmanzano_dtk 0:52ad25e0a9d0 178 void PlayNext(void)
fmanzano_dtk 0:52ad25e0a9d0 179 {
fmanzano_dtk 0:52ad25e0a9d0 180 mp3.write(0x7E);
fmanzano_dtk 0:52ad25e0a9d0 181 mp3.write(0xFF);
fmanzano_dtk 0:52ad25e0a9d0 182 mp3.write(0x06);
fmanzano_dtk 0:52ad25e0a9d0 183 mp3.write(0x01);
fmanzano_dtk 0:52ad25e0a9d0 184 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 185 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 186 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 187 mp3.write(0xEF);
fmanzano_dtk 0:52ad25e0a9d0 188 delay(10);
fmanzano_dtk 0:52ad25e0a9d0 189 // return true;
fmanzano_dtk 0:52ad25e0a9d0 190 }
fmanzano_dtk 0:52ad25e0a9d0 191
fmanzano_dtk 0:52ad25e0a9d0 192 /****************************************************************
fmanzano_dtk 0:52ad25e0a9d0 193 * Function Name: PlayPrevious
fmanzano_dtk 0:52ad25e0a9d0 194 * Description: Play the previous song.
fmanzano_dtk 0:52ad25e0a9d0 195 * Parameters: none
fmanzano_dtk 0:52ad25e0a9d0 196 * Return: none
fmanzano_dtk 0:52ad25e0a9d0 197 ****************************************************************/
fmanzano_dtk 0:52ad25e0a9d0 198 void PlayPrevious(void)
fmanzano_dtk 0:52ad25e0a9d0 199 {
fmanzano_dtk 0:52ad25e0a9d0 200 mp3.write(0x7E);
fmanzano_dtk 0:52ad25e0a9d0 201 mp3.write(0xFF);
fmanzano_dtk 0:52ad25e0a9d0 202 mp3.write(0x06);
fmanzano_dtk 0:52ad25e0a9d0 203 mp3.write(0x02);
fmanzano_dtk 0:52ad25e0a9d0 204 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 205 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 206 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 207 mp3.write(0xEF);
fmanzano_dtk 0:52ad25e0a9d0 208 delay(10);
fmanzano_dtk 0:52ad25e0a9d0 209 // return true;
fmanzano_dtk 0:52ad25e0a9d0 210 }
fmanzano_dtk 0:52ad25e0a9d0 211
fmanzano_dtk 0:52ad25e0a9d0 212 /****************************************************************
fmanzano_dtk 0:52ad25e0a9d0 213 * Function Name: PlayLoop
fmanzano_dtk 0:52ad25e0a9d0 214 * Description: Play loop for all the songs.
fmanzano_dtk 0:52ad25e0a9d0 215 * Parameters: none
fmanzano_dtk 0:52ad25e0a9d0 216 * Return: none
fmanzano_dtk 0:52ad25e0a9d0 217 ****************************************************************/
fmanzano_dtk 0:52ad25e0a9d0 218 void PlayLoop(void)
fmanzano_dtk 0:52ad25e0a9d0 219 {
fmanzano_dtk 0:52ad25e0a9d0 220 mp3.write(0x7E);
fmanzano_dtk 0:52ad25e0a9d0 221 mp3.write(0xFF);
fmanzano_dtk 0:52ad25e0a9d0 222 mp3.write(0x06);
fmanzano_dtk 0:52ad25e0a9d0 223 mp3.write(0x11);
fmanzano_dtk 0:52ad25e0a9d0 224 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 225 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 226 mp3.write(0x01);
fmanzano_dtk 0:52ad25e0a9d0 227 mp3.write(0xEF);
fmanzano_dtk 0:52ad25e0a9d0 228 delay(10);
fmanzano_dtk 0:52ad25e0a9d0 229 // return true;
fmanzano_dtk 0:52ad25e0a9d0 230 }
fmanzano_dtk 0:52ad25e0a9d0 231
fmanzano_dtk 0:52ad25e0a9d0 232 /****************************************************************
fmanzano_dtk 0:52ad25e0a9d0 233 * Function Name: SetVolume
fmanzano_dtk 0:52ad25e0a9d0 234 * Description: Set the volume, the range is 0x00 to 0x1E.
fmanzano_dtk 0:52ad25e0a9d0 235 * Parameters: volume: the range is 0x00 to 0x1E.
fmanzano_dtk 0:52ad25e0a9d0 236 * Return: none
fmanzano_dtk 0:52ad25e0a9d0 237 ****************************************************************/
fmanzano_dtk 0:52ad25e0a9d0 238 void SetVolume(uint8_t volume)
fmanzano_dtk 0:52ad25e0a9d0 239 {
fmanzano_dtk 0:52ad25e0a9d0 240 mp3.write(0x7E);
fmanzano_dtk 0:52ad25e0a9d0 241 mp3.write(0xFF);
fmanzano_dtk 0:52ad25e0a9d0 242 mp3.write(0x06);
fmanzano_dtk 0:52ad25e0a9d0 243 mp3.write(0x06);
fmanzano_dtk 0:52ad25e0a9d0 244 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 245 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 246 mp3.write(volume);
fmanzano_dtk 0:52ad25e0a9d0 247 mp3.write(0xEF);
fmanzano_dtk 0:52ad25e0a9d0 248 delay(10);
fmanzano_dtk 0:52ad25e0a9d0 249 // return true;
fmanzano_dtk 0:52ad25e0a9d0 250 }
fmanzano_dtk 0:52ad25e0a9d0 251
fmanzano_dtk 0:52ad25e0a9d0 252 /****************************************************************
fmanzano_dtk 0:52ad25e0a9d0 253 * Function Name: IncreaseVolume
fmanzano_dtk 0:52ad25e0a9d0 254 * Description: Increase the volume.
fmanzano_dtk 0:52ad25e0a9d0 255 * Parameters: none
fmanzano_dtk 0:52ad25e0a9d0 256 * Return: none
fmanzano_dtk 0:52ad25e0a9d0 257 ****************************************************************/
fmanzano_dtk 0:52ad25e0a9d0 258 void IncreaseVolume(void)
fmanzano_dtk 0:52ad25e0a9d0 259 {
fmanzano_dtk 0:52ad25e0a9d0 260 mp3.write(0x7E);
fmanzano_dtk 0:52ad25e0a9d0 261 mp3.write(0xFF);
fmanzano_dtk 0:52ad25e0a9d0 262 mp3.write(0x06);
fmanzano_dtk 0:52ad25e0a9d0 263 mp3.write(0x04);
fmanzano_dtk 0:52ad25e0a9d0 264 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 265 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 266 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 267 mp3.write(0xEF);
fmanzano_dtk 0:52ad25e0a9d0 268 delay(10);
fmanzano_dtk 0:52ad25e0a9d0 269 // return true;
fmanzano_dtk 0:52ad25e0a9d0 270 }
fmanzano_dtk 0:52ad25e0a9d0 271
fmanzano_dtk 0:52ad25e0a9d0 272 /****************************************************************
fmanzano_dtk 0:52ad25e0a9d0 273 * Function Name: DecreaseVolume
fmanzano_dtk 0:52ad25e0a9d0 274 * Description: Decrease the volume.
fmanzano_dtk 0:52ad25e0a9d0 275 * Parameters: none
fmanzano_dtk 0:52ad25e0a9d0 276 * Return: none
fmanzano_dtk 0:52ad25e0a9d0 277 ****************************************************************/
fmanzano_dtk 0:52ad25e0a9d0 278 void DecreaseVolume(void)
fmanzano_dtk 0:52ad25e0a9d0 279 {
fmanzano_dtk 0:52ad25e0a9d0 280 mp3.write(0x7E);
fmanzano_dtk 0:52ad25e0a9d0 281 mp3.write(0xFF);
fmanzano_dtk 0:52ad25e0a9d0 282 mp3.write(0x06);
fmanzano_dtk 0:52ad25e0a9d0 283 mp3.write(0x05);
fmanzano_dtk 0:52ad25e0a9d0 284 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 285 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 286 mp3.write(uint8_t(0x00));
fmanzano_dtk 0:52ad25e0a9d0 287 mp3.write(0xEF);
fmanzano_dtk 0:52ad25e0a9d0 288 delay(10);
fmanzano_dtk 0:52ad25e0a9d0 289 // return true;
fmanzano_dtk 0:52ad25e0a9d0 290 }
fmanzano_dtk 0:52ad25e0a9d0 291
fmanzano_dtk 0:52ad25e0a9d0 292 /****************************************************************
fmanzano_dtk 0:52ad25e0a9d0 293 * Function Name: printReturnedData
fmanzano_dtk 0:52ad25e0a9d0 294 * Description: Print the returned data that sent from the Grove_Serial_MP3_Player.
fmanzano_dtk 0:52ad25e0a9d0 295 * Parameters: none
fmanzano_dtk 0:52ad25e0a9d0 296 * Return: none
fmanzano_dtk 0:52ad25e0a9d0 297 ****************************************************************/
fmanzano_dtk 0:52ad25e0a9d0 298 void printReturnedData(void)
fmanzano_dtk 0:52ad25e0a9d0 299 {
fmanzano_dtk 0:52ad25e0a9d0 300 unsigned char c;
fmanzano_dtk 0:52ad25e0a9d0 301 //check if there's any data sent from the Grove_Serial_MP3_Player
fmanzano_dtk 0:52ad25e0a9d0 302 while(mp3.available())
fmanzano_dtk 0:52ad25e0a9d0 303 {
fmanzano_dtk 0:52ad25e0a9d0 304 c = mp3.read();
fmanzano_dtk 0:52ad25e0a9d0 305 Serial.print("0x");
fmanzano_dtk 0:52ad25e0a9d0 306 Serial.print(c, HEX);
fmanzano_dtk 0:52ad25e0a9d0 307 Serial.print(" ");
fmanzano_dtk 0:52ad25e0a9d0 308 }
fmanzano_dtk 0:52ad25e0a9d0 309 Serial.println(" ");
fmanzano_dtk 0:52ad25e0a9d0 310 }
fmanzano_dtk 0:52ad25e0a9d0 311
fmanzano_dtk 0:52ad25e0a9d0 312 /****************************************************************
fmanzano_dtk 0:52ad25e0a9d0 313 * Function Name: QueryPlayStatus
fmanzano_dtk 0:52ad25e0a9d0 314 * Description: Query play status.
fmanzano_dtk 0:52ad25e0a9d0 315 * Parameters: none
fmanzano_dtk 0:52ad25e0a9d0 316 * Return: 0: played out; 1: other.
fmanzano_dtk 0:52ad25e0a9d0 317 * Usage: while(QueryPlayStatus() != 0); // Waiting to play out.
fmanzano_dtk 0:52ad25e0a9d0 318 ****************************************************************/
fmanzano_dtk 0:52ad25e0a9d0 319 uint8_t QueryPlayStatus(void)
fmanzano_dtk 0:52ad25e0a9d0 320 {
fmanzano_dtk 0:52ad25e0a9d0 321 unsigned char c[10] = {0};
fmanzano_dtk 0:52ad25e0a9d0 322 uint8_t i = 0;
fmanzano_dtk 0:52ad25e0a9d0 323 //check if there's any data sent from the Grove_Serial_MP3_Player
fmanzano_dtk 0:52ad25e0a9d0 324 while(mp3.available())
fmanzano_dtk 0:52ad25e0a9d0 325 {
fmanzano_dtk 0:52ad25e0a9d0 326 c[i] = mp3.read();
fmanzano_dtk 0:52ad25e0a9d0 327 i++;
fmanzano_dtk 0:52ad25e0a9d0 328 delay(1);
fmanzano_dtk 0:52ad25e0a9d0 329 if (i == 10) break;
fmanzano_dtk 0:52ad25e0a9d0 330 // Serial.print(" 0x");
fmanzano_dtk 0:52ad25e0a9d0 331 // Serial.print(c[i], HEX);
fmanzano_dtk 0:52ad25e0a9d0 332 }
fmanzano_dtk 0:52ad25e0a9d0 333 // Serial.println(" ");
fmanzano_dtk 0:52ad25e0a9d0 334
fmanzano_dtk 0:52ad25e0a9d0 335 if(c[3] == 0x3C || c[3] == 0x3D || c[3] == 0x3E)
fmanzano_dtk 0:52ad25e0a9d0 336 {
fmanzano_dtk 0:52ad25e0a9d0 337 return 0;
fmanzano_dtk 0:52ad25e0a9d0 338 }
fmanzano_dtk 0:52ad25e0a9d0 339 else
fmanzano_dtk 0:52ad25e0a9d0 340 {
fmanzano_dtk 0:52ad25e0a9d0 341 return 1;
fmanzano_dtk 0:52ad25e0a9d0 342 }
fmanzano_dtk 0:52ad25e0a9d0 343 }