ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1...

17
คู ่มือการใช้งาน ThaiEasyElec MP3 Embedded Module (ฉบับภาษาไทย) Version 1.1 ประวัติการเปลี่ยนเวอร์ชั่น

Transcript of ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1...

Page 1: ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1 0 1 1 0 0 0xEC 236 กลับไปเล่นไฟล์ที่เลือกไว้

คมอการใชงาน ThaiEasyElec MP3 Embedded Module

(ฉบบภาษาไทย)

Version 1.1

ประวตการเปลยนเวอรชน

Page 2: ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1 0 1 1 0 0 0xEC 236 กลับไปเล่นไฟล์ที่เลือกไว้

Venus Supply Co., Ltd. Page 1

เวอรชน วนท การเปลยนแปลง 1.1 16 พฤศจกายน 2556 เปลยนรป,การใชงานกบ Arduino 1.0 3 ตลาคม 2556 เวอรชนแรก

Page 3: ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1 0 1 1 0 0 0xEC 236 กลับไปเล่นไฟล์ที่เลือกไว้

Venus Supply Co., Ltd. Page 2

คมอการใชงานบอรด ThaiEasyElec MP3 Embedded Module (ETEE043)

บอรด ThaiEasyElec MP3 Embedded Module (ETEE043) เปนโมดลทออกแบบมาสาหรบเลนไฟลเสยงเพลงนามสกล .MP3 งายตอการใชงาน ราคาถก โดยใช IC decode เบอร BU94502AKS2 ซงใหเสยงคณภาพด รองรบอตราการ Sample Rates ตงแต 8kHz ถง 48kHz. สามารถควบคมการใชงานได 2 รปแบบ คอโหมด Parallel และ Serial ผใชงานสามารถใช MCU เบอรตางๆ เพอมาควบคมไดงาย โดยมชดคาสงตางๆ ในการเลนไฟลเพลง เชน คาสงเลนเพลง , คาสงปรบเปลยนระดบความดงของเสยงเพลง, คาสงเปลยนแปลงโฟลเดอรทตองการจะเลนไฟลเสยงเพลง เปนตน ไฟลเสยงเพลงจะจดเกบอยใน micro SD Card และรองรบขนาดความจของ micro SD Card ไดสงสดถง 32GByte สามารถนาไปประยกตในการใชงานตางๆ ไดงาย เชน เสยงเรยกลาดบคว , เสยงตอบรบอตโนมต, เสยงบอกสถาน เปนตน

Page 4: ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1 0 1 1 0 0 0xEC 236 กลับไปเล่นไฟล์ที่เลือกไว้

Venus Supply Co., Ltd. Page 3

ความสามารถของบอรด MP3 Embedded Module

- รองรบการเลนไฟลนามสกล .MP3 แบบ Stereo - สามารถควบคมผานไมโครคอนโทรลเลอรได 2 รปแบบ Serial และ Parallel - รองรบระบบไฟล FAT32 และ FAT16 - รองรบ micro SD Card SDHC(สงสด 32 GB). - รองรบ Sample rates of 8 kHz ~ 48 kHz. - ใชไฟเลยงบอรด 5 VDC - Connector ขนาด 2.54 mm 20 ขา - บอรดมขนาด 35 x 51 mm.

Electrical Parameters

Parameter Min. Typ. Max. Unit.

Operating voltage 4 5 9 V Operating current - - 150 mA Input voltage 3.1 - 5.3 V Output voltage 3.1 - - V Audio Distortion rate - 0.005 0.05 % Audio Dynamic range - 90 - dB Audio Max output level 0.6 0.75 - Vrms

35 mm

51 mm

3.5 mm

3.5 mm

Page 5: ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1 0 1 1 0 0 0xEC 236 กลับไปเล่นไฟล์ที่เลือกไว้

Venus Supply Co., Ltd. Page 4

คณสมบตของบอรด MP3 Embedded Module (ETEE043)

หมายเลข 1 LED แสดงเมอมไฟ +5V เขา หมายเลข 2 IC Decode MP3 เบอร BU94502AKS2 หมายเลข 3 จดบดกร Mode Setting (Serial / Parallel) หมายเลข 4 LED แสดงสถานะขา BUSY หมายเลข 5 พอรต Debug MCU หมายเลข 6 MCU เบอร STM8S103 หมายเลข 7 Socket Mini SD Card หมายเลข 8 ขาสญญาณควบคมโมดล ประกอบดวย 20 ขาคอ

