Ардуино воспроизведение аудио

Урок 17. Подключение Mini MP3 плеера к Arduino

Наверное, часто в ваших проектах возникала необходимость воспроизводить определенный звук или мелодию. Например, по завершению какого-нибудь процесса, или просто звуковое сопровождение. В этом нам поможет Mini MP3 Проигрыватель, который обладает очень большим потенциалом.

В данный модуль вставляется microSD карточка, на которую предварительно мы можем записать Mp3 композиции, которые, в дальнейшем, сможем воспроизводить с помощью Mini MP3 Проигрывателя.

Нам понадобится:

Для реализации проекта нам необходимо установить библиотеки:

Демонстрация:

Подготавливаем microSD карточку:

Mini MP3 Проигрыватель может распознавать карты объемом до 32G и файловой системой FAT16 , FAT32 .

  1. Для начала нам необходимо подключить карту через катридер к компьютеру и отформатировать карточку.
  2. Теперь нам нужно создать папку с названием «mp3«.
  3. Записать ваши mp3 композиции в данную папку и дать им имена «0001.mp3» , «0002.mp3«, «0003.mp3» и тд. Так же файл можно называть «0001alla-tratata.mp3» главное, указать в самом начале номер трека в четырех символьном формате.

Описание контактов:

Pin Number Pin Description Description Note
1 VCC Питание Питание постоянного тока от 3 до 5 Вольт
2 RX UART serial input
3 TX UART serial output
4 DAC_R Audio output right channel Выход на усилитель, правый канал
5 DAC_L Audio output left channel Выход на динамик, со встроенного усилителя до 3W
9 IO1 Trigger port 1 Короткое нажатие ||◄ (длительное нажатие — уменьшение громкости)
10 GND Ground Выход на динамик, со встроенного усилителя до 3W
11 IO2 Trigger port 2 Короткое нажатие ►|| (длительное нажатие — увеличение громкости)
12 ADKEY1 AD port 1 Trigger play first segment
13 ADKEY2 AD port 2 Trigger play fifth segment
14 USB USB DP USB Port
15 USB- USB- DM USB Port
16 Busy Playing Status Low means playingHigh means no

Модуль имеет сразу два вида выходного сигнала: первый — со встроенным усилителем, а второй вариант — через внешний усилитель например УНЧ модуль 2*3 Вт класса D PAM8403. В наших примерах будет рассматриваться вариант со встроенным усилителем.

  • Подключение к усилителю c помощью выходов DAC_R и DAC_L
  • Подключение к динамику напрямую. динамик подключается одним контактом IO1 , а вторым к IO2

Пример 1. Управление с помощью Arduino

Схема подключения:

Данный Mini MP3 Проигрыватель может быть подключен как обычному Serial порту, так и к виртуальному Serial порту. Это дает возможность arduino подключиться к компьютеру и к mp3 проигрывателю.

Подключать удобнее всего с помощью Breadboard mini и проводков папа-папа. Так же не забудьте подключать Mp3 плеер к Serial порту с через резисторы на 1 кОм.

В результате у вас должна получиться примерно следующая картина:

Не забудьте установить библиотеку Mini mp3 Arduino Library V2.0.

Скетч №1:

Данный пример запустит проигрывание треков и каждые 10 секунд будет переключать на следующий трек.

Между двумя командами необходимо делать задержку delay (100); 100 миллисекунд, в противном случае некоторые команды могут работать не стабильно.

Скетч №2:

В этом примере мы запускаем плеер, он начинает проигрывать композиции целиком одна за другой в случайном порядке.

Скетч №3:

Для запуска определенной мелодии нужно обязательно задать правильные именна mp3 файлам, которые находятся на флешке как указано в пункте «Подготавливаем microSD карточку» . Вы так же можете записывать файлы в любые папки и с любыми названиями, но их вы не сможете запустить выборочно по команде.

Полный список функций:

  • mp3_play (); // Запуск воспроизведения
  • mp3_play (5); // Воспроизвести файл «mp3/0005.mp3»
  • mp3_next (); // Следующий трек
  • mp3_prev (); // Предыдущий трек
  • mp3_set_volume (uint16_t volume); // Уровень громкости 0

30
mp3_set_EQ (); // Эквалайзер 0

