code
نسخ
اقتباس
عرض
تنزيل
#include <SoftwareSerial.h>
#include <DFRobotDFPlayerMini.h>
SoftwareSerial mySerial(10, 11); // DF(RX)==> D11 , DF(TX)==> D10
DFRobotDFPlayerMini myDFPlayer;
const int buttonPins[9] = {2, 3, 4, 5, 6, 7, 8, 9,12};
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
if (!myDFPlayer.begin(mySerial)) {
Serial.println("DFPlayer not responding.");
while (true);
}
myDFPlayer.volume(30); // مستوى الصوت (0 إلى 30)
for (int i = 0; i < 9; i++) {
pinMode(buttonPins[i], INPUT_PULLUP);
}
Serial.println("Ready");
}
int next=1;
void loop() {
for (int i = 0; i < 9; i++) {
if (digitalRead(buttonPins[i]) == LOW) {
Serial.print("Button pressed: "); Serial.println("D" +String(buttonPins[i]));
if(buttonPins[i]==12)
{
if(next==1)next=9;
else if (next==9)next=1;
Serial.println("next" +String(next));
delay(3000);
}
else
{
Serial.print("Should play file: ");
int track_num=i+next;
Serial.println(track_num);
myDFPlayer.play(track_num); //
delay(1500); //
}
}
}
}
/*
ملاحظة هامة جدا:
الملفات الصوتية ننسخها الى ذاكرة SD card بالترتيب الذي نريده ان يعمل لانه في كود التشغيل يتعامل مع الملفات حسب ترتيبها وقت النسخ وليس حسب الاسم ،، اي انه يشغل ملف 1 و2 و3 حسب ترتيب النسخ والاسم لا يهم نهائيا
*/