Ардуино - Воспроизведение файлов WAV с помощью зуммера
Я разработал программу для Arduino, которая воспроизводит файл WAV с SD карты с помощью динамика.
Это принципиальная схема
Скетч, который я использую, основан на библиотеке TMRpcm и выходе PWM
.#include <TMRpcm.h>
#include <SD.h>
#include <SPI.h>
int sdpin=10;
TMRpcm tmrpcm;
void setup()
{
Serial.begin(9600);
pinMode(sdpin, OUTPUT);
tmrpcm.speakerPin=9;
tmrpcm.setVolume(3);
SD.begin();
}
void loop()
{
if(Serial.available()>0)
{
String data=Serial.readString();
if(data=="pause")
{
if(tmrpcm.isPlaying()==1)
{
tmrpcm.pause();
}
}
else if(data=="stop")
{
if(tmrpcm.isPlaying()==1)
{
tmrpcm.stopPlayback();
}
}
else
{
String path="/Music/"+data;
if(tmrpcm.isPlaying()==1)
{
tmrpcm.stopPlayback();
}
tmrpcm.play(path.c_str());
}
}
}
Сначала я мог воспроизводить музыку с помощью динамика, но потом он перестал работать, и, поскольку у меня недостаточно навыков, чтобы сделать его самостоятельно, я хотел бы знать, могу ли я использовать зуммер для этого.
Я знаю, что зуммеры можно использовать для генерации мелодии с помощью функции tone(), но я не уверен, что смогу использовать их для воспроизведения файлов wav с использованием ШИМ-выхода.
Любая помощь будет оценена по достоинству.
@Amine Messaoudi, 👍1
Обсуждение2 ответа
Существуют разные типы зуммеров. Самый простой — это просто пьезоэлектрический преобразователь в пластиковом корпусе. Вы можете управлять им напрямую с помощью вывода Arduino, так как его импеданс высок. Он будет неплохо работать на высоких частотах, но не ждите от него басов.
Другой тип зуммера — это пьезоэлектрический преобразователь, подключенный к простой схеме генератора, который генерирует сигнал с частотой, как правило, от 1 до 4 кГц. Этот тип зуммера, скорее всего, не будет работать, поскольку сигнал, создаваемый вашим Arduino, будет использоваться для питания схемы генератора, а не для управления пьезоэлектрическим преобразователем.
Обратите внимание, что контакт, который вы использовали для управления динамиком, возможно, больше не работает. Сопротивление динамика, вероятно, было достаточно низким, чтобы потреблять больше тока, чем рассчитано на вывод микроконтроллера, что, вероятно, привело к его повреждению. Непьезоэлектрический динамик никогда не следует подключать к Arduino без усилителя между ними.
При управлении пассивным зуммером выходной сигнал от Arduino всегда должен поступать на транзистор, подключенный между землей и (-) отрицательной стороной зуммера. Кроме того, если вы используете обычный NPN-транзистор, у вас также должен быть небольшой резистор между Arduino и базой транзистора.
Транзистор выполняет две функции; он потенциально усиливает сигнал (если (+) положительная сторона зуммера находится под более высоким напряжением, чем Arduino), а также изолирует (частично) это напряжение от Arduino. Это помогает экономить пины!
Резистор предназначен для ограничения тока, проходящего через транзистор, и помогает поддерживать работоспособность Arduino и транзистора. Напряжение волнует, ток убивает, а резисторы ограничивают ток. Если вы используете MOSFET, вы хотите изменить его с последовательного резистора с низким сопротивлением на подтягивающий резистор с высоким сопротивлением - 4,75 кОм или 10 кОм в порядке. МОП-транзистор имеет гораздо более высокий импеданс, чем NPN-транзистор, и его нельзя оставлять плавающим.
Кроме того, вы хотите добавить диод между клеммами (+) и (-) зуммера. Это может быть самая важная часть схемы! При колебаниях зуммер (будь то магнитный или пьезоэлектрический) действует как индуктор и со временем накапливает заряд. Это будет слышно как медленно уменьшающаяся громкость зуммера. Этот заряд в конечном итоге преодолеет защитные диоды, встроенные в контакт GPIO (или любой транзистор), и уничтожит его! Диод блокирует эту петлю зарядки и экономит ваши фишки.
- Транзисторный усилитель для управления динамиком с использованием ШИМ Arduino
- Плохое качество звука при использовании пьезоэлемента в TinkerCad
- Как избавиться от некачественного звука из усилителя DFPlayer plus?
- Выполнить регулировку громкости на динамике arduino
- Можем ли мы генерировать тон 20 кГц с обычным зуммером в arduino?
- Получение Arduino Uno и нуля MKR для связи
- Хочу создать Bluetooth audio control (увеличение/уменьшение громкости, воспроизведение, пауза и т.д.) для смартфона
- Цепь с зуммером не работает
«У меня недостаточно навыков, чтобы сделать его самому» ... навыков, чтобы сделать что? .... динамик перестал работать, вероятно, потому, что выходной контакт на Arduino перегорел, @jsotola
ты забыл задать вопрос, @jsotola