ขาท ชอ หนาท 1 +5V ไฟ +5 V 2 GND กราวน 3 HPL สญญาณเสยงดานซาย 4 HPR สญญาณเสยงดานขวา 5 TXD ขา TX พอรต Serial 6 RXD ขา RX พอรต Serial 7 PL ขา Trigger Active Low 8 BUSY แสดงสถานะของโมดล Active Low 9 RESERVE ไมใช 10 RESERVE ไมใช

11 VOL+ ขาเพมระดบเสยง 12 VOL- ขาลดระดบเสยง

13-20 P0 – P7 ขา Data Input

1.

5. 8.

7.

2.

3.

4. 6.

Pin1

7.

Page 6: ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1 0 1 1 0 0 0xEC 236 กลับไปเล่นไฟล์ที่เลือกไว้

Venus Supply Co., Ltd. Page 5

การเชอมตอกบบอรด MP3 Embedded Module

1. เตรยมไฟลบน SD Card การตงชอและการนาไฟลเสยงมาใสใน micro SD Card จะตองตงชอไฟลเปนลาดบตวเลข โดยไฟลเพลงลาดบท 1 ใหตงชอ 001.mp3 โดยเรยงไปเรอยจนถง 199.mp3 โดยสามารถใสไฟลเพลงในแตละโฟลเดอรไดสงสดถง 199 ไฟลและสามารถมโฟลเดอรไดสงสด 15 โฟลเดอรโดยใหนบ Root Directory เปนโฟลเดอรท 1 สวนโฟลเดอรตอไปจะเรมตงแต 02 ไปจนถง 15 ดงรปดานลาง ลาดบการเรยงของไฟลและโฟลเดอร โดยจะเรยงลาดบตามตวอกษร - ตวอยางการเรยงลาดบไฟลเพลง จากรปดานบนจะมไฟลเพลงทงหมด 4 ไฟลโดยจะเรยงลาดบจากซายไปขวา หากตองการจะสงเลนไฟลเพลงทชอ 017.mp3 จะตองสง command 0x03 หรอลาดบท 3 ไปสง MP3 Module ถงจะเลนไฟลเพลงไดอยางถกตอง

Note!! BUSY Pin: ในสภาวะ Low จะเกดขนได 2 กรณคอ Power on initial หรอก าลงเลนไฟลเพลงในขณะนน แต

หากในสภาวะปกต หรอไมไดมการเลนไฟลเสยง สภาวะจะเปน High ตลอด

PL Pin: เปนขาส าหรบ Trig (Active Low) เพอบอกให MP3 module น าสญญาณจาก P0-P7 ไปประมวลผล

Page 7: ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1 0 1 1 0 0 0xEC 236 กลับไปเล่นไฟล์ที่เลือกไว้

Venus Supply Co., Ltd. Page 6

- ตวอยางการเรยงลาดบโฟลเดอร จากรปดานบนจะมโฟลเดอรทงหมด 5 โฟลเดอร (รวม Root Directory) หากตองการเขาไปเลนไฟลเพลงในโฟลเดอรทช อ 11 จะตองสง command 0xF4(Change to folder 4) ขอแนะน า ควรจะตงชอ folder หรอ file ใหเรยงลาดบ เพอสามารถเลนไฟลตามลาดบไดอยางถกตอง

2. เซตโหมดท างานบนโมดล (Serial / Parallel) 2.1 การใชงานโหมด Parallel ตองบดกรจด M0, M1 ใหตอกบกราวน ดงภาพ

*** เบองตนตวบอรดไดรบการตงคาใหอยในโหมด Parallel ***

2.2 การใชงานโหมด Serial ตองบดกรจด M0 ใหลอยขาไว สวน M1 ใหตอลงกราวน ดงภาพ

Page 8: ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1 0 1 1 0 0 0xEC 236 กลับไปเล่นไฟล์ที่เลือกไว้

Venus Supply Co., Ltd. Page 7

3. การใชงานโหมด Parallel ตวอยางการใชงานจะตอรวมกบบอรด Arduino UNO R3 (EADN014) โดยใชขาสญญาณควบคมทงหมด 10 เสน คอ ขา Data 8 bits, ขา PL และขา BUSY ซงอาจจะตอสวตซทขา –VOL, +VOL เพอใหผใชงานสามารถควบคมระดบเสยงโดยตรง ดงภาพ

จากภาพจะเหนไดวา มบอรด Arduino UNO R3 (EADN014) ตอกบโมดล MP3 ดงน

