Top.Mail.Ru
Ответы

Ардуино TMRpcm не воспроизводится звук или воспроизводится но замедленно.

Я решил написать проект с управлением жестами и приставить туда голос, но ардуино мега при включении и задания music.quality(1); ничего не воспроизводит, а при задании music.quality(0); воспроизводит звук но в очень плохом качестве и замедленно.Подскажите, где я ошибся?Звук в формате wav 8 бит 16000 герц, U8.
На базовом примере все нормально воспроизводится(музыка, пример TMRpcm).

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
 #include <Wire.h> 
#include <MPU6050.h> 
#include "SPI.h" 
#include "SD.h" 
#include <TMRpcm.h> 
 
MPU6050 mpu; 
TMRpcm music; 
 
bool active = false; 
const int chipSelect = 53; 
int16_t ax, ay, az; 
int16_t gx, gy, gz; 
 
void setup() { 
  music.speakerPin = 6; 
  music.setVolume(7); 
  music.quality(1); 
  pinMode(SS, OUTPUT); 
  pinMode(13,OUTPUT); 
  Serial.begin(9600); 
  Wire.begin(); 
  SD.begin(); 
  if (!SD.begin(SPI_HALF_SPEED, chipSelect)) { Serial.println("initialization failed"); }  
  else {Serial.println("initialization complete");} 
  music.play("sounds/hello.wav"); 
  Serial.println("Здравия желаю!"); 
  mpu.initialize(); 
  while(music.isPlaying()) { } 
  if (!mpu.testConnection()) { 
    Serial.println("MPU6050 подключен не корректно"); 
  } 
} 
 
void loop() { 
  mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); 
  float angleX = atan2(ay, az) * 180 / PI; 
  float angleY = atan2(ax, az) * 180 / PI; 
  Serial.print("Angle X: "); 
  Serial.print(angleX); 
  Serial.print(" | Angle Y: "); 
  Serial.println(angleY); 
if (angleY<= -160 && angleY>= -190 && angleX<= -160 && angleX>= -190||angleY<= -160 && angleY>= -190 && angleX>= 160 && angleX<= 190||angleY>= 160 && angleY<= 190 && angleX>= 160 && angleX<= 190) { 
  active = true; 
  while (active) { 
    digitalWrite(13,1); 
    music.play("sounds/command.wav"); 
    while(music.isPlaying()) { 
    Serial.println("Я вас слушаю..."); 
  } 
  } 
} else { 
    digitalWrite(13,0); 
} 
  delay(300); // Задержка между измерениями 
} 
По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект
4мес

попробуй
Serial.println("Я вас слушаю...");
убери