Помогите написать прошивку

Помогите пожалуйста написать прошивку для Arduino проекта. К портам 0 и 1 подключен DFPlayer Mini, К портам 8,9,10,11 - кнопки. При нажатии кнопок должны воспроизводиться аудиофайлы, 0-3, 4-8, 9-13, 14-20 соответственно.

Теме место в коммерческом разделе. Перенести?

коммерческом? почему?

Вы же не думаете, что кто-то будет писать за вас код бесплатно?

не поспоришь.

1 лайк

Тут принято помогать тем, кто хоть как-то СТАРАЕТСЯ написать код САМ. Всех халявщиков отправляют в платный раздел. Точка.

4 лайка

И еще: постарайтесь внятно описать задачу.
Например, Ваше описание не позволяет ответить на вопросы:

  1. Что именно должно происходить при нажатии на кнопку 9?
  2. Что должно происходить при отпускании кнопки 9 при проигрывании мелодии?
  3. Что должно происходить, если кнопку 9 отпустить после завершения мелодии?
  4. Что должно происходить, если кнопку 9 нажать во время проигрывания мелодии?
  5. Что должно происходить, если нажать кнопку 10 во время проигрывания мелодии (мелодия - по кнопке 9)?
  6. Мелодии должны проигрываться однократно или циклично?

Пишите на почту wizard-sen@yandex.ru напишу прошивку

GPT чат с этим легко справится)

Флаг ему в руки ))

v258
а вы тут помогаете править код после гэпете ?
или только новичкам, и если сами новички код писали ?

#include <SoftwareSerial.h>
#include <DFRobotDFPlayerMini.h>

SoftwareSerial mySerial(0, 1); // RX, TX
DFRobotDFPlayerMini myDFPlayer;

const int buttonPins[] = {8, 9, 10, 11}; // Пины кнопок
const int numButtons = sizeof(buttonPins) / sizeof(buttonPins[0]);
int audioFiles[][2] = {
  {0, 3},   // Кнопка 1: файлы 0-3
  {4, 8},   // Кнопка 2: файлы 4-8
  {9, 13},  // Кнопка 3: файлы 9-13
  {14, 20}  // Кнопка 4: файлы 14-20
};

void setup() {
  mySerial.begin(9600);
  Serial.begin(9600);
  
  if (!myDFPlayer.begin(mySerial)) {
    Serial.println("DFPlayer не найден");
    while (true);
  }
  
  myDFPlayer.volume(10); // Установите громкость (0-30)
  
  for (int i = 0; i < numButtons; i++) {
    pinMode(buttonPins[i], INPUT_PULLUP); // Настройка кнопок
  }
}

void loop() {
  for (int i = 0; i < numButtons; i++) {
    if (digitalRead(buttonPins[i]) == LOW) { // Если кнопка нажата
      playAudioFiles(i);
      delay(300); // Задержка для предотвращения дребезга
    }
  }
}

void playAudioFiles(int buttonIndex) {
  int startFile = audioFiles[buttonIndex][0];
  int endFile = audioFiles[buttonIndex][1];
  
  for (int fileNum = startFile; fileNum <= endFile; fileNum++) {
    myDFPlayer.play(fileNum + 1); // DFPlayer Mini использует индексацию с 1
    delay(1000); // Задержка между воспроизведениями (можно настроить)
  }
}

Тебе - нет. Ты и сам шибко вумный :wink:

1 лайк