Тест mp3 модуля WTV020SD с Ардуино и усилителями

MP3 модуль WTV020SD можно применять в проектах, где нужно воспроизводить какие-либо уведомления.

Модуль поддерживает карту памяти формата MicroSD емкостью до 2 GB. Если отформатировать карту большего объема в 2 GB или меньше, то скорее всего работать не будет.

Распиновка модуля:


Таблица описания пинов:

Пин модуля  с Ардуино  без Ардуино 
 1  RESET. Подключаем к пину 2 Ардуино
 2 DAC - выход для подключения усилителя. "+" усилителя подключаем к выводу, "-" усилителя к GND
 4  SPK + - подключаем "+" динамика  
 5  SPK - - подключаем "-" динамика 
 7  CLK - clock пин подключаем к выводу 3 Ардуино  -
 8  GND - подключаем землю 
 10  DATA - пин данных, подключаем к 4-му выводу Ардуино  -
 13  -  Кнопка Next
 15  BUSY - подключаем к выводу 5 Ардуино  Светодиод для индикации работы.
 16 +3.3 V. Не подключайте 5 вольт. Можно повредить модуль карту памяти и модуль

Сначала проверим работу модуля без контроллера.

Для этого нам нужно подготовить файлы. Модуль работает с файлами формата AD4. Для конвертации файлов mp3 или wave скачиваем программу USBRecording и конвертируем. Так же нам нужно переименовать файлы, что бы модуль мог циклично их переключать.




Устанавливаем модуль на макетную плату, с подключенным дистрибьютером питания. Дистрибьютер питания позволяет понижать напряжение 12 вольтого блока питания до 5 и необходимых 3.3 вольта. К контактам 4 и 5 модуля подключаем динамик или портативную колонку. Что бы проиграть файлы нужно соединить вывод 12 (next) с GND. Вместо кнопки используем матричную клавиатуру.

Смотрим что получилось:



Работает.
Теперь подключаем модуль к Ардуино. Для этого соединяем пины модуля
1, 7, 10, 15 соответственно к выводам Ардуино 2, 3, 4, 5.

Клавиатуру подключаем к выводам Ардуино 6,7,8,9,10,11,12,14. 
Заливаем тестовый скетч.
#include "Keypad.h"
#include "Wtv020sd16p.h" const byte ROWS = 4; const byte COLS = 4; int resetPin = 2; // The pin number of the reset pin. int clockPin = 3; // The pin number of the clock pin. int dataPin = 4; // The pin number of the data pin. int busyPin = 5; // The pin number of the busy pin. //define the symbols on the buttons of the keypads char Keys[ROWS][COLS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte rowPins[ROWS] = {14,12,11,10}; byte colPins[COLS] = {9,8,7,6}; //initialize an instance of class NewKeypad Keypad customKeypad = Keypad(makeKeymap(Keys),rowPins,colPins,ROWS,COLS); Wtv020sd16p wtv020sd16p(resetPin,clockPin,dataPin,busyPin); void setup() { wtv020sd16p.reset(); // Serial.begin(9600); // Serial.println("Please press the keyboard:"); } void loop() { char key = customKeypad.getKey(); if(key!=NO_KEY) { // Serial.print("Key Value : "); // Serial.println(key); switch(key) { case '0' : wtv020sd16p.asyncPlayVoice(0); break; case '1' : wtv020sd16p.asyncPlayVoice(1); break; case '2' : wtv020sd16p.asyncPlayVoice(2); break; case '3' : wtv020sd16p.asyncPlayVoice(3); break; case '#' : wtv020sd16p.stopVoice(); break; case 'A' : wtv020sd16p.setVolume(1); break; case 'B' : wtv020sd16p.setVolume(3); break; case 'C' : wtv020sd16p.setVolume(5); break; case 'D' : wtv020sd16p.setVolume(7); break; } } }
Теперь клавишами 0, 1, 2, 3 мы бем воспроизводить трэки соответственно 0000.ad4, 0001.ad4, 0002.ad4, 0003.ad4, клавиша # - стоп, клавишами A B C D будем регулировать громкость, где A самый низкий уровень громкости, а D максимальный.

Также подключим усилитель PAM8403 и проверим работу с усилителем и без.



Так же проверим с усилитем LM386




Ну и несколько видео с различными платами Ардуино:


CarDuino Nano Duo v.7



Arduino Uno R3


Arduino Mega 2560 Rev.3


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

  wtv020sd16p.playVoice(1) - воспроизвести файл по номеру. Этой командой будет воспроизведен файл 0001.ad4. При этом методе используется пин busy. 
  
 
  wtv020sd16p.asyncPlayVoice(1) - асинхронное воспроизведение файла 0001.ad4. Если поступит команда во время воспроизведения, то модуль прервет выполнение текущего воспроизведения и выполнит команду.
  
  wtv020sd16p.pauseVoice() - поставить на паузу/снять с паузы асинхронно воспроизводимый файл.
  
  wtv020sd16p.stopVoice() - остановить воспроизведение

  wtv020sd16p.setVolume(4) - установить 50% громкости

  wtv020sd16p.mute() - выключить звук (воспроизведение продолжится, но бе звука)
  
  wtv020sd16p.unmute() - включить звук.




В тесте участвуют следующие компоненты:
Усилитель LM386 http://carduino.ru/product_info.php?products_id=2195
Усилитель PAM8403 http://carduino.ru/product_info.php?products_id=2196
Аудиоколонка http://carduino.ru/product_info.php?products_id=2198
MP3 модуль http://carduino.ru/product_info.php?products_id=2220
CarDuino Nano Duo v7 http://carduino.ru/product_info.php?products_id=1918
Arduino Nano v3.0 CH340 https://carduino.ru/product_info.php?products_id=2143
Arduino Uno R3 https://carduino.ru/product_info.php?products_id=1935
Arduino Mega 2560 Rev.3 https://carduino.ru/product_info.php?products_id=1922
Матричная клавиатура 4*4 https://carduino.ru/product_info.php?products_id=2167
Макетная плата с перемычками https://carduino.ru/product_info.php?products_id=1919
Макетная плата Breadboard Micro http://carduino.ru/product_info.php?products_id=2014
Дистрибьютор питания https://carduino.ru/product_info.php?products_id=1946
Набор соединительных проводов 20см https://carduino.ru/product_info.php?products_id=2213
Блок питания 220-12 вольт 1.2 ампера https://carduino.ru/product_info.php?products_id=1952

Просмотров: 5567

Дата: Понедельник, 09 Мая 2016