Воспроизведение звука на Ардуино
- Войдите на сайт для отправки комментариев
Ср, 08/02/2017 - 23:49
Всем добрый день. Использую ардуино для модуля автоматики. Нужно, среди прочего, воспроизводить некоторое музыкальное сопровождение. Есть флеш модуль под SD карты, хочу воспроизводить файлы, закачанные на флешку. Всё было бы хорошо, но проблема в том, что цифровые выходы у меня почти все заняты, остались только RX/TX (1 и 2) и аналоговых несколько штук. Пытаюсь использовать библиотеку TMRpcm:
https://github.com/TMRh20/TMRpcm
скажите, может у кого-то есть подобный опыт?
В описании библиотеки сказано, что на Уно она использует таймер-1, и соответственно пины 9 & 10. Вариантов 2, перенести то что подключено к этим пинам на аналоговые ( они могут быть инициализированы как цифровые), или добавлять внешние хардваре ресурсы, типа ЦАПа / декодеры для воспроизведения звука "классическим" способом
Спасибо за ответ. Ардуино у меня - Нано. В данном смысле, я так думаю, будет аналогично Уно.
"Они могут быть инициализированы как цифровые."
Скажите, как это сделать? Мне нужно инициализация как цифровой вход. То есть - у меня и 9 и 10-ка являются входами. Я бы их перенес на аналоговые пины.
Еще вопрос. Вы пишете - 9 и 10. То есть - динамик нужно подключать между двумя пинами?
Спасибо за ответ. Ардуино у меня - Нано. В данном смысле, я так думаю, будет аналогично Уно.
аналогично, но не равно. у наны (и про мини) на 2 аналоговых входа больше.
Скажите, как это сделать? Мне нужно инициализация как цифровой вход. То есть - у меня и 9 и 10-ка являются входами. Я бы их перенес на аналоговые пины.
RTFM: http://arduino.ru/Tutorial/AnalogInputPins
Вот похожая реализация модуля, есть исходники, можно глянуть тут http://www.getchip.net/posts/087-attiny2313-sd-card-talking-device/ или тут http://www.parkflyer.ru/ru/blogs/view_entry/9979/
Пробую разобраться со звуком пока что. Увы, но не работает. SD подключил по вот такой схеме (кард ридер такой же):
http://zelectro.cc/SD_card_module_Arduino
пробую код, похожий на basic.ino, звука нет. Подключение флешки прозвонил, 5 и 3.3 вольта проверил, всё в норме. Флешка (4gb, silicon power, sdhc) записана в формате fat32, файл 'music' есть и нормально проигрывается винампом на компьютере. Брал его из audio_samples. Подключал динамик как между 9 и 10 так и между 9 и землей.
Трудно сказать не видя скетча, возможно переопределение пинов, надо пробовать "голый" пример из библиотеки - не модифицирую ни чего. Я посмотрел, у Нано Д9 и Д10 как и у ардуино Уно, пины ассоциированы с таймером-1.
Динамик напрямую к ардуино подключать нельзя, должен быть услилитель, лучший вариант юсб-колонки для компа, желательно с регулировкой громкости и тембра
Победил кажется!!! :) Заработало, проблема была в том, что не вызвал 'SD.begin'. Насчет усилителя в курсе. Мне пока что хотя бы проверить нужно было. Я поставил динамик между 9 и общим проводом, последовательно - резистор 200 Ом, что бы не перегружать выход. Всё нормально заработало, на 10-ку сажать не обязательно, разницы с общим проводом нет. Всем огромное спасибо!
Новые данные :) 10-ка, похоже, тоже завязана алгоритмом. Возможно, что противофазно всё таки работают.
Стерео?
Судя по wav файлам и описанию - моно, скорее всего в противофазе с 9 кой работают. На 10й выход у меня было подключено реле через ключ-транзистор. Получилось весело :) Кто баловался когда-то дисководами, тот помнит, что ими можно музыку играть. Оказалось, что и реле вполне пригодны :)
Как я понимаю - то в либе есть шанс и стерео сделать, не знаю только, хватит ли скорости процессора. Генератор работает хитро. Ткнул осцилограф на выход, генерирует поднесущую порядка 68 кгц и по ней - звук. Звук получается при том довольно чистый. Можно было бы несущую хорошо зафильтровать, должно стать еще лучше.
А я тут с мр3 (DFplayer mini mp3) модулем поигрался , оказалось немного интереснее.Ну и не нужно ктому же нагружать проц обработкой звука.
https://yadi.sk/d/7wGV32MX3EEBvn файлы
https://www.youtube.com/watch?v=5h1367vmld4&t=18s видео
,Правда при повторе трека есть пауза.
код