Ардуино 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); // Задержка между измерениями
}
По дате
По рейтингу
попробуй
Serial.println("Я вас слушаю...");
убери