5 (0 — Normal, 1 — Pop, 2 — Rock, 3 — Jazz, 4 — Classic, 5 — Bass)

  • mp3_pause (); // пауза
  • mp3_stop (); // остановить воспроизведение
  • mp3_random_play (); // Воспроизвести в случайнВоспроизвести в случайном порядке.
  • void mp3_get_state (); //send get state command
  • void mp3_get_volume ();
  • void mp3_get_u_sum ();
  • void mp3_get_tf_sum ();
  • void mp3_get_flash_sum ();
  • void mp3_get_tf_current ();
  • void mp3_get_u_current ();
  • void mp3_get_flash_current ();
  • void mp3_single_loop (boolean state); //set single loop
  • void mp3_DAC (boolean state);
  • Пример 2. Автономное управление без Arduino, с помощью подключенных кнопок.

    Данный модуль может работать как под управлением микроконтроллера Arduino, так и автономно, как самостоятельный проигрыватель mp3.

    Но модулем нужно как-то управлять, регулировать громкость, переключать треки и тд. Эти возможности мы можем реализовать очень просто, нам нужно подключить управляющие кнопки, и с помощью них мы сможем полноценно управлять mp3 проигрывателем.

    Есть несколько вариантов подключения:

    Простой способ (Минимум функций):

    Расширенный способ (Максимальный функционал):

    Источник

    Простой аудиоплеер и усилитель на Arduino Uno

    Добавление звуков или музыки в какой-нибудь ваш проект (устройство) всегда выглядит хорошо. Особенно просто добавить музыку/звук в ваш радиоэлектронный проект если он построен на основе платы Arduino и у вас есть свободные контакты на этой плате. В этом случае вам нужно будет просто докупить модуль для SD карты и нормальный динамик.

    В этой статье мы рассмотрим как можно просто проигрывать музыку или добавлять различные звуковые эффекты в ваш проект с использованием платы Arduino. Хочется сказать спасибо сообществу Arduino которое разработало специальные библиотеки, позволяющее реализовать работу со звуком в Arduino с минимальными усилиями. В этом проекте кроме платы Arduino мы еще использовали микросхему LM386 для усиления сигнала и уменьшения помех.

    Необходимые компоненты

    Плата Arduino Uno
    Модуль чтения SD карт
    SD карта
    Аудио усилитель LM386
    Конденсатор 10 мкФ (2 шт.)
    Конденсатор 100 мкФ (2 шт.)
    Резистор 1 и 10 кОм
    Кнопка (2 шт.)
    Макетная плата
    Соединительные провода

    Основы работы с WAV аудиофайлами в Arduino

    Для проигрывания звуков/музыки с SD карты с помощью платы Arduino необходимо чтобы они были в .wav формате потому что плата Arduino умеет работать только с аудиофайлами этого формата. Чтобы сделать mp3 плеер на основе платы Arduino можно воспользоваться большим количеством предлагаемых на рынке шилдов (плат расширения) для Arduino, позволяющих работать с mp3. Либо можно с помощью специальных сайтов в сети интернет конвертировать формат mp3 в формат wav (этот способ мы будем использовать в данной статье).

    Таким образом, для конвертирования любых аудио файлов в wav формат необходимо выполнить следующую последовательность действий:

    Шаг 1. Перейдите на сайт — Online Wav Converter.

    Шаг 2. Установите параметры wav файла, указанные в следующей таблице. В дальнейшем вы можете экспериментировать с этими настройками, но указанные в таблице настройки обеспечивают наилучшее качество звучания.

    Bit Resolution 8 Bit
    Sampling Rate 16000 Hz
    Audio Channel Mono
    PCM format PCM unsigned 8-bit

    Шаг 3. На указанном веб-сайте нажмите “choose file” и выберите файл который вы хотите конвертировать. Затем заполните необходимые настройки. Вы должны будете на экране компьютера получить примерно следующую картинку:

    Шаг 4. Теперь нажмите “Convert File” и ваш файл будет конвертирован в wav формат, который можно будет скачать к себе на компьютер.

    Шаг 5. Отформатируйте свою SD карту и сохраните ваш .wav аудио файл на нее. Запомните имя (наименование) своего файла. Можно загружать и несколько аудио файлов при необходимости. Мы в нашем проекте выбрали 4 файла с песнями и назвали их 1, 2, 3 и 4 (имена не должны изменяться). Соответственно, после конвертации мы получили файлы 1.wav, 2.wav, 3.wav and 4.wav как показано на следующей картинке.

    Работа схемы

    Схема устройства представлена на следующем рисунке.

    Поскольку наши аудио файлы хранятся на SD карте мы подключили модуль чтения SD карт к плате Arduino. Плата Arduino и модуль чтения SD карт взаимодействуют используя последовательный протокол связи SPI. Поэтому модуль чтения SD карт и подключен к контактам SPI платы Arduino как показано на схеме выше. Также необходимые соединения платы Arduino с модулем чтения SD карт дополнительно представлены в следующей таблице.

    Плата Arduino Модуль чтения SD карт
    +5V Vcc
    Gnd Gnd
    Pin 12 MISO (Master In Slave out)
    Pin 11 MOSI (Master Out Slave In)
    Pin 13 SCK (Synchronous Clock)
    Pin 4 CS (Chip Select)

    Теперь наша плата Arduino сможет считывать музыкальные файлы с SD и проигрывать их на своем контакте 9. Но аудио сигнал на выходе контакта 9 платы Arduino будет достаточно слабый, поэтому мы будем усиливать его с помощью микросхемы аудио усилителя LM386. Данная микросхема позволяет усиливать аудио сигнал до 200 раз и ее контакт Vdd (pin 6) запитывается от контакта 5V платы Arduino. Если вы хотите увеличить/уменьшить громкость звука вам необходимо увеличить/уменьшить напряжение подаваемое на этот контакт. Максимально на этот контакт можно подать 15 В. Более подробно о микросхеме LM386 можно прочитать по этой ссылке (на английском языке).

    Также мы в схему добавили 2 кнопки, одна из которых используется для переключения на следующий трек (аудиофайл), а вторая – для проигрывания/паузы музыки.

    Вы можете собрать представленную схему на макетной плате как показано на следующем рисунке:

    Программирование Arduino для проигрывания музыки

    Когда вся аппаратная часть рассматриваемого проекта у вас уже готова вставьте SD карту в модуль для их чтения и выполните следующую последовательность действий:

    Шаг 1. Скачайте библиотеку для работы с аудиофайлами по следующей ссылке — TMRpcm library. На открывшемся сайте выберите “Clone or download” и выберите скачивание в формате ZIP архива.

    Шаг 2. Добавьте этот Zip файл в вашу Arduino IDE при помощи выбора пункта меню Sketch->Include Library -> Add .ZIP Library как показано на рисунке ниже и выберите ZIP файл который вы только что скачали.

    Шаг 3. Полный текст программы приведен в конце статьи, просто скопируйте и вставьте ее в вашу Arduino IDE, а потом загрузите ее в вашу плату Arduino. В этом разделе будут объяснены лишь наиболее значимые фрагменты программы.

    Проигрывание аудио файла

    Вы можете проигрывать аудио файл, хранящийся в Wav формате на SD карте, с помощью следующей команды:

    music.play(«3.wav»);
    //object name.play (“FileName.wav”);

    Постановка на паузу аудиофайла

    Для этого можно использовать команду вида:

    Перемотка вперед/назад аудио файла

    В платформе Arduino нет прямых способов перемотки аудио файла вперед/назад, однако можно проигрывать аудиофайл с заданного фрагмента времени. При дополнительном программировании эту способность можно использовать для перемотки аудио файла.

    music.play(«2.wav»,33); //проигрывание песни с 33-й секунды
    //objectname.play(“Filename.wav”,time in second);

    Установка качества аудио

    Скачанная нами библиотека обеспечивает два возможных уровня качества проигрывания музыки: в нормальном режиме и с двухкратной частотой дискретизации (2X oversampling).

    music.quality(0); //Normal Mode
    music.quality(1); //2X over sampling mode

    Установка уровня громкости

    Громкость звучания музыки можно регулировать и программным путем с помощью ниже представленных строк кода. Но высокие уровни громкости, устанавливаемые программным путем, могут приводить к появлению искажений в аудиосигнале, поэтому по возможности используйте усиление аудио сигнала аппаратными способами.

    music.setVolume(5); //установка уровня громкости 5
    //objectname.setVolume(Volume level);

    Работа музыкального аудиоплеера на основе Arduino

    После загрузки программы в плату Arduino просто нажмите кнопку, подсоединенную к контакту 2 платы Arduino, и начнется воспроизведение первой песни, записанной на SD карту (в нашем случае это 1.wav). Если нажмете кнопку еще один раз, то произойдет переключение на вторую песню — 2.wav и т.д.

    Можно ставить песню на паузу и возобновлять ее проигрывание с помощью кнопки, подключенной к контакту 3 платы Arduino. Более подробно все эти процессы показаны на видео, приведенном в конце статьи.

    Исходный код программы

    Представленная программа показывает как можно проиграть три песни с SD карты при помощи нажатия соответствующей кнопки в схеме.

    #include «SD.h» //библиотека чтобы считывать информацию с SD карты
    #include «TMRpcm.h» //библиотека чтобы проигрывать аудио файлы
    #include «SPI.h» //SPI библиотека для SD карты
    #define SD_ChipSelectPin 4 //Chip select is pin number 4
    TMRpcm music; //Lib object назовем «music»
    int song_number=0;
    boolean debounce1=true;
    boolean debounce2=true;
    boolean play_pause;
    void setup() <
    music.speakerPin = 9; //аудио выход на контакте 9
    Serial.begin(9600); //задействуем последовательный порт для целей отладки
    if (!SD.begin(SD_ChipSelectPin)) <
    Serial.println(«SD fail»);
    return;
    >
    pinMode(2, INPUT_PULLUP); //подключение кнопки 1 с внутренним подтягивающим резистором для переключения на следующий аудио файл
    pinMode(3, INPUT_PULLUP); //подключение кнопки 2 с внутренним подтягивающим резистором для паузы/воспроизведения аудио файла
    //pinMode(3, INPUT_PULLUP); //Button 2 with internal pull up to fast forward
    music.setVolume(5); // установка уровня громкости (от 0 до 7)
    music.quality(1); // установите 1 для 2x oversampling (удвоенной частоты дискретизации) и 0 для обычного режима воспроизведения аудио
    //music.volume(0); // 1(up) or 0(down) to control volume
    //music.play(«filename»,30); plays a file starting at 30 seconds into the track
    >
    void loop()
    <
    if (digitalRead(2)==LOW && debounce1 == true) //нажата кнопка 1
    <
    song_number++;
    if (song_number==5)

    debounce1=false;
    Serial.println(«KEY PRESSED»);
    Serial.print(«song_number=»);
    Serial.println(song_number);
    if (song_number ==1)
    //проигрывание песни 1 с 10-й секунды
    if (song_number ==2)
    // проигрывание песни 2 с 33-й секунды
    if (song_number ==3)
    //проигрывание песни 3 с начала
    if (song_number ==4)
    // проигрывание песни 4 с 25-й секунды
    if (digitalRead(3)==LOW && debounce2 == true) //кнопка 2 нажата
    music.pause(); Serial.println(«PLAY / PAUSE»);
    debounce2=false;
    >
    if (digitalRead(2)==HIGH) // устранение дребезга контактов
    debounce1=true;
    if (digitalRead(3)==HIGH) // устранение дребезга контактов
    debounce2=true;
    >
    >

    Видео, демонстрирующее работу схемы

    Источник

    Arduino воспроизведение аудио

    #13.2 Arduino SD карта. Воспроизводим звуки и музыку в wav формате.

    Продолжаем работу с SD картой в среде Ardino IDE. И сегодня мы будем воспроизводить мелодии и уведомления с карты памяти .

    Качество воспроизводимой музыки не очень хорошее . Смотрите пример в виде. Звук тихий так как мелодии и оповещения воспроизводятся без какого либо усиления. Так звук воспроизводит Arduino. Не забудьте добавить звук при просмотре видео.

    Это связанно с вычислительными способностями Arduino. Поэтому требования к аудио файлам будут напрямую зависеть от возможности микроконтроллера данной отладочной платы:

    • частота дискретизации: 16000 Гц;
    • количество каналов: моно;
    • количество бит: 8.

    Давайте подготовим файлы для нашего проекта. Скачаем нужные нам треки или уведомления и конвертируем их. Для этого я использую онлайн конвектором аудио файлов.

    Выбираем файл настраиваем параметры и конвертируем. По моему опыту можно использовать достаточно большие файлы в несколько десятков Мб.

    После чего скачиваем полученный трек и загружаем его на флешку.

    Я подготовил 6 различных файлов. Скачать их можно внизу страницы урока. В разделе файлы для скачивания.

    Для урока нам понадобиться:

    5. Динамик. Я использую от ноутбука.

    Подключаем SD-модуль и динамик к Arduino UNO по такой схеме.

    Для данного урока нам понадобится библиотека TMRpcm, которая умеет асинхронного воспроизведения PCM/WAV файлов напрямую с SD карты.

    Скачать и более подробная документация смотрите на GitHub .

    Основные функции библиотеки TMRpcm.

    Давайте сделаем на основе предыдущего урока небольшую программу воспроизведения 6 файлов.

    Как видим наши уведомления и музыка воспроизводятся. В мониторе порта можно увидить какя мелодия сейчас воспроизводиться.

    Самый большой трек у меня под номером 2. Сейчас сделаем скетч который будет включать, ставить паузу, изменять громкость звука и выключать композицию .

    Управлять будем через Монитор порта.

    Команды:

    1 — воспроизводим трек

    2 — воспроизвести трек, начиная с 30-ой секунды

    3 — поставить воспроизведение на паузу / продолжить воспроизводить

    4 — устанавливает уровень громкости 0 — выключаем.

    5 — устанавливает уровень громкости 5 -включаем (макс. 7).

    0 — выключаем воспроизведение трека.

    В мониторе порта видим что у нас все работает отлично.

    На основе данного урока можно сделать Arduino часы с будильникам. Или сделать нормальный звук серены для радио управляемой машины . Уведомления для умного дома и много другое.

    Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.

    Всем Пока-Пока. И до встречи в следующем уроке.

    Понравилась статья? Поделитесь ею с друзьями:

    Источник

    Простой аудиоплеер и усилитель на Arduino Uno

    Добавление звуков или музыки в какой-нибудь ваш проект (устройство) всегда выглядит хорошо. Особенно просто добавить музыку/звук в ваш радиоэлектронный проект если он построен на основе платы Arduino и у вас есть свободные контакты на этой плате. В этом случае вам нужно будет просто докупить модуль для SD карты и нормальный динамик.

    В этой статье мы рассмотрим как можно просто проигрывать музыку или добавлять различные звуковые эффекты в ваш проект с использованием платы Arduino. Хочется сказать спасибо сообществу Arduino которое разработало специальные библиотеки, позволяющее реализовать работу со звуком в Arduino с минимальными усилиями. В этом проекте кроме платы Arduino мы еще использовали микросхему LM386 для усиления сигнала и уменьшения помех.

    Необходимые компоненты

    Плата Arduino Uno
    Модуль чтения SD карт
    SD карта
    Аудио усилитель LM386
    Конденсатор 10 мкФ (2 шт.)
    Конденсатор 100 мкФ (2 шт.)
    Резистор 1 и 10 кОм
    Кнопка (2 шт.)
    Макетная плата
    Соединительные провода

    Основы работы с WAV аудиофайлами в Arduino

    Для проигрывания звуков/музыки с SD карты с помощью платы Arduino необходимо чтобы они были в .wav формате потому что плата Arduino умеет работать только с аудиофайлами этого формата. Чтобы сделать mp3 плеер на основе платы Arduino можно воспользоваться большим количеством предлагаемых на рынке шилдов (плат расширения) для Arduino, позволяющих работать с mp3. Либо можно с помощью специальных сайтов в сети интернет конвертировать формат mp3 в формат wav (этот способ мы будем использовать в данной статье).

    Таким образом, для конвертирования любых аудио файлов в wav формат необходимо выполнить следующую последовательность действий:

    Шаг 1. Перейдите на сайт — Online Wav Converter.

    Шаг 2. Установите параметры wav файла, указанные в следующей таблице. В дальнейшем вы можете экспериментировать с этими настройками, но указанные в таблице настройки обеспечивают наилучшее качество звучания.

    Bit Resolution 8 Bit
    Sampling Rate 16000 Hz
    Audio Channel Mono
    PCM format PCM unsigned 8-bit

    Шаг 3. На указанном веб-сайте нажмите “choose file” и выберите файл который вы хотите конвертировать. Затем заполните необходимые настройки. Вы должны будете на экране компьютера получить примерно следующую картинку:

    Шаг 4. Теперь нажмите “Convert File” и ваш файл будет конвертирован в wav формат, который можно будет скачать к себе на компьютер.

    Шаг 5. Отформатируйте свою SD карту и сохраните ваш .wav аудио файл на нее. Запомните имя (наименование) своего файла. Можно загружать и несколько аудио файлов при необходимости. Мы в нашем проекте выбрали 4 файла с песнями и назвали их 1, 2, 3 и 4 (имена не должны изменяться). Соответственно, после конвертации мы получили файлы 1.wav, 2.wav, 3.wav and 4.wav как показано на следующей картинке.

    Работа схемы

    Схема устройства представлена на следующем рисунке.

    Поскольку наши аудио файлы хранятся на SD карте мы подключили модуль чтения SD карт к плате Arduino. Плата Arduino и модуль чтения SD карт взаимодействуют используя последовательный протокол связи SPI. Поэтому модуль чтения SD карт и подключен к контактам SPI платы Arduino как показано на схеме выше. Также необходимые соединения платы Arduino с модулем чтения SD карт дополнительно представлены в следующей таблице.

    Плата Arduino Модуль чтения SD карт
    +5V Vcc
    Gnd Gnd
    Pin 12 MISO (Master In Slave out)
    Pin 11 MOSI (Master Out Slave In)
    Pin 13 SCK (Synchronous Clock)
    Pin 4 CS (Chip Select)

    Теперь наша плата Arduino сможет считывать музыкальные файлы с SD и проигрывать их на своем контакте 9. Но аудио сигнал на выходе контакта 9 платы Arduino будет достаточно слабый, поэтому мы будем усиливать его с помощью микросхемы аудио усилителя LM386. Данная микросхема позволяет усиливать аудио сигнал до 200 раз и ее контакт Vdd (pin 6) запитывается от контакта 5V платы Arduino. Если вы хотите увеличить/уменьшить громкость звука вам необходимо увеличить/уменьшить напряжение подаваемое на этот контакт. Максимально на этот контакт можно подать 15 В. Более подробно о микросхеме LM386 можно прочитать по этой ссылке (на английском языке).

    Также мы в схему добавили 2 кнопки, одна из которых используется для переключения на следующий трек (аудиофайл), а вторая – для проигрывания/паузы музыки.

    Вы можете собрать представленную схему на макетной плате как показано на следующем рисунке:

    Программирование Arduino для проигрывания музыки

    Когда вся аппаратная часть рассматриваемого проекта у вас уже готова вставьте SD карту в модуль для их чтения и выполните следующую последовательность действий:

    Шаг 1. Скачайте библиотеку для работы с аудиофайлами по следующей ссылке — TMRpcm library. На открывшемся сайте выберите “Clone or download” и выберите скачивание в формате ZIP архива.

    Шаг 2. Добавьте этот Zip файл в вашу Arduino IDE при помощи выбора пункта меню Sketch->Include Library -> Add .ZIP Library как показано на рисунке ниже и выберите ZIP файл который вы только что скачали.

    Шаг 3. Полный текст программы приведен в конце статьи, просто скопируйте и вставьте ее в вашу Arduino IDE, а потом загрузите ее в вашу плату Arduino. В этом разделе будут объяснены лишь наиболее значимые фрагменты программы.

    Проигрывание аудио файла

    Вы можете проигрывать аудио файл, хранящийся в Wav формате на SD карте, с помощью следующей команды:

    music.play(«3.wav»);
    //object name.play (“FileName.wav”);

    Постановка на паузу аудиофайла

    Для этого можно использовать команду вида:

    Перемотка вперед/назад аудио файла

    В платформе Arduino нет прямых способов перемотки аудио файла вперед/назад, однако можно проигрывать аудиофайл с заданного фрагмента времени. При дополнительном программировании эту способность можно использовать для перемотки аудио файла.

    music.play(«2.wav»,33); //проигрывание песни с 33-й секунды
    //objectname.play(“Filename.wav”,time in second);

    Установка качества аудио

    Скачанная нами библиотека обеспечивает два возможных уровня качества проигрывания музыки: в нормальном режиме и с двухкратной частотой дискретизации (2X oversampling).

    music.quality(0); //Normal Mode
    music.quality(1); //2X over sampling mode

    Установка уровня громкости

    Громкость звучания музыки можно регулировать и программным путем с помощью ниже представленных строк кода. Но высокие уровни громкости, устанавливаемые программным путем, могут приводить к появлению искажений в аудиосигнале, поэтому по возможности используйте усиление аудио сигнала аппаратными способами.

    music.setVolume(5); //установка уровня громкости 5
    //objectname.setVolume(Volume level);

    Работа музыкального аудиоплеера на основе Arduino

    После загрузки программы в плату Arduino просто нажмите кнопку, подсоединенную к контакту 2 платы Arduino, и начнется воспроизведение первой песни, записанной на SD карту (в нашем случае это 1.wav). Если нажмете кнопку еще один раз, то произойдет переключение на вторую песню — 2.wav и т.д.

    Можно ставить песню на паузу и возобновлять ее проигрывание с помощью кнопки, подключенной к контакту 3 платы Arduino. Более подробно все эти процессы показаны на видео, приведенном в конце статьи.

    Исходный код программы

    Представленная программа показывает как можно проиграть три песни с SD карты при помощи нажатия соответствующей кнопки в схеме.

    #include «SD.h» //библиотека чтобы считывать информацию с SD карты
    #include «TMRpcm.h» //библиотека чтобы проигрывать аудио файлы
    #include «SPI.h» //SPI библиотека для SD карты
    #define SD_ChipSelectPin 4 //Chip select is pin number 4
    TMRpcm music; //Lib object назовем «music»
    int song_number=0;
    boolean debounce1=true;
    boolean debounce2=true;
    boolean play_pause;
    void setup() <
    music.speakerPin = 9; //аудио выход на контакте 9
    Serial.begin(9600); //задействуем последовательный порт для целей отладки
    if (!SD.begin(SD_ChipSelectPin)) <
    Serial.println(«SD fail»);
    return;
    >
    pinMode(2, INPUT_PULLUP); //подключение кнопки 1 с внутренним подтягивающим резистором для переключения на следующий аудио файл
    pinMode(3, INPUT_PULLUP); //подключение кнопки 2 с внутренним подтягивающим резистором для паузы/воспроизведения аудио файла
    //pinMode(3, INPUT_PULLUP); //Button 2 with internal pull up to fast forward
    music.setVolume(5); // установка уровня громкости (от 0 до 7)
    music.quality(1); // установите 1 для 2x oversampling (удвоенной частоты дискретизации) и 0 для обычного режима воспроизведения аудио
    //music.volume(0); // 1(up) or 0(down) to control volume
    //music.play(«filename»,30); plays a file starting at 30 seconds into the track
    >
    void loop()
    <
    if (digitalRead(2)==LOW && debounce1 == true) //нажата кнопка 1
    <
    song_number++;
    if (song_number==5)

    debounce1=false;
    Serial.println(«KEY PRESSED»);
    Serial.print(«song_number=»);
    Serial.println(song_number);
    if (song_number ==1)
    //проигрывание песни 1 с 10-й секунды
    if (song_number ==2)
    // проигрывание песни 2 с 33-й секунды
    if (song_number ==3)
    //проигрывание песни 3 с начала
    if (song_number ==4)
    // проигрывание песни 4 с 25-й секунды
    if (digitalRead(3)==LOW && debounce2 == true) //кнопка 2 нажата
    music.pause(); Serial.println(«PLAY / PAUSE»);
    debounce2=false;
    >
    if (digitalRead(2)==HIGH) // устранение дребезга контактов
    debounce1=true;
    if (digitalRead(3)==HIGH) // устранение дребезга контактов
    debounce2=true;
    >
    >

    Видео, демонстрирующее работу схемы

    Источник

    Adblock
    detector