Управление DFPlayer mini через Ардуино ШИМ

sharkman89
Offline
Зарегистрирован: 05.01.2018

Добрый день. Уже практически закончил делать танковый бой на ардуино Mega 2560 PRO Mini ,   изначально запланировал осуществить звуковое сопровождение событий( езда, поворот башни, выстрел…) с помощью DFPlayer mini. К сожалению нет возможности воспроизведения двух звуков одновременно, по этому решил использовать два плеера.  Для управления плеерами  через ардуино я занимаю два серийных порта, что приводит к значительному замедлению отклика танка на манипуляции с джойстиком.

DFPlayer mini имеет возможность работы без Ардуино, с помощью изменения напряжения на ADKEY_1; ADKEY_2  выводах.

На ADKEY_1 присутствует напряжение 3.3 вольта , подключил по схеме Расширенный способ (Максимальный функционал):

При R2 на ADKEY_1 напряжение составляет 0,44V (включается звуковой файл 0002)

При R3 - 0,8V44V (включается звуковой файл 0003)

При R7 – 1,95V( пауза/воспроизведение)

Подключил  ADKEY_1 к ШИМ пину 6, пробую разные напряжения результат один(включается файл 0001).

Есть подозрение что DFPlayer не воспринимает ШИМ сигнал, нужен постоянный ток.

Может кто то уже делал подобное или просто имеет соображения по решению этого вопроса, буду рад любой помощи!

 

rkit
Offline
Зарегистрирован: 23.11.2016

sharkman89 пишет:

Для управления плеерами  через ардуино я занимаю два серийных порта, что приводит к значительному замедлению отклика танка на манипуляции с джойстиком.

бред

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Какой ф шопу ШИМ? Логический ноль и единица.

Учи матчасть, студент!

sharkman89
Offline
Зарегистрирован: 05.01.2018

Очередной раз убеждаюсь, что ответы пишет кучка имбицилов. Ваще огонь ответы))) "Бред, учи матчасть". Если такие ответы получаешь в разделе для новичков... Что у ж в других разделах тварится? Общение ИО?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

sharkman89 пишет:
Очередной раз убеждаюсь, что ответы пишет кучка имбицилов.

Очередной раз убеждаюсь, что вопросы пишет кучка имбицилов. Сколько не пиши инструкций для вопрошающих, всегда найдётся деятель, публикующий вопрос без скетча, схемы и вообще без ничего и качающий права, что ему не кошерно отвечают.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

sharkman89 пишет:
Очередной раз убеждаюсь, что ответы пишет кучка имбицилов. Ваще огонь ответы))) "Бред, учи матчасть". Если такие ответы получаешь в разделе для новичков... Что у ж в других разделах тварится? Общение ИО?

Ой!

Ну я прямо охренел от Ваших имбицилизмов.

УЧИТЕ матчасть! Изучайте даташит.

И в очередной раз убеждайтесь в своей безграмонотности...

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

А, сцуко, помогу - подключите порты к универсальным выходам контроллера. Он ("вход-выход") сам поймёт чего делать.

А схема устройства желательна. Очень просто ошибится в раскладке схемы.

И не напрягайтесь - мы все тут программисты :)

sharkman89
Offline
Зарегистрирован: 05.01.2018

Я правильно вас понял, вы говорите о TX/RX?

sharkman89
Offline
Зарегистрирован: 05.01.2018

Возможно я был слишком груб, но к сожалению добиться здесь помощи бывает очень сложно. По поводу скетча...

Это код который включает 2ва DF плеера вместе, потом поочередно. Использую Mega 2560 pro.

#include <DFPlayerMini_Fast.h>



DFPlayerMini_Fast myMP3_1;
DFPlayerMini_Fast myMP3_2;
void setup()
{

  Serial2.begin(9600);
  Serial3.begin(9600);

  myMP3_1.begin(Serial2);
  myMP3_2.begin(Serial3);

  myMP3_1.volume(20);
  myMP3_2.volume(20);




}

void loop()
{
  myMP3_1.play(1);
  myMP3_2.play(1);
  delay(2000);

  myMP3_1.play(1);
   myMP3_2.pause();
  delay(2000);

  myMP3_2.play(1);
     myMP3_1.pause();
  delay(2000);
}

так всё работает! 

Но я хочу запускать DF player  без Serial.

Именно с этим вопросом сюда и обратился.  

это скетч который выдает на 6 пине напряжение 0.8 вольт, что соответствует напряжению в цепи при замкнутом резисторе R3. Результат описал в первом посте. 

int sensorValue = 54 ;
unsigned long previousMillis = 0;
const long interval = 1000;

void setup()
{
}

void loop() {
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval)
  {
    analogWrite(6 , sensorValue);
    previousMillis = currentMillis;
  }
}

b707
Offline
Зарегистрирован: 26.05.2017

вы сами написали в первом посте, что ШИМ не подходит. И правильно написали. Для управления нужно постоянное напряжение 0.8в, а не ШИМ.

Либо ставьте интегрирующую цепочку, либо используйте внешний ЦАП.

 

А лучше поучитесь нормально программировать, чтобы управление плеерами по сериал не подвешивало остальные процессы. Причина этих тормозов - однозначно в кривом коде.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

sharkman89 пишет:

Возможно я был слишком груб, но к сожалению добиться здесь помощи бывает очень сложно. 

Добиваться помощи - это нонсенс.

О помощи принято просить.