Помогите пожалуйста написать прошивку для Arduino проекта. К портам 0 и 1 подключен DFPlayer Mini, К портам 8,9,10,11 - кнопки. При нажатии кнопок должны воспроизводиться аудиофайлы, 0-3, 4-8, 9-13, 14-20 соответственно.
Теме место в коммерческом разделе. Перенести?
коммерческом? почему?
Вы же не думаете, что кто-то будет писать за вас код бесплатно?
не поспоришь.
1 лайк
Тут принято помогать тем, кто хоть как-то СТАРАЕТСЯ написать код САМ. Всех халявщиков отправляют в платный раздел. Точка.
4 лайка
И еще: постарайтесь внятно описать задачу.
Например, Ваше описание не позволяет ответить на вопросы:
- Что именно должно происходить при нажатии на кнопку 9?
- Что должно происходить при отпускании кнопки 9 при проигрывании мелодии?
- Что должно происходить, если кнопку 9 отпустить после завершения мелодии?
- Что должно происходить, если кнопку 9 нажать во время проигрывания мелодии?
- Что должно происходить, если нажать кнопку 10 во время проигрывания мелодии (мелодия - по кнопке 9)?
- Мелодии должны проигрываться однократно или циклично?
Пишите на почту 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); // Задержка между воспроизведениями (можно настроить)
}
}
Тебе - нет. Ты и сам шибко вумный
1 лайк