Форум ModelldepO  

Вернуться   Форум ModelldepO > Для новичков > ЧАВО
ЧАВО Часто задаваемые вопросы

Ответ
 
Опции темы Опции просмотра
Старый 01.07.2021, 22:13   #1
artemiyyy
Новичок
 
Регистрация: 01.07.2021
Адрес: Челябинск
Сообщений: 1
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: пока неопределено (0)
Вопрос Проблема с плеером grove mp3 v3

Пытаюсь подключить Grove MP3 V3 к Ардуино леонардо. Беру код с официального сайта производителя, ничего не работает. Но один аудиофайл воспроизводится при нажатии кнопки перезапуска на плеере, он работает. Библиотеки подключены. Плата и порт выбраны.

Код:

Скрытый текст

#include "WT2003S_Player.h"



#ifdef __AVR__

#include <SoftwareSerial.h>

SoftwareSerial SSerial(2, 3); // RX, TX

#define COMSerial SSerial

#define ShowSerial Serial



WT2003S<SoftwareSerial> Mp3Player;

#endif



#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE

#define COMSerial Serial1

#define ShowSerial SerialUSB



WT2003S<Uart> Mp3Player;

#endif



#ifdef ARDUINO_ARCH_STM32F4

#define COMSerial Serial

#define ShowSerial SerialUSB



WT2003S<HardwareSerial> Mp3Player;

#endif





uint8_t vol = 10;

uint32_t spi_flash_songs = 0;

uint32_t sd_songs = 0;

STROAGE workdisk = SD;

struct Play_history {

uint8_t disk;

uint16_t index;

char name[8];

}* SPISong, *SDSong;



void readSongName(struct Play_history* ph, uint32_t num, STROAGE disk) {

Mp3Player.volume(0);

delay(100);

switch (disk) {

case SPIFLASH:

Mp3Player.playSPIFlashSong(0x0001);

break;

case SD:

Mp3Player.playSDRootSong(0x0001);

break;

case UDISK:

Mp3Player.playUDiskRootSong(0x0001);

break;

}

ShowSerial.println("2...");

for (int i = 0; i < num ; i++) {

delay(300);

ph[i].disk = disk;

ph[i].index = Mp3Player.getTracks();

Mp3Player.getSongName(ph[i].name);

Mp3Player.next();

}

ShowSerial.println("4...");

Mp3Player.pause_or_play();

Mp3Player.volume(14);

delay(100);

}



void getAllSong() {

uint8_t diskstatus = Mp3Player.getDiskStatus();

ShowSerial.println(diskstatus);

spi_flash_songs = Mp3Player.getSPIFlashMp3FileNumber();

ShowSerial.print("SPIFlash:");

ShowSerial.println(spi_flash_songs);

if (spi_flash_songs > 0) {

SPISong = (struct Play_history*)malloc((spi_flash_songs + 1) * sizeof(struct Play_history));

readSongName(SPISong, spi_flash_songs, SPIFLASH);

}

if (diskstatus && 0x02) { // have SD

sd_songs = Mp3Player.getSDMp3FileNumber();

ShowSerial.print("SD:");

ShowSerial.println(sd_songs);

if (sd_songs > 0) {

SDSong = (struct Play_history*)malloc((sd_songs + 1) * sizeof(struct Play_history));

ShowSerial.println("1...");

readSongName(SDSong, sd_songs, SD);

}

}

}

void printSongs() {

ShowSerial.print("-------------------");

ShowSerial.print("index");

ShowSerial.print("<-------->");

ShowSerial.print("name");

ShowSerial.print("-------------------");

ShowSerial.println();

ShowSerial.println("-------------------spi flash-------------------------------");

for (int i = 0 ; i < spi_flash_songs; i++) {

ShowSerial.print("-------------------");

ShowSerial.print(SPISong[i].index);

ShowSerial.print("<-------->");

ShowSerial.print(SPISong[i].name);

ShowSerial.print("-------------------");

ShowSerial.println();

}

ShowSerial.println("-------------------sd card-------------------------------");

for (int i = 0 ; i < sd_songs; i++) {

ShowSerial.print("-------------------");

ShowSerial.print(SDSong[i].index);

ShowSerial.print("<-------->");

ShowSerial.print(SDSong[i].name);

ShowSerial.print("-------------------");

ShowSerial.println();

}

}



void setup() {

while (!ShowSerial);

ShowSerial.begin(9600);

COMSerial.begin(9600);

ShowSerial.println("++++++++++++++++++++++++++++++ +++++++++++++++++++++++");

Mp3Player.init(COMSerial);



ShowSerial.println("0...");

getAllSong();

printMenu();

printSongs();

}