Arduino / Other บอรด MP3 +5V +5V GND GND D2-D9 P0–P7 A4 BUSY A5 PL Switch 1 VOL+ Switch 2 VOL- Audio Jack L HP_L Audio Jack R HP_R

Data In 8 Bits

BUSY

PL

+5V

GND

Switch -Vol

Switch +Vol

HP_L

HP_R

Page 9: ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1 0 1 1 0 0 0xEC 236 กลับไปเล่นไฟล์ที่เลือกไว้

Venus Supply Co., Ltd. Page 8

3.1 การเขยนโปรแกรมทดสอบ (Parallel Mode) จากวงจรจะเหนไดวา ขาสญญาณทใชควบคม ม P0-P7, PL และ BUSY โดยหลกการควบคมคอ ถาตรวจสอบวาขา BUSY เปนโลจก “High” คอโมดลพรอมทางาน โปรแกรมจะสงคาสงไปทขา P0-P7 จากนนสง PL ใหเปนโลจก “Low” โดยคาสงทสามารถรนบน Parallel Mode มดงน

Command Word Function BIN HEX DEC

P7 P6 P5 P4 P3 P2 P1 P0 0 0 0 0 0 0 0 1 0x01 001 เลนเพลงลาดบท 1 0 0 0 0 0 0 1 0 0x02 002 เลนเพลงลาดบท 2 … …. … … … …. …. … … ….. …. 1 1 0 0 0 1 1 1 0xC7 199 เลนเพลงลาดบท 199 1 1 0 0 1 0 0 0 0xC8 200 ความดงเสยงระดบ 0 (ตาสด) 1 1 0 0 1 0 0 1 0xC9 201 ความดงเสยงระดบ 1 … …. … … … …. …. … … ….. …. 1 1 1 0 0 1 1 1 0xE7 231 ความดงเสยงระดบ 31 (สงสด) 1 1 1 0 1 0 0 0 0xE8 232 เพมความดงเสยง 1 ระดบ 1 1 1 0 1 0 0 1 0xE9 233 ลดความดงเสยง 1 ระดบ 1 1 1 0 1 0 1 1 0xEB 235 หยดการเลนไฟลชวขณะ (Pause) 1 1 1 0 1 1 0 0 0xEC 236 กลบไปเลนไฟลทเลอกไว (Resume) 1 1 1 0 1 1 1 1 0xEF 239 หยดเลนไฟล (Stop) 1 1 1 1 0 0 0 1 0xF1 241 เปลยนโฟลเดอรท 01 (Root directory) 1 1 1 1 0 0 1 0 0xF2 242 เปลยนโฟลเดอรท 02 … …. … … … …. …. … … ….. …. 1 1 1 1 1 1 1 1 0xFF 255 เปลยนโฟลเดอรท 15

Page 10: ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1 0 1 1 0 0 0xEC 236 กลับไปเล่นไฟล์ที่เลือกไว้

Venus Supply Co., Ltd. Page 9

โคดตวอยางท 1 ตอกบโมดล MP3 โหมด Parallel เลนไฟล 001.mp3

const int P0 = 2;

const int P1 = 3;

const int P2 = 4;

const int P3 = 5;

const int P4 = 6;

const int P5 = 7;

const int P6 = 8;

const int P7 = 9;

const int BUSY = A4;

const int PL = A5;

void set_port() {

pinMode(P0, OUTPUT);

pinMode(P1, OUTPUT);

pinMode(P2, OUTPUT);

pinMode(P3, OUTPUT);

pinMode(P4, OUTPUT);

pinMode(P5, OUTPUT);

pinMode(P6, OUTPUT);

pinMode(P7, OUTPUT);

pinMode(PL, OUTPUT);

pinMode(BUSY,INPUT);

}

boolean cmd_stop =false;

void setup() {

set_port();

}

void loop() {

if (BUSY == HIGH) {

digitalWrite(P0,HIGH);

digitalWrite(P1,LOW);

digitalWrite(P2,LOW);

digitalWrite(P3,LOW);

digitalWrite(P4,LOW);

digitalWrite(P5,LOW);

digitalWrite(P6,LOW);

digitalWrite(P7,LOW);

delay(100);

digitalWrite(PL, LOW);

delay(100);

digitalWrite(PL, HIGH);

cmd_stop = true; }

}

1. ประกาศชอขาทใชงาน

2. ประกาศ ฟงกช น set_port ()

3. ใชฟงกช น set_port() กาหนดขา input/output

