Что б народ не офигивал. Промучился долго. Потому что в коде нуб. Но вроде получилось. Работает инфрокрасник, рандом, играет целиком. Есть только проблема. Затыкается после нескольких секунд работы. Не всегда. ХЗ с чем это связанно. Гуру ляньте пожалуйста. После нажатия Reset играет несколько секунд и затыкается.
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
#include <IRremote.h>
SoftwareSerial mySerial(10, 11); // RX, TX DF Плеера
int vol = 30; // Громкость
int RECV_PIN = 2; //Пин для подключения IR датчика D2
int on = 0;
unsigned long last = millis();
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup () {
mySerial.begin (9600);
irrecv.enableIRIn();
pinMode(13, OUTPUT);
mp3_set_serial (mySerial); //Работаем с "Софтовым" портом
delay (10);
mp3_set_EQ (3); // Эквалайзер
}
void loop () {
bool InputD4 = (digitalRead (4));
boolean play_state = digitalRead(3);// Кнопка на прерывании D3
if (InputD4 == HIGH) { // Читаем порт 4, закончился ли играть трек
if (play_state == LOW) {
digitalWrite(13, HIGH);
delay (10);
mp3_random_play ();
delay (10);
}
}
ir();
if (play_state == LOW) {
delay (10);
}
delay (10);
mp3_set_volume (vol);
}
void ir () {
if (irrecv.decode(&results)) {
if (millis() - last > 250) {
on = !on;
digitalWrite(13, on ? HIGH : LOW);
vol = (vol, on ? 30 : 0);
}
last = millis();
irrecv.resume();
}
}
Походу решил я свою проблему. Судя по всему проблема была из за флешки. Заменил с 2 гб на 64 мб. Залил мелодии от 30 сек до 1 мин и все норм. Смысла не вижу ставить огромную флешку. Закинул пока 16 трэков 15мег. Еще даже половину не истратил. А функцию FADE реализовал засчет правки самого файла в конце. Затуханием в любой подобной программе. Я делал в ACID Music Studio 10.0. Всем удачи. Всем спасибо.