void loop() {

if (ShowSerial.available()) {

char cmd = ShowSerial.read();

switch (cmd) {

case '+': {

ShowSerial.print("Volume up: ");

vol = Mp3Player.getVolume();

Mp3Player.volume(++vol);

ShowSerial.print(vol);

ShowSerial.println();

break;

}

case '-': {

ShowSerial.print("Volume down: ");

vol = Mp3Player.getVolume();

if (--vol > 31) {

vol = 0;

}

Mp3Player.volume(vol);

ShowSerial.print(vol);

ShowSerial.println();

break;

}

case 't': {

uint8_t status;

ShowSerial.print("status:");

status = Mp3Player.getStatus();

if (status == 0x01) {

ShowSerial.print("playing");

}

if (status == 0x02) {

ShowSerial.print("stop");

}

if (status == 0x03) {

ShowSerial.print("pause");

}

ShowSerial.println();

break;

}

case 'n': {

Mp3Player.next();

break;

}

case 'p': {

Mp3Player.pause_or_play();

break;

}

case 'w': {

Mp3Player.playMode(SINGLE_SHOT);

break;

}

case 'x': {

Mp3Player.playMode(SINGLE_CYCLE);

break;

}

case 'y': {

Mp3Player.playMode(CYCLE);

break;

}

case 'z': {

Mp3Player.playMode(RANDOM);

break;

}

case 'c': {

ShowSerial.print(Mp3Player.copySDtoSPIFlash());

break;

}

case '1':

case '2':

case '3':

case '4':

case '5':

case '6':

case '7':

case '8':

case '9':

ShowSerial.print("play:");

if (workdisk == SD) {

Mp3Player.playSDRootSong(cmd - '0' - 1);

ShowSerial.print(cmd + ": ");

ShowSerial.print(SDSong[cmd - '0'].name);

}

if (workdisk == SPIFLASH) {

Mp3Player.playSPIFlashSong(cmd - '0' - 1);

ShowSerial.print(cmd + ": ");

ShowSerial.print(SPISong[cmd - '0'].name);

}

ShowSerial.println();

break;

default:

break;

}

}

}



void printMenu(void) {

ShowSerial.println("MP3 Command List:");

ShowSerial.println("-----------------");

ShowSerial.println("'+' or '-' : raise/lower volume");

ShowSerial.println("'1' ~ '9' : select a song");

ShowSerial.println("'n' : next song");

ShowSerial.println("'s' : switch play disk, spi flash");

ShowSerial.println("'p' : play or pause");

ShowSerial.println("'w' : set playmode single no loop");

ShowSerial.println("'x' : set playmode single loop");

ShowSerial.println("'y' : set playmode all loop");

ShowSerial.println("'z' : set playmode random");

ShowSerial.println("'c' : Copy mp3 to SPIFlash");

ShowSerial.println(" (Yes, this really does go by copy order.)");

ShowSerial.println();

ShowSerial.println("Any other key to show this menu");

ShowSerial.println();

}

Последний раз редактировалось pandrey; 02.07.2021 в 17:09.
artemiyyy вне форума   Вверх
Старый 02.07.2021, 17:24   #2
Rebel
Местный
 
Аватар для Rebel
 
Регистрация: 22.11.2010
Адрес: Москва
Сообщений: 3,038
Сказал(а) 'не согласен(а)'!: 4
Сказали 'не согласен'! 29 раз(а) в 19 сообщениях
Сказал(а) спасибо: 1,707
Поблагодарили 1,646 раз(а) в 830 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1681)
По умолчанию

вы форумом не ошиблись?

Цитата:
— Здравствуйте, это канал об аниме?
— Да.
— Как мне пропатчить KDE2 под FreeBSD?
__________________
🎉 мой канал в телеграм @aleksandr_ru_blog
Rebel вне форума   Вверх
Старый 02.07.2021, 19:46   #3
tabun
tabun
 
Аватар для tabun
 
Регистрация: 25.02.2013
Адрес: Геленджик
Сообщений: 1,764
Сказал(а) 'не согласен(а)'!: 33
Сказали 'не согласен'! 12 раз(а) в 11 сообщениях
Сказал(а) спасибо: 8,873
Поблагодарили 2,704 раз(а) в 763 сообщениях
Репутация: репутация неоспорима (2699)
По умолчанию

Может, чувак вокзал хочет озвучить? )))
tabun вне форума   Вверх
Старый 05.07.2021, 11:05   #4
BR95009
Brocken-Meister
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: !Msk
Сообщений: 8,618
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 110 раз(а) в 87 сообщениях
Сказал(а) спасибо: 7,024
Поблагодарили 9,323 раз(а) в 3,311 сообщениях
Репутация: репутация неоспорима (9364)
По умолчанию

Надо просто в раздел Ардуино перевести.
__________________
H0 - DR/DB, Ep.III, G и H0m - HSB, Н0е - DR/ÖBB/Zillertalbahn Ep.V-VI. И эночка.
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума   Вверх
Ответ

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема McSIM Электрика и DCC 20 18.05.2020 21:17
Проблема с локомотивом Andrzej НО (1:87) 14 29.11.2014 18:53
Проблема с мотором stvol2000 Электрика и DCC 23 12.07.2014 15:32
Проблема с управлением. igorshajter ЧАВО 1 13.02.2012 11:06
Проблема с декодером! franzzz Электрика и DCC 10 06.01.2012 12:33


Текущее время: 13:08. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
Copyright © ModelldepO.ru 2006 -