4. ในชวง void loop ถาตรวจสอบไดวา ขา BUSY และกาหนดขาทง 8 bits และ Edge Rising ทขา PL

Page 11: ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1 0 1 1 0 0 0xEC 236 กลับไปเล่นไฟล์ที่เลือกไว้

Venus Supply Co., Ltd. Page 10

จากโคดสามารถอธบายไดดงน

ประกาศฟงกชน set_port () ใชกาหนดใหขาทกาหนดชอไวเปน Input หรอ Output

ในฟงกชน setup() ใชฟงกชน set_port() ทประกาศไวจากโคดสวนบน

ถาตรวจสอบถาโลจกขา BUSY (A4) เปน “High” คอบอรดพรอมรบคาสงและตวแปร cmd_stop เปน

False จากนนกาหนดใหขาสญญาณ Data ทง 8 bits เปน 00000001 หรอ 0x01 คอคาสงใหโมดลเลนไฟล

ลาดบท 1 จากนนใหขา PL เกด Edge Rising คอเปลยนจากโลจก “Low” เปน “High” และกาหนดตวแปร

cmd_stop เปน True ทาใหโปรแกรมจะสงคาสง 0x01 ครงเดยว

void set_port() {

pinMode(P0, OUTPUT);

pinMode(P1, OUTPUT);

pinMode(P2, OUTPUT);

pinMode(P3, OUTPUT);

pinMode(P4, OUTPUT);

pinMode(P5, OUTPUT);

pinMode(P6, OUTPUT);

pinMode(P7, OUTPUT);

pinMode(PL, OUTPUT);

pinMode(BUSY,INPUT);

}

void setup() {

set_port();

}

void loop() {

if (BUSY == HIGH && cmd_stop == false)

digitalWrite(P0,HIGH);

digitalWrite(P1,LOW);

digitalWrite(P2,LOW);

digitalWrite(P3,LOW);

digitalWrite(P4,LOW);

digitalWrite(P5,LOW);

digitalWrite(P6,LOW);

digitalWrite(P7,LOW);

delay(100);

digitalWrite(PL, LOW);

delay(100);

digitalWrite(PL, HIGH);

cmd_stop = true;

}

}

Page 12: ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1 0 1 1 0 0 0xEC 236 กลับไปเล่นไฟล์ที่เลือกไว้

Venus Supply Co., Ltd. Page 11

โคดตวอยางท 2 ตอกบโมดล MP3 โหมด Parallel ตองการเลนไฟล 002.mp3 โฟลเดอรท 03

const int P0 = 2;

const int P1 = 3

const int P2 = 4;

const int P3 = 5;

const int P4 = 6;

const int P5 = 7;

const int P6 = 8;

const int P7 = 9;

const int BUSY = A4;

const int PL = A5;

void set_port() {

pinMode(P0, OUTPUT);

pinMode(P1, OUTPUT);

pinMode(P2, OUTPUT);

pinMode(P3, OUTPUT);

pinMode(P4, OUTPUT);

pinMode(P5, OUTPUT);

pinMode(P6, OUTPUT);

pinMode(P7, OUTPUT);

pinMode(PL, OUTPUT);

pinMode(BUSY,INPUT);

}

void send_CMD(unsigned char cmd) {

if( cmd&0x01 ) digitalWrite(P0, HIGH); //Bit 0

else digitalWrite(P0, LOW);

if( cmd&0x02 ) digitalWrite(P1, HIGH); //Bit 1

else digitalWrite(P1, LOW);

if( cmd&0x04 ) digitalWrite(P2, HIGH); //Bit 2

else digitalWrite(P2, LOW);

if( cmd&0x08 ) digitalWrite(P3, HIGH); //Bit 3

else digitalWrite(P3, LOW);

if( cmd&0x10 ) digitalWrite(P4, HIGH); //Bit 4

else digitalWrite(P4, LOW);

if( cmd&0x20 ) digitalWrite(P5, HIGH); //Bit 5

else digitalWrite(P5, LOW);

if( cmd&0x40 ) digitalWrite(P6, HIGH); //Bit 6

else digitalWrite(P6, LOW);

if( cmd&0x80 ) digitalWrite(P7, HIGH); //Bit 7

else digitalWrite(P7, LOW);

delay(100); digitalWrite(PL, LOW);

delay(100); digitalWrite(PL, HIGH);

}

boolean cmd_stop =false ;

void setup() {

set_port();

}

void loop() {

if ((BUSY == HIGH) && (cmd_stop == false)) {

send_CMD(0xF3);

delay(200);

while(BUSY == HIGH) {

send_CMD(0x02);

cmd_stop=true;

}

}

}

