Есть проект на основе этого http://forum.amperka.ru/threads/Вкл...аботанному-датчику-7-датчиков-7-треков.16555/ но алгоритм воспроизведения немного иной Задача: Дописать скетч с этим условием На данный момент собран макет, треки по номеру датчика воспроизводит Код (C++): #include <SoftwareSerial.h> #include <DFPlayer_Mini_Mp3.h> // https://github.com/DFRobot/DFPlayer-Mini-mp3 const byte pin[7] = {3, 4, 5, 7, 9, 11, 12}; // пины с датчиками const byte track[7] = {0001, 0002, 0003, 0004, 0005, 0006, 0007}; // номера треков. На карте памяти треки должны быть в папке mp3 boolean pinOldState[7] = {0, 0, 0, 0, 0, 0}; // предыдущее состояние датчиков void setup() { for (byte i = 0; i < 7; i++) pinMode(pin[i], INPUT_PULLUP); for (byte i = 0; i < 7; i++) (!digitalRead(pin[i])); // запоминаем состояние датчиков Serial.begin(9600); mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module mp3_set_volume (30); // задаем громкость delay (6000); // для загрузки плеера } void loop() { for (byte i = 0; i < 7; i++) { boolean state = !digitalRead(pin[i]); if (state != pinOldState[i]) { pinOldState[i] = state; if (state) mp3_play(track[i]); } } }
Проводок к ножке BUSY, с нее считывать состояние плеера, играет или нет. Если речь идет о китайских DfMini, то у них другой обратной связи нет.
можно и без обратной связи. например после включения любого трека запрещать включение треков на время, за которое любой трек гарантированно закончится.