ابتدا برای راه اندازیش ، با یک ماژول usb به TTL ،ماژول DFplayer به کامپیوتر متصل کنید .
اگه میخواید راحت راش بندازید از ترمینال کدویژن استفاده کنید البته نرم افزار های دیگه هم هست ولی من با ترمینال کدویژن راحت تر هستم ، چون قسمت ارسال هگز راحت تره ، و از همه مهم تر اینه که مقادیر باید هگز باشه یعنی اگه شما به صورت معمولی توی قسمت سریال به عنوان مثال (7E) بفرستید در واقع داردی به ازای عدد (7) مقدار 0x37 و به ازی (E) مقدار 0x65 را برای ماژول ارسال می کنید، که این اصلا درست نیست .
اگه ارتباط ماژول و کامپیوتر درست باشه و بادریت هم روی 9600 باشه ، بعد اتصال پاور به ماژول DFplayer یک سری مقادیر چرت و پرت براتون ارسال میکنه ، این نشون میده که ماژول سالمه ولی داره برای شما هگز ارسال میکنه ، اگه گزینه هگز رو فعال کنید مقادیر (7E FF 06 3F 00 00 00 FE BC EF ) برای شما ارسال میکنه.
حالا برای اینکه بهش بگید آهنگ 1 رو پخش کن باید دستور 7E FF 06 03 00 00 01 EF برای ماژول ارسال کنید ، برای این کار در نرم افزار کدویژن دربالای سر برگ ترمینال نوشتهHex Code شما در این قسمت مقدار 7E را وارد کرده و بعد گزینه SEND میزنید و بعد مقدار FF و بعد مقدار 06 تا آخر بعد از این که مقدار EF رو ارسال کردید آهنگ شروع به پخش میشه ، اینم بگم که حتما یک مقاومت حدود 470 اهم با بلندگو سری کنید وگرنه ماژول ریست میشه.
برای راه اندازیش با میکرو من از زبان C استفاده کردم .
قبل از قسمت (void main(void دستور ;{int buffer_data[10] = {0x7E , 0xFF , 0x06 , 0x03 , 0x00 , 0x00 , 0x04 , 0xEF وارد کردم حالا هربار که بخوام آهنگ 02 رو پخش کنم با استفاده از دستور
buffer_data[6] = 0X02 خونه 6 رو تغقیر میدم. یا اهنگ سوم buffer_data[6] = 0X03 رو وارد میکنم ، حالا برای اینکه مقدار بافر دیتارو با سریال ارسال کنم باید هر کدوم رو تک تک بفرستید ، پس یعنی از یک حلقه for استفاده کنید.(++for(n=0;n<7;n
{
;([putchar(buffer_data[n
;( delay_ms(10
}
فقط یادم نمیاد n<9 بود یا n<7
در واقع با استفاده از دستور for مقادیر 7E تا EF برای ماژول ارسال میکنیم .
راستی من از کریستال داخلی استفاده میکنم و به چکسام هم نیازی نداره.
دلیل: ادغام دو پست برای جلوگیری از اسپم
اینم از کد برنامه زبان C
البته این مال خیلی وقت پیشه
Chip type : ATmega16A
Program type : Application
AVR Core Clock frequency: 8.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
************************************************** *****/
#include <mega16a.h>
#include <delay.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int buffer_data[10] = {0x7E , 0xFF , 0x06 , 0x03 , 0x00 , 0x00 , 0x04 , 0xEF};
void main(void)
{
int n=0;
DDRB=0x00;
PORTB=0xff;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x98;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;
#asm("sei")
while (1)
{
if(PINB.3==0)
{
for(n=0;n<9;n++)
{
putchar(buffer_data[n]);
delay_ms(10);
}
n=0;
while (PINB.3==0);
}
if(PINB.2==0)
{
buffer_data[6] = 0x03;
}
if(PINB.4==0)
{
buffer_data[6] = 0x04;
}
}
}
با زدن کلید متصل به پورت B.2 آهنگ شماره 03 وارد بافر دیتا میشه و بعد با زدن کلید روی پورت B.3 مقادیر برای ماژول ارسال میشه و اهنگ پخش میشه.
و همین طور با زدن کلید متصل به پورت4B.2 آهنگ شماره04 وارد بافر دیتا میشه و بعد با زدن کلید روی پورت B.3 مقادیر برای ماژول ارسال میشه و اهنگ شماره 4 پخش میشه.
کل مراحل به همین روشه و برای کارای مثل توقف و پخش مجدد و ....... باید مقدار سوم بافر دیتا متناسب با دستور تعقیر، من چون می خواستم آهنگ مورد نظر پخش کنم از 03
استفاده کردم.