3. ประกาศฟงกช น send_CMD(unsigned char cmd)

5. ในชวง void loop ถาตรวจสอบไดวา ขา BUSY และตวแปร

cmd_stop เปน False จากนนสงคาสง 0xF3 และ 0x02

1. ประกาศชอขาทใชงาน

2. ประกาศ ฟงกช น set_port ()

4. ในชวง void setup ใชฟงกช น set_port()

Page 13: ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1 0 1 1 0 0 0xEC 236 กลับไปเล่นไฟล์ที่เลือกไว้

Venus Supply Co., Ltd. Page 12

จากโคดสามารถอธบายไดดงน

ประกาศฟงกชน send_CMD(unsigned char cmd) เปนฟงชนสงคาสงไปทโมดล โดยรบพารามเตอรชนด char

ชอ cmd และนาตวแปร cmd ไปตรวจสอบขอมลทละบต ถาบตนนเปน 1 ใหเซตขานนเปนโลจก “High” แตถา

เปน 0 เซตขานนเปนโลจก “Low” จนครบ 8 บตจากนนสงใหขา PL เปลยนโลจกจาก “Low” ไปเปน “High”

ถาตรวจสอบถาโลจกขา BUSY เปน “High” และตวแปร cmd_stop เปน false จากนนสงคาสง 0xF3 คอ

เปลยนโฟลเดอร 03 จากนนรอจนกวาโมดลจะพรอมทางาน จากการตรวจสอบทขา BUSY ถาเปน “High” ให

สงคาสง 0x02 คอใหโมดลเลนไฟลเพลงลาดบท 2 ในโฟลเดอร 03

void send_CMD(unsigned char cmd) {

if( cmd&0x01 ) digitalWrite(P0, HIGH); //Bit 0

else digitalWrite(P0, LOW);

if( cmd&0x02 ) digitalWrite(P1, HIGH); //Bit 1

else digitalWrite(P1, LOW);

if( cmd&0x04 ) digitalWrite(P2, HIGH); //Bit 2

else digitalWrite(P2, LOW);

if( cmd&0x08 ) digitalWrite(P3, HIGH); //Bit 3

else digitalWrite(P3, LOW);

if( cmd&0x10 ) digitalWrite(P4, HIGH); //Bit 4

else digitalWrite(P4, LOW);

if( cmd&0x20 ) digitalWrite(P5, HIGH); //Bit 5

else digitalWrite(P5, LOW);

if( cmd&0x40 ) digitalWrite(P6, HIGH); //Bit 6

else digitalWrite(P6, LOW);

if( cmd&0x80 ) digitalWrite(P7, HIGH); //Bit 7

else digitalWrite(P7, LOW);

delay(100); digitalWrite(PL, LOW);

delay(100); digitalWrite(PL, HIGH);

}

void loop() { if ((BUSY == HIGH) && (cmd_stop == false)) { send_CMD(0xF3); delay(200); while(BUSY == HIGH) { send_CMD(0x02); cmd_stop=true; } } }

Page 14: ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1 0 1 1 0 0 0xEC 236 กลับไปเล่นไฟล์ที่เลือกไว้

Venus Supply Co., Ltd. Page 13

4. การใชงานโหมด Serial

ตวอยางการใชงานจะตอรวมกบบอรด Arduino UNO R3 (EADN014) โดยจะใชสญญาณควบคม

โมดล 3 ขาคอ พอรต Serial (TX, RX) และขา BUSY

จากภาพจะเหนไดวา มบอรด Arduino UNO R3 (EADN014) ตอกบโมดล MP3 ดงน

Arduino / Other บอรด MP3 +5V +5V GND GND D4 TX D3 RX D5 BUSY Switch 1 VOL+ Switch 2 VOL- Audio Jack L HP_L Audio Jack R HP_R

TX(D4)>>RX RX(D3)<<TX

(D5) BUSY

PH_L

PH_R

GND +5V

Page 15: ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1 0 1 1 0 0 0xEC 236 กลับไปเล่นไฟล์ที่เลือกไว้

Venus Supply Co., Ltd. Page 14

4.1 การเขยนโปรแกรมทดสอบ (Serial Mode)

ในการทดลองนจะใช Software Serial โดยกาหนดใหขา RX อยทขา D3 ขา TX อยทขา D4

โดยก าหนด Baudrate เปน 9600, Data Bit : 8, Stop Bit :1, Parity : None

