8
					
						
						« : 08 Октября 2020, 21:59:07 »
					 
					
					Что б народ не офигивал. Промучился долго. Потому что в коде нуб. Но вроде получилось. Работает инфрокрасник, рандом, играет целиком. Есть только проблема. Затыкается после нескольких секунд работы. Не всегда. ХЗ с чем это связанно. Гуру ляньте пожалуйста. После нажатия 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. Всем удачи. Всем спасибо.