สำหรับใครที่กำลังมองหา โปรเจคแบบนี้อยู่ วันนี้ผมจะเอามาแชร์ ให้ทดลองใช้งานกันนะครับ ถ้าใครเข้าใจหลักการแล้วก็ สามารถ ปรับแต่ง code ได้เลยครับ ส่วนการประยุกต์ ใช้งานคือ ใน code ผม สุ่มตัวเลขขึ้นมาให้มันอ่าน ดังนั้นจึงเป็นไปได้ว่า มันควรที่จะสามารถรับ ค่าจากอุปกรณ์ Sensor อะไรสักอย่าง เข้ามาแล้วสามารถอ่านออกเสียงได้
วิธีการเตรียม
- Micro SD Card format เป็น FAT32
- Copy file เสียง mp3 ที่ใช้งานทั้งหมดเข้าไปใน Micro SD Card (ไม่ต้องสร้างโฟลเดอร์ อะไรทั้งสิ้น)
(เป็นไฟล์เสียงที่ผมอัด และตัดเอง ไม่มีลิขสิทธิ์อะไรนะครับ แค่เอาไว้ลอง)
Download sound :
https://drive.google.com/file/d/1V74LMCa3QxAoupDUSft6SS0FvrZijxqV/view?usp=sharing
https://drive.google.com/file/d/1ScC4ZfhUwSkK7dMxYUZfnzR0qyG08za1/view?usp=sharing
- เราจะรู้ได้อย่างไรว่า เมื่อ DFPlayerMini เล่นแล้ว จะเล่นไฟล์ ไหนเป็นลำดับแรก ตรงนี้สำคัญนะครับ ให้ใช้ไฟล์ จาก Library ของเขา ชื่อว่า Arduino\libraries\DFRobotDFPlayerMini-master\examples\GetStarted มาทดสอบ มันจะบอกเราว่า มันจะเล่นไฟล์ไหนเป็นลำดับแรก ให้เรามาร์กลำดับไว้ แล้วก็จัดลำดับ เรียงตามที่มันเล่นได้เลยครับ ก็เท่ากับว่าเราจะรู้ ลำดับ รายการที่มันเล่นแล้ว เอาไปใส่ใน code มันจะได้อ่านได้ตรงตามที่เราต้องการและถูกต้อง
Download Library :
https://drive.google.com/file/d/1wqWETr6wtwWMj2Q-uC7ClNjxvnImQmxK/view?usp=sharing
- จากนั้น Upload code เข้าไป มันก็จะพูดแล้วครับ
Download Code :
https://drive.google.com/file/d/1wqWETr6wtwWMj2Q-uC7ClNjxvnImQmxK/view?usp=sharing
ผลลัพธ์ การทำงานครับ
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(2, 3);
//สร้าง Port การติดต่อระหว่าง DFPlayerMini ติดต่อกับ Arduino NaNo ที่ RX = 2, TX = 3
DFRobotDFPlayerMini myDFPlayer; //โหลด Library DFRobotDFPlayerMini-master
float V; // ตั้งค่า V เป็นจำนวนเต็ม+จุดทศนิยม โดยให้รับค่าจากการสุ่มตัวเลขเข้ามาเก็บไว้
String digitset1;// เป็นตัวแปร String เก็บค่า V จาก Float แปลงเป็น String
unsigned long delaytime_1 = 3000; //ระยะการหน่วงเวลา
unsigned long last_time = 0; //ประกาศตัวแปรเป็น global เพื่อเก็บค่าไว้ไม่ให้ reset จากการวน loop
int x = 600; // ปรับระยะเวลาการหน่วงเสียง หลักหน่วย 0-9
int x1 = 1100;// ปรับระยะการเวลาหน่วงเสียง ตั้งแต่ 10-99 100 200...900..1000
int set1;
int set3_1;
int set3_2;
int set3_3;
int set3_4;
String set2;
String set3;
String set3_5;
String set3_6;
int Int1_Data1 ;
int Int1_Data2 ;
String value2_1;
int value2_2;
int value2_6;
int countstring;
void setup()
{
mySoftwareSerial.begin(9600);
Serial.begin(115200);
Serial.println();
Serial.println(F("DFRobot DFPlayer Mini Demo"));
Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));
//ชุดตรวจสอบความพร้อมของ DFPlayerMini ว่าพร้อมทำงานหรือไม่
//ใช้ softwareSerial เพื่อติดต่อกับไฟล์ .mp3 ที่อยู่ในใน SD Card
if (!myDFPlayer.begin(mySoftwareSerial)) {
//ถ้าติดต่อไม่ได้ จะมีคำแนะนำตามนี้แสดงใน Serial monitor แล้ววนค่า
Serial.println(F("Unable to begin:"));
Serial.println(F("1.Please recheck the connection!"));
Serial.println(F("2.Please insert the SD card!"));
while (true) {//ถ้าติดต่อได้
delay(0); // Code to compatible with ESP8266 watch dog.
}
}
Serial.println(F("DFPlayer Mini online."));
myDFPlayer.volume(25); //ตั้งระดับความดังของเสียง 0-30
myDFPlayer.EQ(DFPLAYER_EQ_BASS);
//ตั้งรูปแบบ EQ ของเสียง ดูใน ไฟล์ตัวอย่างของ Libraries DFRobotDFPlayerMini-master
//ให้ Value รับค่า การอ่านจำนวนไฟล์ ใน SD Card และแสดงจำนวนไฟล์ทั้งหมด
int value;
value = myDFPlayer.readFileCounts();
Serial.println("");
Serial.print("พบไฟล์ใน SD CARD = ");
Serial.print(value);
Serial.println(" ไฟล์");
}
void loop() {
if (millis() - last_time > delaytime_1) {
last_time = millis();
//บันทึกเวลาปัจจุบันไว้เพื่อรอจนกว่า millis() จะมากกว่าตัวมันเท่า delaytime_1
V = random(1, 2715) / 1.36; //ให้ V ที่เป็น float รับค่า จากการสุ่มเข้ามา
//V = random(1, 10) / 2.34;
//V = 105.4;
//V = 1054.4;
//V = 0.6;
digitset1 = String(V, 1); // เป็นตัวแปร String เก็บค่า V จาก Float แปลงเป็น String + จุดทศนิยม 1 ตำแหน่ง
//--------------------------------------------------------------------------
for (int i = 0; i < digitset1.length(); i++) {//นับความยาวของ digitset1.length ว่ารับมากี่ตัว แล้ว for วน อ่านค่าแต่ละตัวออกมาว่ามีอะไรบ้าง
if (digitset1.substring(i, i + 1) == ".") {//ถ้าในขณะที่วนเลื่อนตำแหน่งไปทางขวาเรื่อยๆ แล้วเจอ String ที่เป็น .(จุด)
//ให้ int set1 รับค่าจาก digitset1.substring
//โดยแสดงค่า จากตำแหน่งที่ 0 (ซ้ายสุด) ไปสุดที่ตำแหน่ง i ก่อนที่จะเจอ .(จุด)
//เช่น digitset1 = 1235.2 set1= 1235
set1 = digitset1.substring(0, i).toInt();
//ให้ String set2 รับค่าจาก int set1 แปลงเป็น String
set2 = String(set1);
//แล้วให้ int countstring นับความยาวของ set2.length ว่ารับมากี่ตัว
countstring = set2.length();
//ในส่วนของตัวเลขหลังจุด (.x) ให้ String value2_1 รับค่า จาก i + 1 มาว่าเป็นค่าอะไรบ้าง
value2_1 = digitset1.substring( i + 1);
//cแล้วให้ int value2_2 รับค่าการแปลงของ value2_1 จาก String เป็น Int
value2_2 = value2_1.toInt();
// Serial.print("value2_1 = ");
// Serial.println(value2_1);
Serial.print("จำนวนหลัก = ");
Serial.println(countstring);
break;
}//if
}//for
//------------กรณีรับค่ามาเป็นหลักร้อย (3 หลัก) เช่น 536.2---------------------------------------------------------
if (countstring == 3) {// ถ้า int countstring นับความยาวของ set2.length ได้ = 3 หลัก
//วนอ่านค่า โดย เอาเฉพาะหลักที่ 1 ที่อยู่ทางซ้ายมือสุดมาเท่านั้น
//เช่น set2 รับค่าได้มา = 3 หลัก คือ 536
//set2.length() - (set2.length() - 1
//จะได้ 3 - (3-1) จะได้ = 1 ดังนั้น i จะวนแค่ 1 ครั้งแล้วหยุด
//set2 จะได้ = 5 จะแสดงค่าหลักที่ 1 ซ้ายมือสุดมาเท่านั้น
for (int i = 0; i < set2.length() - (set2.length() - 1); i++) {
//Serial.println(set2[i]);
//ให้ String set3 รับค่า String set2 1 หลัก + 0 + 0
//จากตัวอย่าง set2 จะได้ = 500
set3 = set2[i] + String(0) + String(0);
//ให้ int set3_1 รับค่าการแปลงจาก String set3 เป็น int
//จากตัวอย่าง set3 จะได้ = 500
set3_1 = set3.toInt();
//ให้ int set3_2 รับค่าการแปลงจาก String set2 เป็น int
//จากตัวอย่าง set2 จะได้ = 536
set3_2 = set2.toInt();
// int Int1_Data1 แสดงค่าหลักที่เหลืออีก 2 หลักก่อนที่จะเจอ .(จุด)
//จะได้ 536 - 500 = 36
//Int1_Data1 = 36
Int1_Data1 = set3_2 - set3_1;
// Serial.print("V = ");
Serial.println(V, 1);
// Serial.print("set3 = ");
// Serial.println(set3);
// Serial.print("Int1_Data1 = ");
// Serial.println(Int1_Data1);
//จากตัวอย่าง สรุปว่า รับมา 536 แยกเป็น (ที่ต้องแปลงเป็นคังเลข เพราะจะนำไปใช้กับ Switch case)
//set3_1 = 500 //ส่วนของหลักร้อย
//Int1_Data1 = 36 //ส่วนของหลักสิบ
//ส่วนของหลักร้อย
if (set3_1 >= 100 and set3_1 <= 900) {//ถ้าค่า int set3_1 อยู่ในช่วงระหว่าง 100 - 900
if (set3_1 == 100 || set3_1 == 200 || set3_1 == 300 ||
set3_1 == 400 || set3_1 == 500 || set3_1 == 600 ||
set3_1 == 700 || set3_1 == 800 || set3_1 == 900 ) {
Tens_digit11();//เข้าฟังก์ชั่น
}
}
//ส่วนของหลักสิบ
if (Int1_Data1 > 0 and Int1_Data1 <= 99 ) {//ถ้าค่า Int1_Data1 อยู่ในช่วงระหว่าง 1 - 99
if (Int1_Data1 >= 0 and Int1_Data1 <= 9 ) {
Tens_digit1();
}
if (Int1_Data1 >= 10 and Int1_Data1 <= 19 ) {
Tens_digit2();
}
if (Int1_Data1 >= 20 and Int1_Data1 <= 29 ) {
Tens_digit3();
}
if (Int1_Data1 >= 30 and Int1_Data1 <= 39 ) {
Tens_digit4();
}
if (Int1_Data1 >= 40 and Int1_Data1 <= 49 ) {
Tens_digit5();
}
if (Int1_Data1 >= 50 and Int1_Data1 <= 59 ) {
Tens_digit6();
}
if (Int1_Data1 >= 60 and Int1_Data1 <= 69 ) {
Tens_digit7();
}
if (Int1_Data1 >= 70 and Int1_Data1 <= 79 ) {
Tens_digit8();
}
if (Int1_Data1 >= 80 and Int1_Data1 <= 89 ) {
Tens_digit9();
}
if (Int1_Data1 >= 90 and Int1_Data1 <= 99 ) {
Tens_digit10();
}
}
//ส่วนของหลักทศนิยม 1 ตำแหน่ง
if (value2_2 == 0 || value2_2 == 1 || value2_2 == 2 ||
value2_2 == 3 || value2_2 == 4 || value2_2 == 5 ||
value2_2 == 6 || value2_2 == 7 || value2_2 == 8 ||
value2_2 == 9 ) {
Tens_digit12();
}
}//for (int i = 0; i < set2.length() - (set2.length() - 1); i++)
}//if (countstring == 3)
//--------------------------------------------------------------------------------
//------------กรณีรับค่ามาเป็นหลักสิบ (2 หลัก) เช่น 36.2-------------------------------------------
if (countstring == 2) { //ถ้า int countstring มีค่าอยู่ในช่วงระหว่าง =0 ถึง 2
//ให้ String set3 มีค่า= int set1
set3 = set1 ;
//ให้ int set3_1 มีค่า= การแปลง String set3 เป็นตัวเลข
set3_1 = set3.toInt();
//ให้ int Int1_Data1 มีค่า= int set3_1 เป็นตัวเลข
Int1_Data1 = set3_1;
// Serial.print("V = ");
Serial.println(V, 1);
// Serial.print("set3 = ");
// Serial.println(set3);
// Serial.print("Int1_Data1 = ");
// Serial.println(Int1_Data1);
//ส่วนของหลักสิบ
if (set3_1 >= 100 and set3_1 <= 900 ) {//ถ้าค่า Int1_Data1 อยู่ในช่วงระหว่าง 100 - 900
if (set3_1 == 100 || set3_1 == 200 || set3_1 == 300 ||
set3_1 == 400 || set3_1 == 500 || set3_1 == 600 ||
set3_1 == 700 || set3_1 == 800 || set3_1 == 900 ) {
Tens_digit11();
}
}
//ถ้าค่า Int1_Data1 อยู่ในช่วงระหว่าง 1 - 99
if (Int1_Data1 > 0 and Int1_Data1 <= 99 ) {
if (Int1_Data1 >= 0 and Int1_Data1 <= 9 ) {
Tens_digit1();
}
if (Int1_Data1 >= 10 and Int1_Data1 <= 19 ) {
Tens_digit2();
}
if (Int1_Data1 >= 20 and Int1_Data1 <= 29 ) {
Tens_digit3();
}
if (Int1_Data1 >= 30 and Int1_Data1 <= 39 ) {
Tens_digit4();
}
if (Int1_Data1 >= 40 and Int1_Data1 <= 49 ) {
Tens_digit5();
}
if (Int1_Data1 >= 50 and Int1_Data1 <= 59 ) {
Tens_digit6();
}
if (Int1_Data1 >= 60 and Int1_Data1 <= 69 ) {
Tens_digit7();
}
if (Int1_Data1 >= 70 and Int1_Data1 <= 79 ) {
Tens_digit8();
}
if (Int1_Data1 >= 80 and Int1_Data1 <= 89 ) {
Tens_digit9();
}
if (Int1_Data1 >= 90 and Int1_Data1 <= 99 ) {
Tens_digit10();
}
}
//ส่วนของหลักทศนิยม 1 ตำแหน่ง
if (value2_2 == 0 || value2_2 == 1 || value2_2 == 2 ||
value2_2 == 3 || value2_2 == 4 || value2_2 == 5 ||
value2_2 == 6 || value2_2 == 7 || value2_2 == 8 ||
value2_2 == 9 ) {
Tens_digit12();
}
}
//--------------------------------------------------------------------------------
//------------กรณีรับค่ามาเป็นหลักร้อย (4 หลัก) เช่น 1536.2---------------------------------------------------------
if (countstring == 4) {
//วนอ่านค่า โดย เอาเฉพาะหลักที่ 1 ที่อยู่ทางซ้ายมือสุดมาเท่านั้น
//เช่น set2 รับค่าได้มา = 4 หลัก คือ 1536
//set2.length() - (set2.length() - 1
//จะได้ 4 - (4-1) จะได้ = 1 ดังนั้น i จะวนแค่ 1 ครั้งแล้วหยุด
//set2 จะได้ = 1 จะแสดงค่าหลักที่ 1 ซ้ายมือสุดมาเท่านั้น
for (int i = 0; i < set2.length() - (set2.length() - 1); i++) {// ถ้า int countstring นับความยาวของ set2.length ได้ = 4 หลัก
//Serial.println(set2[i]);
//ให้ String set3 รับค่า String set2 1 หลัก + 0 + 0 + 0
//จากตัวอย่าง set2 จะได้ = 1000
set3 = set2[i] + String(0) + String(0) + String(0);
//ให้ int value2_6 รับค่าการแปลงจาก String set3 เป็น int
//จากตัวอย่าง set3 จะได้ = 1000
value2_6 = set3.toInt();
//ให้ String set3 มีค่า= int set1
set3 = set1 ;
//ให้ int set3_4 รับค่าการแปลงจาก String set3 เป็น int
set3_4 = set3.toInt();
// set3_3 แสดงค่าหลักที่เหลืออีก 3 หลักก่อนที่จะเจอ .(จุด)
//จะได้ 1536 - 1000 = 536
set3_3 = set3_4 - value2_6;
//แปลงค่า set3_3 จากตัวเลขแปลงเป็น String ให้ set3_5 รับไว้ เพื่อนำไปวนค่าหาหลัก 100
set3_5 = String(set3_3);
//วนค่าหาหลัก 100
if (set3_5.length() == 3) {//นับความยาวของ set3_5.length ได้ = 3 หลัก
//วนหาหลักที่ 1 (หลักร้อย)แค่ 1หลักเท่านั้น
for (int i = 0; i < set3_5.length() - (set3_5.length() - 1); i++) {
set3_6 = set3_5[i] + String(0) + String(0);
set3_1 = set3_6.toInt();
}
// int Int1_Data1 แสดงค่าหลักที่เหลืออีก 2 หลักก่อนที่จะเจอ .(จุด)
//จะได้ 536 - 500 = 36
//Int1_Data1 = 36
Int1_Data1 = set3_3 - set3_1;
}
if (set3_5.length() == 2) {// ถ้ารับค่ามาอ่านเป็นหลักสิบ+ทศนิยม
set3_1 = "";
Int1_Data1 = set3_3;
}
// Serial.print("V = ");
Serial.println(V, 1);
// Serial.print("value2_6 = ");
// Serial.println(value2_6);
// Serial.print("set3_3 = ");
// Serial.println(set3_3);
// Serial.print("set3_1 = ");
// Serial.println(set3_1);
// Serial.print("Int1_Data1 = ");
// Serial.println(Int1_Data1);
if (value2_6 == 1000) {
if (value2_6 == 1000 ) {
Tens_digit13();
}
}
if (set3_1 >= 100 and set3_1 <= 900) {
if (set3_1 == 100 || set3_1 == 200 || set3_1 == 300 ||
set3_1 == 400 || set3_1 == 500 || set3_1 == 600 ||
set3_1 == 700 || set3_1 == 800 || set3_1 == 900 ) {
Tens_digit11();
}
}
if (Int1_Data1 > 0 and Int1_Data1 <= 99 ) {
if (Int1_Data1 >= 0 and Int1_Data1 <= 9 ) {
Tens_digit1();
}
if (Int1_Data1 >= 10 and Int1_Data1 <= 19 ) {
Tens_digit2();
}
if (Int1_Data1 >= 20 and Int1_Data1 <= 29 ) {
Tens_digit3();
}
if (Int1_Data1 >= 30 and Int1_Data1 <= 39 ) {
Tens_digit4();
}
if (Int1_Data1 >= 40 and Int1_Data1 <= 49 ) {
Tens_digit5();
}
if (Int1_Data1 >= 50 and Int1_Data1 <= 59 ) {
Tens_digit6();
}
if (Int1_Data1 >= 60 and Int1_Data1 <= 69 ) {
Tens_digit7();
}
if (Int1_Data1 >= 70 and Int1_Data1 <= 79 ) {
Tens_digit8();
}
if (Int1_Data1 >= 80 and Int1_Data1 <= 89 ) {
Tens_digit9();
}
if (Int1_Data1 >= 90 and Int1_Data1 <= 99 ) {
Tens_digit10();
}
}
//ส่วนของหลักทศนิยม 1 ตำแหน่ง
if (value2_2 == 0 || value2_2 == 1 || value2_2 == 2 ||
value2_2 == 3 || value2_2 == 4 || value2_2 == 5 ||
value2_2 == 6 || value2_2 == 7 || value2_2 == 8 ||
value2_2 == 9 ) {
Tens_digit12();
}
}
}//if (countstring == 4)
//------------กรณีรับค่ามาเป็นหลักหน่วย (1 หลัก) เช่น 1.2,0.4-------------------------------------------
if (countstring == 1) {// ถ้า int countstring นับความยาวของ set2.length ได้ = 3 หลัก
Int1_Data1 = set1;
Serial.println(V, 1);
if (Int1_Data1 >= 0 and Int1_Data1 <= 9 ) {
Tens_digit1();
}
//ส่วนของหลักทศนิยม 1 ตำแหน่ง
if (value2_2 == 0 || value2_2 == 1 || value2_2 == 2 ||
value2_2 == 3 || value2_2 == 4 || value2_2 == 5 ||
value2_2 == 6 || value2_2 == 7 || value2_2 == 8 ||
value2_2 == 9 ) {
Tens_digit12();
}
}
}//if (millis() - last_time > delaytime_1)
}//End Loop
void Tens_digit13() {
switch (value2_6) {
case 1000:
myDFPlayer.play(56);
delay(x1);
break;
}
}
void Tens_digit12() {
switch (value2_2) {
case 0:
myDFPlayer.play(57);
delay(x1);
break;
case 1:
myDFPlayer.play(58);
delay(x1);
break;
case 2:
myDFPlayer.play(59);
delay(x1);
break;
case 3:
myDFPlayer.play(60);
delay(x1);
break;
case 4:
myDFPlayer.play(61);
delay(x1);
break;
case 5:
myDFPlayer.play(62);
delay(x1);
break;
case 6:
myDFPlayer.play(63);
delay(x1);
break;
case 7:
myDFPlayer.play(64);
delay(x1);
break;
case 8:
myDFPlayer.play(65);
delay(x1);
break;
case 9:
myDFPlayer.play(66);
delay(x1);
break;
}
}
void Tens_digit11() {
switch (set3_1) {
case 100:
myDFPlayer.play(47);
delay(x1);
break;
case 200:
myDFPlayer.play(48);
delay(x1);
break;
case 300:
myDFPlayer.play(49);
delay(x1);
break;
case 400:
myDFPlayer.play(50);
delay(x1);
break;
case 500:
myDFPlayer.play(51);
delay(x1);
break;
case 600:
myDFPlayer.play(52);
delay(x1);
break;
case 700:
myDFPlayer.play(53);
delay(x1);
break;
case 800:
myDFPlayer.play(54);
delay(x1);
break;
case 900:
myDFPlayer.play(55);
delay(x1);
break;
}
}
void Tens_digit10() {
switch (Int1_Data1) {
case 90:
myDFPlayer.play(37);
delay(x1);
break;
case 91:
myDFPlayer.play(38);
delay(x1);
break;
case 92:
myDFPlayer.play(39);
delay(x1);
break;
case 93:
myDFPlayer.play(40);
delay(x1);
break;
case 94:
myDFPlayer.play(41);
delay(x1);
break;
case 95:
myDFPlayer.play(42);
delay(x1);
break;
case 96:
myDFPlayer.play(43);
delay(x1);
break;
case 97:
myDFPlayer.play(44);
delay(x1);
break;
case 98:
myDFPlayer.play(45);
delay(x1);
break;
case 99:
myDFPlayer.play(46);
delay(x1);
break;
}
}
void Tens_digit9() {
switch (Int1_Data1) {
case 80:
myDFPlayer.play(27);
delay(x1);
break;
case 81:
myDFPlayer.play(28);
delay(x1);
break;
case 82:
myDFPlayer.play(29);
delay(x1);
break;
case 83:
myDFPlayer.play(30);
delay(x1);
break;
case 84:
myDFPlayer.play(31);
delay(x1);
break;
case 85:
myDFPlayer.play(32);
delay(x1);
break;
case 86:
myDFPlayer.play(33);
delay(x1);
break;
case 87:
myDFPlayer.play(34);
delay(x1);
break;
case 88:
myDFPlayer.play(35);
delay(x1);
break;
case 89:
myDFPlayer.play(36);
delay(x1);
break;
}
}
void Tens_digit8() {
switch (Int1_Data1) {
case 70:
myDFPlayer.play(17);
delay(x1);
break;
case 71:
myDFPlayer.play(18);
delay(x1);
break;
case 72:
myDFPlayer.play(19);
delay(x1);
break;
case 73:
myDFPlayer.play(20);
delay(x1);
break;
case 74:
myDFPlayer.play(21);
delay(x1);
break;
case 75:
myDFPlayer.play(22);
delay(x1);
break;
case 76:
myDFPlayer.play(23);
delay(x1);
break;
case 77:
myDFPlayer.play(24);
delay(x1);
break;
case 78:
myDFPlayer.play(25);
delay(x1);
break;
case 79:
myDFPlayer.play(26);
delay(x1);
break;
}
}
void Tens_digit7() {
switch (Int1_Data1) {
case 60:
myDFPlayer.play(7);
delay(x1);
break;
case 61:
myDFPlayer.play(8);
delay(x1);
break;
case 62:
myDFPlayer.play(9);
delay(x1);
break;
case 63:
myDFPlayer.play(10);
delay(x1);
break;
case 64:
myDFPlayer.play(11);
delay(x1);
break;
case 65:
myDFPlayer.play(12);
delay(x1);
break;
case 66:
myDFPlayer.play(13);
delay(x1);
break;
case 67:
myDFPlayer.play(14);
delay(x1);
break;
case 68:
myDFPlayer.play(15);
delay(x1);
break;
case 69:
myDFPlayer.play(16);
delay(x1);
break;
}
}
void Tens_digit6() {
switch (Int1_Data1) {
case 50:
myDFPlayer.play(117);
delay(x1);
break;
case 51:
myDFPlayer.play(118);
delay(x1);
break;
case 52:
myDFPlayer.play(119);
delay(x1);
break;
case 53:
myDFPlayer.play(120);
delay(x1);
break;
case 54:
myDFPlayer.play(1);
delay(x1);
break;
case 55:
myDFPlayer.play(2);
delay(x1);
break;
case 56:
myDFPlayer.play(3);
delay(x1);
break;
case 57:
myDFPlayer.play(4);
delay(x1);
break;
case 58:
myDFPlayer.play(5);
delay(x1);
break;
case 59:
myDFPlayer.play(6);
delay(x1);
break;
}
}
void Tens_digit5() {
switch (Int1_Data1) {
case 40:
myDFPlayer.play(107);
delay(x1);
break;
case 41:
myDFPlayer.play(108);
delay(x1);
break;
case 42:
myDFPlayer.play(109);
delay(x1);
break;
case 43:
myDFPlayer.play(110);
delay(x1);
break;
case 44:
myDFPlayer.play(111);
delay(x1);
break;
case 45:
myDFPlayer.play(112);
delay(x1);
break;
case 46:
myDFPlayer.play(113);
delay(x1);
break;
case 47:
myDFPlayer.play(114);
delay(x1);
break;
case 48:
myDFPlayer.play(115);
delay(x1);
break;
case 49:
myDFPlayer.play(116);
delay(x1);
break;
}
}//void Tens_digit(
void Tens_digit4() {
switch (Int1_Data1) {
case 30:
myDFPlayer.play(97);
delay(x1);
break;
case 31:
myDFPlayer.play(98);
delay(x1);
break;
case 32:
myDFPlayer.play(99);
delay(x1);
break;
case 33:
myDFPlayer.play(100);
delay(x1);
break;
case 34:
myDFPlayer.play(101);
delay(x1);
break;
case 35:
myDFPlayer.play(102);
delay(x1);
break;
case 36:
myDFPlayer.play(103);
delay(x1);
break;
case 37:
myDFPlayer.play(104);
delay(x1);
break;
case 38:
myDFPlayer.play(105);
delay(x1);
break;
case 39:
myDFPlayer.play(106);
delay(x1);
break;
}
}//void Tens_digit(
void Tens_digit3() {
switch (Int1_Data1) {
case 20:
myDFPlayer.play(87);
delay(x1);
break;
case 21:
myDFPlayer.play(88);
delay(x1);
break;
case 22:
myDFPlayer.play(89);
delay(x1);
break;
case 23:
myDFPlayer.play(90);
delay(x1);
break;
case 24:
myDFPlayer.play(91);
delay(x1);
break;
case 25:
myDFPlayer.play(92);
delay(x1);
break;
case 26:
myDFPlayer.play(93);
delay(x1);
break;
case 27:
myDFPlayer.play(94);
delay(x1);
break;
case 28:
myDFPlayer.play(95);
delay(x1);
break;
case 29:
myDFPlayer.play(96);
delay(x1);
break;
}
}//void Tens_digit(
void Tens_digit2() {
switch (Int1_Data1) {
case 10:
myDFPlayer.play(77);
delay(x1);
break;
case 11:
myDFPlayer.play(78);
delay(x1);
break;
case 12:
myDFPlayer.play(79);
delay(x1);
break;
case 13:
myDFPlayer.play(80);
delay(x1);
break;
case 14:
myDFPlayer.play(81);
delay(x1);
break;
case 15:
myDFPlayer.play(82);
delay(x1);
break;
case 16:
myDFPlayer.play(83);
delay(x1);
break;
case 17:
myDFPlayer.play(84);
delay(x1);
break;
case 18:
myDFPlayer.play(85);
delay(x1);
break;
case 19:
myDFPlayer.play(86);
delay(x1);
break;
}
}//void Tens_digit(
void Tens_digit1() {
switch (Int1_Data1) {
case 0:
myDFPlayer.play(67);
delay(x);
break;
case 1:
myDFPlayer.play(68);
delay(x);
break;
case 2:
myDFPlayer.play(69);
delay(x);
break;
case 3:
myDFPlayer.play(70);
delay(x);
break;
case 4:
myDFPlayer.play(71);
delay(x);
break;
case 5:
myDFPlayer.play(72);
delay(x);
break;
case 6:
myDFPlayer.play(73);
delay(x);
break;
case 7:
myDFPlayer.play(74);
delay(x);
break;
case 8:
myDFPlayer.play(75);
delay(x);
break;
case 9:
myDFPlayer.play(76);
delay(x);
break;
}
}//void Tens_digit(