คาสงทสามารถรนบน Serial mode จะเหมอนกบ Parallel mode มดงน

Command word Function HEX DEC

0x01 001 เลนเพลงลาดบท 1 0x02 002 เลนเพลงลาดบท 2 … ….. …. 0xC7 199 เลนเพลงลาดบท 199 0xC8 200 ความดงเสยงระดบ 0 (ตาสด) 0xC9 201 ความดงเสยงระดบ 1 … ….. …. 0xE7 231 ความดงเสยงระดบ 31 (สงสด) 0xE8 232 เพมความดงเสยง 1 ระดบ 0xE9 233 ลดความดงเสยง 1 ระดบ 0xEB 235 หยดการเลนไฟลชวขณะ (Pause) 0xEC 236 กลบไปเลนไฟลทเลอกไว (Resume) 0xEF 239 หยดเลนไฟล (Stop) 0xF1 241 เปลยนโฟลเดอรท 01 (Root directory) 0xF2 242 เปลยนโฟลเดอรท 02 … ….. …. 0xFF 255 เปลยนโฟลเดอรท 15

Page 16: ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1 0 1 1 0 0 0xEC 236 กลับไปเล่นไฟล์ที่เลือกไว้

Venus Supply Co., Ltd. Page 15

โคดตวอยางท 1 ตอกบโมดล MP3 โหมด Serial ถาตองการเลนไฟล 001.mp3

จากโคดจะเหนไดวา

1. ประกาศใชฟงกชน Software Serial ใหชอ mySerial โดยกาหนดให ขา D3 เปน RX และขา D4 เปน TX

2. ในฟงกชน void setup เซตขา D5 เปน input กาหนด Baud rate ของ software เปน 9600 bps

3. ในฟงกชน void loop ถาขาสญญาณ D5 เปน “High” และตวแปร cmd_stop เปน False โปรแกรมจะสง

คาสง 0x01 ผานพอรต software serial ทไดประกาศไวจากดานบนแลว และเซตตวแปร cmd_stop เปน True

ทาใหโปรแกรมสงคาสงเพยงรอบเดยว

#include <SoftwareSerial.h>

SoftwareSerial mySerial(3, 4); // RX, TX

const int BUSY = 5;

boolean cmd_stop =false;

void setup() {

pinMode(BUSY, INPUT);

mySerial.begin(9600);

}

void loop() {

if (BUSY == HIGH && cmd_stop == false) {

Serial.write(0x01);

cmd_stop=true;

}

}

#include <SoftwareSerial.h>

SoftwareSerial mySerial(3, 4); // RX, TX

void setup() {

pinMode(BUSY, INPUT);

mySerial.begin(9600);

}

void loop() {

if (BUSY == HIGH && cmd_stop == false) {

mySerial.write(0x01);

cmd_stop=true;

}

}

Page 17: ค่มูือการใช้งานnarong.ece.engr.tu.ac.th/microlab/document... · 1 1 1 0 1 1 0 0 0xEC 236 กลับไปเล่นไฟล์ที่เลือกไว้

Venus Supply Co., Ltd. Page 16

โคดตวอยางท 2 ตอกบโมดล MP3 โหมด Serial ตองการเลนไฟล 002.mp3 โฟลเดอรท 03

จากโคดจะเหนไดวา

ในฟงกชน void loop ถาขาสญญาณ D5 เปน “High” และตวแปร cmd_stop เปน False โปรแกรม

จะสงคาสง 0xF3 ผานพอรต software serial คอคาสงเปลยนโฟลเดอร 03 จากนนรอจนกวาโมดลจะพรอม

ทางาน จากการตรวจสอบทขา BUSY ถาเปน “High” ใหสงคาสง 0x02 คอใหโมดลเลนไฟลเพลงลาดบท 2 ใน

โฟลเดอร 03

void loop() {

if (BUSY == HIGH && cmd_stop == false) {

mySerial.write(0xF3);

delay(200);

while(BUSY == HIGH) {

mySerial.write (0x02);

cmd_stop=true;

}

}

}

#include <SoftwareSerial.h>

SoftwareSerial mySerial(3, 4); // RX, TX

const int BUSY = 5;

boolean cmd_stop =false ;

void setup() {

pinMode(BUSY, INPUT);

mySerial.begin(9600);

}

void loop() {

if (BUSY == HIGH && cmd_stop == false) {

mySerial.write(0xF3);

delay(200);

while(BUSY == HIGH) {

mySerial.write (0x02);

cmd_stop=true;

}

}

}