답변 : 초음파 센서와 네오픽셀, 서버모터, GROVE MP3
페이지 정보
작성자 master 작성일18-12-18 21:49 조회5,514회 댓글2건본문
// MCU BASIC: https://www.basic4mcu.com
// DateTime : 2018-12-18 오후 9:53:44
// by Ok-Hyun Park
//
//--------------grove mp3 v2.0--------------------------
//
#include <SoftwareSerial.h>
#include <MP3Player_KT403A.h>
SoftwareSerial mp3(2,3);
//
static uint8_t recv_cmd[20];
//
void setup(){
mp3.begin(9600);
Serial.begin(9600); while(!Serial);
Serial.println("Grove-Serial MP3 Demo");
Serial.println(
"Input command: \r\n\r\n"
"P[]play music by default index\r\n"
"Pm[]play music in MP3 folder by index\r\n"
"Pf[][]play music by specify folder and index\r\n"
"p Pause\r\n"
"R Resume\r\n"
"N Next\r\n"
"L Previous\r\n"
"l Loop\r\n"
"I Increase volume\r\n"
"D Decrease volumern\r\n");
delay(100);
SelectPlayerDevice(0x02); // Select SD card as the player device.
SetVolume(15); // 0~30
}
//
uint8_t len=0;
//
void loop(){
uint8_t i;
//
if(Serial.available()){
byte chr=Serial.read(); // Serial.print(chr);
if(chr=='\n'){
recv_cmd[len]=0;
// Print reveiced data
// Serial.print("Received cmd: ");
// for(i=0; i<len; i++){ Serial.print(recv_cmd[i]); Serial.print(" "); }
// Serial.println();
switch(recv_cmd[0]){
case 'P':{
if(recv_cmd[1]=='m'){ /***Play music in "MP3" folder by index*example: "Pm1"->./MP3/0001.mp3*/
PlayMP3folder(recv_cmd[2]-'0');
Serial.print("Play "); Serial.write(byte(recv_cmd[2])); Serial.println(".mp3 in MP3 folder");
}
else if(recv_cmd[1]=='f'){ /***Play specify folder and music*example: "Pf11"->./01/001.mp3*/
SpecifyfolderPlay(recv_cmd[2]-'0',recv_cmd[3]-'0');
Serial.print("Play "); Serial.write(byte(recv_cmd[3])); Serial.print("xxx.mp3");
Serial.print(" in folder "); Serial.write(byte(recv_cmd[2])); Serial.println();
}
else{ /***Play music by default index*example: "P1"->./***.mp3*/
SpecifyMusicPlay(recv_cmd[1]-'0');
Serial.print("Play xxx.MP3 by index "); Serial.write(byte(recv_cmd[1])); Serial.println();
}
// Serial.println("Specify the music index to play");
break;
}
case 'p': PlayPause(); Serial.println("Pause the MP3 player"); break;
case 'R': PlayResume(); Serial.println("Resume the MP3 player"); break;
case 'N': PlayNext(); Serial.println("Play the next song"); break;
case 'L': PlayPrevious(); Serial.println("Play the previous song"); break;
case 'l': PlayLoop(); Serial.println("Play loop for all the songs"); break;
case 'I': IncreaseVolume(); Serial.println("Increase volume"); break;
case 'D': DecreaseVolume(); Serial.println("Decrease volume"); break;
}
//
for(i=0;i<8;i++)recv_cmd[i]=0; // clean data buffer
len=0;
}
else{
recv_cmd[len++]=chr;
}
}
//
delay(100);
// printReturnedData();
}
일단 위에 올린 mp3 소스를 정리 했습니다.
잘 동작하는지 체크 해보세요
댓글 : 2
조회수 : 5,514
손문일님의 댓글
손문일 작성일
chr=Serial.read(); // Serial.print(chr);에서 에러 납니다.
오류메세지
sketch_dec18b:34:5: error: 'chr' was not declared in this scope
chr=Serial.read(); // Serial.print(chr);
^
exit status 1
'chr' was not declared in this scope
master님의 댓글
master
데이터형 선언이 빠져서 생긴 오류입니다.
수정했으니 다시 돌려보세요