не могу соединить все вместе (

genia1991
Offline
Зарегистрирован: 25.12.2019

скачал библиотеку для воспроизведения wav файла.

работает нормально. но как только пытаюсь еще и открыть файл txt любой. не получается.

Видимо эта библиотека постоянно держит SD карту занятой.

можно ли паралельно еще открывать и txt файлы?

#include <SD.h>                      // need to include the SD library
#include <SPI.h>
#define SD_ChipSelectPin 10  //using digital pin 4 on arduino nano 328, can use other pins

#include <TMRpcm.h>           //  also need to include this library...
//#include <pcmConfig.h>
TMRpcm tmrpcm;   // create an object for use in this sketch


void setup(){

  tmrpcm.speakerPin = 9; //5,6,11 or 46 on Mega, 9 on Uno, Nano, etc

  Serial.begin(115200);
  if (!SD.begin(SD_ChipSelectPin)) {  // see if the card is present and can be initialized:
    Serial.println("SD fail");  
    return;   // don't do anything more if not

  }
  else{   
    Serial.println("SD ok");   
  }

}



void loop(){  
  
    if(Serial.available()){    
    switch(Serial.read()){
      
    case 'd': tmrpcm.play("music.wav"); break;

    case 'p': tmrpcm.pause(); break;
    case '?': if(tmrpcm.isPlaying()){ Serial.println("A wav file is being played");} break;
    case 'S': tmrpcm.stopPlayback(); break;
    case '=': tmrpcm.volume(1); break;
    case '-': tmrpcm.volume(0); break;
    case '0': tmrpcm.quality(0); break;
    case '1': tmrpcm.quality(1); break;
    case 'D': tmrpcm.disable();  break;    
    default: break;
    }
  }

   
}

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Женяяяя, ты непроходим. 

genia1991
Offline
Зарегистрирован: 25.12.2019

DetSimen пишет:

Женяяяя, ты непроходим. 

это уже последний вопрос. мне бы еще только это понять как делается и все. Только последний вопрос хочу понять (

 

Можно ли как то переключать. что бы когда надо открывать файл txt или наоборот проигрывать файл

Kakmyc
Offline
Зарегистрирован: 15.01.2018

А где в коде , ты открываешь txt файл ?
Искал с микроскопом х200, не нашел

genia1991
Offline
Зарегистрирован: 25.12.2019

Kakmyc пишет:
А где в коде , ты открываешь txt файл ? Искал с микроскопом х200, не нашел

полный код выглядит так

#include <SD.h>                      // need to include the SD library
#include <SPI.h>
#define SD_ChipSelectPin 10  //using digital pin 4 on arduino nano 328, can use other pins

#include <TMRpcm.h>           //  also need to include this library...
//#include <pcmConfig.h>
TMRpcm tmrpcm;   // create an object for use in this sketch

File myFile;

void setup() {
    tmrpcm.speakerPin = 9; //5,6,11 or 46 on Mega, 9 on Uno, Nano, etc
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  Serial.print("Initializing SD card...");

  if (!SD.begin(10)) {
    Serial.println("initialization failed!");
    while (1);
  }
  Serial.println("initialization done.");

}

void loop() {
    if(Serial.available()){    
    switch(Serial.read()){
      
    case 'd': tmrpcm.play("music.wav"); break;
    default: break;
    }
  }
  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("test.txt:");

    // read from the file until there's nothing else in it:
    while (myFile.available()) {
      Serial.write(myFile.read());
    }
    // close the file:
    myFile.close();
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }
}



 

genia1991
Offline
Зарегистрирован: 25.12.2019

сейчас работает по очереди или чтение из txt или проигрывание файла. Работать вместе не хочет

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

И не должно.

genia1991
Offline
Зарегистрирован: 25.12.2019

andriano пишет:

И не должно.

почему не должно. а что можно сделать что бы заработало вместе?

Есть ли замена простая для звуковой библиотеки?

 

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

genia1991, почему Вы вместо того, чтобы подумать, сразу задаете вопросы на форуме?

Вот скажите, какое количество одновременно открытых файлов должна поддерживать библиотека?

Варианты ответа:

1. Один.

2. Два.

3. Три.

4. Четыре.

5. Шестнадцать.

6. 256.

7. Любое разумное количество.

8. Неограниченное количество.

genia1991 пишет:

а что можно сделать что бы заработало вместе?

Писать библиотеку самому под свои требования.

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

genia1991 пишет:
Только последний вопрос хочу понять (
Как говорят наши соседи: "Остання в попа жінка була, та й та вмерла" :-(

genia1991
Offline
Зарегистрирован: 25.12.2019

andriano пишет:

genia1991, почему Вы вместо того, чтобы подумать, сразу задаете вопросы на форуме?

Вот скажите, какое количество одновременно открытых файлов должна поддерживать библиотека?

Варианты ответа:

1. Один.

2. Два.

3. Три.

4. Четыре.

5. Шестнадцать.

6. 256.

7. Любое разумное количество.

8. Неограниченное количество.

genia1991 пишет:

а что можно сделать что бы заработало вместе?

Писать библиотеку самому под свои требования.

ответ только 1 файл может открывать за раз. но тогда как сделать так что бы wav файл закрыть. в библиотеки вроде ничего не нашел.  Если бы я мог их закрывать то все бы и работало нормально. думаю проблема в этом.

 

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

https://github.com/pigetArduino/wavPlayer

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

Вы уж определитесь: два файла "вместе" или "поочередно".

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

genia1991
Offline
Зарегистрирован: 25.12.2019

andriano пишет:

Вы уж определитесь: два файла "вместе" или "поочередно".

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

я хочу поочередно что бы воспроизводился файл wav например нажимая на sw1 или нажимая на sw2 открывался txt файл.  Но библиотека TMRpcm не работает у меня вместе с открытием txt файла например (если делать это поочередно)

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

Я не знаю, что такое библиотека TMRpcm. Соответственно, не могу сказать, как она будет работать, а как - нет.

Если Вы сами понимаете, что и как она делает - напишите здесь подробно, будем разбираться. Если не понимаете - откажитесь от ее использования. IMHO пользоваться в своих проектах можно только тем, что известно, как работает. Если не известно, - лучше написать свое, про которое Вам будет все известно.

genia1991
Offline
Зарегистрирован: 25.12.2019

andriano пишет:

Я не знаю, что такое библиотека TMRpcm. Соответственно, не могу сказать, как она будет работать, а как - нет.

Если Вы сами понимаете, что и как она делает - напишите здесь подробно, будем разбираться. Если не понимаете - откажитесь от ее использования. IMHO пользоваться в своих проектах можно только тем, что известно, как работает. Если не известно, - лучше написать свое, про которое Вам будет все известно.

я нашел замену для этой библиотеки. буду лучше тестировать другую. Если не будет получаться то напишу.

Только нет картридера как всегда что бы загрузить wav файлы на SD

genia1991
Offline
Зарегистрирован: 25.12.2019

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

- uno 16 Mhz использую

- файл с такими характеристиками:

Mono    
bit Rate 32000 HZ      (может изменить на меньше ?)
Unsigned 8 bit PCM

Записать на SD файл с другими характеристиками сейчас нет возможности

Можно ли как то это исправить? мне кажется что с частотой где что то не так


 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

11025 попробуй

genia1991
Offline
Зарегистрирован: 25.12.2019

ua6em пишет:

11025 попробуй

да дело в битрейте. 32khz он не тянет просто. сейчас сохраню wav файл с разными параметрами и проверю какой будет лучше всего.

и усилитель попробую сделать на lm293. Может качество получиться выжать получше дополнительно

genia1991
Offline
Зарегистрирован: 25.12.2019

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

Что можно еще сделать?

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

genia1991 пишет:

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

Что можно еще сделать?

1. Использовать более подходящий для этой задачи контроллер.

2. Попытаться самому написать код.

3. Мириться с тем, что есть.

4. Отказаться от этой затеи.

Morroc
Offline
Зарегистрирован: 24.10.2016

Присобачить какой нибудь vs1053 чтобы воспроизведением занимался.

genia1991
Offline
Зарегистрирован: 25.12.2019

вроде уже разобрался в 16 kHz (но хочется больше) звук получается выводить и паралельно открывать и txt файл если нужно. использую только атмегу без модулей

буду усилитель собирать. не обязательно конечно но хочу попробовать