Воспроизведение звука, шум в динамике.

roman_rv
Offline
Зарегистрирован: 13.06.2014

Добрый день. 

Играю звук вот этой библиотекой. Режим 8 бит моно.

http://www.hackerspace-ffm.de/wiki/index.php?title=SimpleSDAudio#Windows_users

Подключаю активный динамик (аудио вход tv, в качестве эксперимента просто) по схеме из примера:

 Using amplifier / active speaker / line-in etc.:
    Audio-Pin --||--------------[10k resistor]----+----[1k resistor]---- GND
              100nF capacitor                         to amp
 
Программа играет подготовленные файлы, в зависимости от полученного по serial символа, библиотека деиницилизируется после каждого проигрывания. В наушнике все хорошо, а при подключении тв после проигрывания звука остается фоновый шум. В целом работает так: перезапуск контроллера - в динамике тишина, шума нет. Отправляю символ, играет звук (фоновый шум во время воспроизведения устраивает, 8 бит все-таки), файл заканчивается, шум остается (((
 
Вот код:

#include <SimpleSDAudio.h>

void setup()
{ 

Serial.begin(9600);  
}

void loop(void) {
  if(Serial.available()){    
          soundplay (Serial.read());
            }
}

void soundplay (char s) {
  
          SdPlay.init(SSDA_MODE_FULLRATE | SSDA_MODE_MONO | SSDA_MODE_AUTOWORKER);
        switch (s) {
      case 'p': SdPlay.setFile("EXAMPLE.AFM"); subplay (); break;
      case 'o': SdPlay.setFile("RVP.AFM"); subplay (); break;
      case 'i': SdPlay.setFile("RVP.AFM"); subplay (); 
                SdPlay.setFile("EXAMPLE.AFM"); subplay ();break;
               }
                 SdPlay.deInit();
}       
  void subplay() {
  Serial.println ("play");
  // Start playback
  SdPlay.play();
   // Optional: Wait until playback is finished
  while(!SdPlay.isStopped()) {;}

  delay (50);
  Serial.println ("done");
    }

Как победить?  Спасибо.

 

pupesk
Offline
Зарегистрирован: 28.06.2014

Попробуйте установить пин в хай\лоу после окончания проигрывания

roman_rv
Offline
Зарегистрирован: 13.06.2014

Точно. ))) Помогло, спасибо. ;)