Pessoal, boa tarde.
Adquiri este modulo recentemente, e estou tendo alguma duvidas para comanda-lo. Quero comanda lo pela serial. A unica documentação que achei na internet é um codigo exemplo conforme descrito abaixo:
Minha dúvida por exemplo, qual comando necessito dar para aumentar e abaixar o volume do audio, dar um stop, selecionar qual musica toca e etc... Basicamente são esses comandos que preciso, mas quero entender também qual é a logica para a execução dos outros comando. Além do codigo, estou postando o datasheet do mesmo. Obrigado desde já.
Tags:
As respostas para este tópico estão encerradas.
Obrigado.
Obrigado José, mas estou utilizando o Esp32 e no caso a biblioteca softwareserial não poderia ser utilizada por ser incompativel. Estou utilizando a Hardwareserial. E o codigo informado é o mesmo que estou utilizando, somente alterando esses detalhes e nele não informa como abaixa e aumenta o volume. Valeu
Engano, o ESP32 pode fazer sim Software Serial, portanto a biblioteca indicada pelo Murta funciona perfeitamente com ESP32.
https://www.arduino.cc/reference/en/libraries/espsoftwareserial/
Referência da Casa: https://labdegaragem.com/forum/topics/softwareserial-com-esp32
Desejo-lhe uma Boa Codificação!
Ok, não tinha utilizado desta forma, mas a questão não é de que forma usar a serial. Estou conseguindo conversar com o modulo. ele le e informa qtas faixas tem no cartão, executa o play. Não estou conseguindo fazer o volume funcionar. Obrigado
Como o RV disse:
"Por exemplo, para baixar o volume vc tem que enviar o comando 0xAA 0x14 0x00 0xBF e para aumentar o volume tem que enviar o comando 0xAA 0x14 0x00 0xBE."
Portanto o código deve declarar essas duas sequencias de bytes e enviá-las ao módulo via porta serial.
Já tentou colocar no seu código:
Serial1.write(volPlus, sizeof(volPlus)); // aumenta o volume um passo
Serial1.write(volMinus, sizeof(volMinus)); // reduz o volume um passo
Certo, vou tentar. mas ele tem a faixa de volume de 0 a 30. Se eu quiser colocar no volume 20, teria como já colocar esse valor direto ou outro qualquer? Obrigado
O código que vai colocar em um volume de 0 a 30 diretamente é:
void ajustaVolumeMP3(uint8_t novoVol) {
static byte cmdVol[] = {0xAA, 0x13, 0x01, 0x00, 0x00}; // {0xAA, 0x13, 0x01, VOL, SM} VOL: 0 a 30, SM: "checkSum" do pacote
if (novoVol > 30) novoVol = 30; // vol max permitido 30
cmdVol[3] = novoVol; // coloca novo volume no pacote
cmdVol[4] = ( cmdVol[0] + cmdVol[1] + cmdVol[2] + cmdVol[3] ); // calcula SM
Serial1->write(cmdVol, sizeof(cmdVol)); // envia o comando via Serial1
}
Obrigado, mas a minha duvida é como sera essa linha no codigo. Tentei da forma que v falou, mas não acontece nada. Obrigado
Boa tarde, o meu codigo ´exatamente o do Gustavo. Só fiz algumas alterações pois estou utilizando o Esp32. A unica alteração foi retirar a Biblioteca SoftwareSerial e incluir a HardwareSerial. Obrigado
Boa noite Ney,
No Datasheet que você enviou , veja os comandos de volume na pagina 6
Para registrar aqui tembém, o que respondi anteriormente:
O código que vai colocar em um volume de 0 a 30 diretamente é:
void ajustaVolumeMP3(uint8_t novoVol) {
static byte cmdVol[] = {0xAA, 0x13, 0x01, 0x00, 0x00}; // {0xAA, 0x13, 0x01, VOL, SM} VOL: 0 a 30, SM: "checkSum" do pacote
if (novoVol > 30) novoVol = 30; // vol max permitido 30
cmdVol[3] = novoVol; // coloca novo volume no pacote
cmdVol[4] = ( cmdVol[0] + cmdVol[1] + cmdVol[2] + cmdVol[3] ); // calcula SM
Serial1->write(cmdVol, sizeof(cmdVol)); // envia o comando via Serial1
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues.
Ativado por