Нужна помощь со скетчем

nekromant
Offline
Зарегистрирован: 07.04.2018

нужна помощь в написании скетча для моей схемы

Алгоритм работы:

Сработал Door1 а затем Door2 начинается воспроизведение аудиофайла
Если срабатывает Door3 потом Door2 то воспроизведение не включается
Но запоминается было ли после этого срабатывание Door1 и  если Door1 сработал то ожидается сработка  Door2 (включается воспроизведение) или Door3 (состояние Door1 обнуляется и ожидается повторная сработка Door1).

Кнопки нормально замкнутые срабатывают на размыкание.

#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>

const uint8_t Door1 = 3;  // желтый 
const uint8_t Door2 = 4;  // зеленый
const uint8_t Door3 = 5;  // синий

void setup() {
  pinMode(Door1, INPUT);
  pinMode(Door2, INPUT);
  pinMode(Door2, INPUT);
  Serial.begin (9600);
   mp3_set_serial (Serial);    //set Serial for DFPlayer-mini mp3 module 
   delay (500);
  mp3_set_volume (10);

}

void loop() {
     
}

Gas311
Gas311 аватар
Offline
Зарегистрирован: 06.12.2018

Схема несложная

vvadim
Offline
Зарегистрирован: 23.05.2012
karamzin01
Offline
Зарегистрирован: 08.03.2018

Предложу Лучший вариант - maslachenko767@mail.ru

DrProg
Offline
Зарегистрирован: 07.08.2015

Признайтесь, у кого DFPlayer Mini дрыгает ножкой TX? Все его зачем-то тянут к контроллеру, но я пока ни разу не видел обратной связи.

Gas311
Gas311 аватар
Offline
Зарегистрирован: 06.12.2018

Порядок есть порядок. Раз ТХ есть, должен быть подключен. Как ружьё на стене в театре. 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

У меня дрыгал, а как иначе определить статус источников (есть-нет) ? Или состояние проигрывания... Ну как узнать то, что песня закончилась ? 

DrProg
Offline
Зарегистрирован: 07.08.2015

По ножке BUSY.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

DrProg пишет:
По ножке BUSY.

Да ладно.... И по ней можно отличить играет счаз музыка или просто вынули SD ?

DrProg
Offline
Зарегистрирован: 07.08.2015

Зачем выдергивать SD?
Ваши плееры где покупаете и почем?

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

DrProg пишет:
Зачем выдергивать SD? Ваши плееры где покупаете и почем?

Очень странные вопросы :)

Ответ на первый - что бы записать на SD что то иное, сменить диск, да мало ли зачем. 

На второй отвечать не вижу смысла, ибо не понимаю его мотивацию.

DrProg
Offline
Зарегистрирован: 07.08.2015

Во время работы зачем SD выдергивать? Считается, что он там есть и записи на месте.

Китайские плееры рублей около 50 на Али, ножкой TX не дрыгают, потому и спрашиваю, почем ваши?

nekromant
Offline
Зарегистрирован: 07.04.2018

Что то такое получилось. Вроде работает

#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>

const uint8_t Door1 = 3;  // Кнопка первой двери (желтый 
const uint8_t Door2 = 4;  // Кнопка второй двери (зеленый
const uint8_t Door3 = 5;  // Кнопка третьей двери (синий
int flag=0;  // Переменная значения кнопки Door1

void setup() {
  pinMode(Door1, INPUT);
  pinMode(Door2, INPUT);
  pinMode(Door2, INPUT);

  Serial.begin (9600);
   mp3_set_serial (Serial);    //set Serial for DFPlayer-mini mp3 module 
   delay (500);
  mp3_set_volume (10);
 
}

void loop() {
  
if(digitalRead(Door1)==HIGH)
{            
flag=1;
      } 

if(digitalRead(Door2)==HIGH&&flag==1)
{
  mp3_play (1);
  flag=0;
}

if(digitalRead(Door3)==HIGH&&flag==1)
{
  flag=0;                                    
  }
          
}

 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

DrProg пишет:
Во время работы зачем SD выдергивать? Считается, что он там есть и записи на месте. Китайские плееры рублей около 50 на Али, ножкой TX не дрыгают, потому и спрашиваю, почем ваши?

Да столько же... Вы бы лучше повнимательнее даташит на них почитали.... Я плохо помню, а там это дело как то командой или конфигурацией ног, часом, не включается ли....

Ну вот в даташите же написано 5 байт в пакете - фидбек, если он 0, то ответа от плеера не будет, а если 1 , то будет ответ.... В общем все как всегда.... Небось библиотеки юзаете, а даташит ни разу не открывали ?

DrProg
Offline
Зарегистрирован: 07.08.2015

Я библиотеки отмел сразу, когда с этим модулем столкнулся, года три назад или четыре. Написал собственные функции на основании даташита, потому что библиотечные глючили и меня не устраивали. С ними и работаю. Там делов то на десяток строк.

Gas311
Gas311 аватар
Offline
Зарегистрирован: 06.12.2018

согласен

DrProg
Offline
Зарегистрирован: 07.08.2015

В них вообще много что через Ж. Наверное, потому что китайские подделки, не знаю. Например, номер трека к его названию никакого отношения не имеет, можно называть цифрами, можно буквами, первый будет тот, что физически записан первым на флешку. Второй вторым и так далее. Многих это ставит в ступор.

sadman41
Offline
Зарегистрирован: 19.10.2016

DrProg пишет:

Например, номер трека к его названию никакого отношения не имеет, можно называть цифрами, можно буквами, первый будет тот, что физически записан первым на флешку. Второй вторым и так далее. Многих это ставит в ступор.

Многие не читали вдумчиво даташиты на DFPlayer (а их несколько штук). Вопросы именования файлов действительно запутанные, но, тем не менее, логика прослеживается: для одной команды имеет значение последовательность записи на флешку, для другой - имя файла. Имя должно начинаться с цифер, потом можно любые буквы ставить. Даже китайские.