En este tutorial veremos como hacer un reproductor de archivos MP3 con el módulo DFplayer mini, arduino y un display oled de 128×32 Veremos como armar el circuito impreso, provisto por PCBWay, analizaremos el código fuente, y finalmente probaremos como funciona el dispositivo.
Si quieres reproducir tu música en una playa privada o en reuniones, este reproductor de MP3 con módulo DFplayer y Arduino es el perfecto para ti. Incluye circuito impreso para que puedas fabricarlo tú mismo.
Si quieres reproducir tu música en una playa privada o en reuniones, este reproductor de MP3 con módulo DFplayer y Arduino es el perfecto para ti. Incluye circuito impreso para que puedas fabricarlo tú mismo. Con él puedes reproducir MP3.
No te pierdas ningún video más suscríbete a nuestro canal de telegram https://t.me/carlosvolt_electronica_robotica
Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 mucho videos con código fuentes completos y diagramas
Componentes electrónicos
Arduino Nano
El Arduino Nano es una placa pequeña, completa y compatible con la placa de pruebas basada en el ATmega328 (Arduino Nano 3.x). Tiene más o menos la misma funcionalidad del Arduino Duemilanove, pero en un paquete diferente. Solo carece de un conector de alimentación de CC y funciona con un cable USB Mini-B en lugar de uno estándar.
Microcontrolador | ATmega328 |
Arquitectura | AVR |
Tensión de funcionamiento | 5 V |
Memoria flash | 32 KB de los cuales 2 KB utiliza el gestor de arranque |
SRAM | 2 KB |
Velocidad de reloj | 16 MHz |
Pines analógicos IN | 8 |
EEPROM | 1 KB |
Corriente CC por pines de E / S | 40 mA (pines de E / S) |
Voltaje de entrada | 7-12 V |
Pines de E / S digitales | 22 (6 de los cuales son PWM) |
Salida PWM | 6 |
El consumo de energía | 19 mA |
Tamaño de PCB | 18 x 45 mm |
Peso | 7 g |
Diagrama de pines
Pines hembra
Zócalo para arduino nano
Un resistor de 1 Kohm
Display oled sh1106
Se trata de un módulo de pantalla OLED monocromática DE 128×64 puntos con interface I2C .Que presenta varias ventajas en comparación con pantallas LCD, y podemos destacar su alto brillo, un muy buen contraste, un ángulo de visión más amplio, y bajo consumo de energía. ES compatible con Arduino Rasberry Pi y microcontroladores PIC entre otros. Trabaja con niveles lógicos de 3.3V a 5V tiene un angulo de visión mayor a los 160 grados. el Tamaño de la pantalla es de 1,3 pulgadas. Se alimenta con un voltaje de 3.3V a 5V Se lo puede usar en aplicaciones como relojes inteligentes, MP3, termómetros, instrumentos, y proyectos varios, etc.
Librería
Características
- Interface: I2C(3.3V / 5V logic level)
- Resolution: 128 x 64
- Angle of view: >160 degree
- Display color: Blue
- Display size: 1.3 inch
- Driver IC: SH1106
- Power supply: DC 3.3V~5V
- Operating temperature: -20~70’C
- Application: smart watch, MP3, thermometer, instruments, DIY projects, etc.
Siete pulsaodores
Una tarjeta micro SD
PCB
Descargar archivo gerber —>gerbermp3dfplayer
Circuito
Código Fuente del proyecto
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
#include "U8glib.h"//Librería para el control del display oled U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);// I2C / TWI Se habilita esta linea según el display a usar en este caso el driver SH1106 #include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" String texto = ""; int vol = 10; SoftwareSerial mySoftwareSerial(10, 11); // RX, TX pines por software para la comunicación con el módulo dfplayer mini DFRobotDFPlayerMini myDFPlayer; int play_d2 = 2; int pause_d9 = 9; int stop_d4 = 4; int next_d5 = 5; int prev_d6 = 6; int voltmas_d7 = 7; int volmenos_d8 = 8; int estado_pausa = 0; void setup() { mySoftwareSerial.begin(9600); Serial.begin(115200); pinMode(play_d2, INPUT_PULLUP); pinMode(pause_d9, INPUT_PULLUP); pinMode(stop_d4, INPUT_PULLUP); pinMode(next_d5, INPUT_PULLUP); pinMode(prev_d6, INPUT_PULLUP); pinMode(voltmas_d7, INPUT_PULLUP); pinMode(volmenos_d8, INPUT_PULLUP); Serial.println(); Serial.println(F("Inicializando DFPlayer mini")); if (!myDFPlayer.begin(mySoftwareSerial)) { //Usa softwareSerial para communicarte con el módulo mp3. Serial.println(F("No es posible iniciar:")); Serial.println(F("1.Comprueba las conexiones")); Serial.println(F("2.Por favor inserte una tarjeta SD")); while(true); } Serial.println(F("DFPlayer Mini online.")); myDFPlayer.volume(vol); //Se setea el volumen //Se mostrará el siguente texto en el display texto = "NO TRACK"; oled(); } void loop() { //Lectura del estado de los pulsadores int boton_play = digitalRead(play_d2); int boton_pause = digitalRead(pause_d9); int boton_stop = digitalRead(stop_d4); int boton_next = digitalRead(next_d5); int boton_prev = digitalRead(prev_d6); int boton_volmas = digitalRead(voltmas_d7); int boton_volmenos = digitalRead(volmenos_d8); //Si se aprieta el botón de play se cumple if(boton_play == LOW){ delay(100); myDFPlayer.enableLoopAll(); myDFPlayer.play(); texto = "PLAY";//Se mostrará el siguente texto en el display oled(); } //Pone en pausa el track de música if(boton_pause == LOW){ if(estado_pausa == 0){ delay(200); myDFPlayer.pause(); texto = "PAUSE"; oled(); estado_pausa = 1; }else{ delay(200); myDFPlayer.start();//Vuelve a iniciar el tema donde quedó la pausa texto = "PLAY"; oled(); estado_pausa = 0; } } //Para el track de música que se estaba repoduciendo if(boton_stop == LOW){ delay(100); myDFPlayer.stop(); texto = "STOP"; oled(); } //Reproduce el próximo tack de música if(boton_next == LOW){ delay(100); myDFPlayer.next(); texto = "NEXT"; oled(); delay(500); texto = "PLAY"; oled(); } //Reproduce el anterior tack de música if(boton_prev == LOW){ delay(100); myDFPlayer.previous(); texto = "PREV"; oled(); delay(500); texto = "PLAY"; oled(); } //Incrementa el vólumen hasta 35 como máximo if(boton_volmas == LOW){ delay(100); if(vol <35){ myDFPlayer.volumeUp(); vol = vol + 1; oled(); } } //Decrementa el vólumen hasta 0 como mínimo if(boton_volmenos == LOW){ delay(100); if(vol >0){ myDFPlayer.volumeDown(); vol = vol - 1; oled(); } } } //Funcíon para mostrar texto en el dislplay oled void oled(){ u8g.firstPage(); do { draw();//Llama a la función draw } while( u8g.nextPage() ); // Reconstruir la imagen después de un tiempo delay(50); } void draw(void) { //Imprimimos en pantalla u8g.setFont(u8g_font_unifont); u8g.setPrintPos(0, 20); u8g.print("REPRODUCTOR MP3");// //Muestra la palabra ESTADO u8g.setPrintPos(0, 40); u8g.print("ESTADO: ");// u8g.setPrintPos(55, 40); u8g.print(texto);//Estado de reproducción del track de música PLAY STOP PAUSE //Muestra la palabra de VOLUMEN u8g.setPrintPos(0, 60); u8g.print("VOLUMEN:"); u8g.setPrintPos(65, 60); u8g.print(vol);//Muestra el incremento o decremento del volumen de reproducción } |
Un módulo DFPlayermini
Introducción
El DFPlayer Mini MP3 Player para Arduino es un módulo MP3 pequeño y de bajo precio con una salida simplificada directamente al altavoz. El módulo se puede usar como un módulo independiente con batería, altavoz y botones conectados o se puede usar en combinación con un Arduino UNO o cualquier otro con capacidades RX/TX.
Especificación
- frecuencias de muestreo admitidas (kHz): 8/11.025/12/16/22.05/24/32/44.1/48
- Salida DAC de 24 bits, soporte para rango dinámico 90dB, soporte SNR 85dB
- totalmente compatible con el sistema de archivos FAT16, FAT32, soporte máximo 32G de la tarjeta TF, soporte 32G de disco U, 64M bytes NORFLASH
- una variedad de modos de control, modo de control de E/S, modo serial, modo de control de botón AD
- Función de espera de sonido publicitario, la música se puede suspender. cuando termine la publicidad en la musica seguir sonando
- datos de audio ordenados por carpeta, admite hasta 100 carpetas, cada carpeta puede contener hasta 255 canciones
- Volumen ajustable de 30 niveles, ecualizador de 6 niveles ajustable
Solicitud
- Transmisión de voz de navegación de automóviles;
- Inspectores de transporte por carretera, avisos de voz de las estaciones de peaje;
- Estación de tren, avisos de voz de inspección de seguridad del autobús;
- Electricidad, comunicaciones, avisos de voz de la sala de negocios financieros;
- Vehículo dentro y fuera del canal verifique que la voz lo indique;
- Las indicaciones de voz del canal de control fronterizo de seguridad pública;
- Alarma de voz multicanal o voz de guía de operación del equipo;
- Los avisos de voz de conducción segura del coche turístico eléctrico;
- Alarma de falla de equipos electromecánicos;
- Indicaciones de voz de alarma contra incendios;
- El equipo de transmisión automática, transmisión regular.
Pin mapa
Modo de trabajo
1. Modo serie
Compatibilidad con el modo de comunicación en serie asíncrono a través de comandos de envío en serie de PC Estándar de comunicación: 9600 bps Bits de datos: 1 Pago: ninguno Control de flujo: ninguno
- Descripción de la instrucción
- Comando de control en serie
- Comando de consulta en serie
2. Modo CLAVE AD
Usamos las teclas del módulo AD, en lugar del método tradicional de conexión de teclado de matriz, es para aprovechar la funcionalidad MCU AD cada vez más potente, nuestro módulo configuración predeterminada 2 puertos AD, distribución de resistencia de 20 teclas.
- Consulte el diagrama
nota: la pulsación breve significa pre/siguiente, y la pulsación prolongada significa vol-,vol +
Diagrama de conexión
Nota: Para un uso simple, el diagrama superior está listo, pero si encuentra que el ruido es bastante alto, puede conectar una resistencia de 1K al pin TX.
Copie su mp3 en su tarjeta micro SD
NOTA : El orden en que copie el mp3 en la tarjeta micro SD afectará el orden en que se reproducirá el mp3, lo que significa que la función reproducir (1) reproducirá el primer mp3 copiado en la tarjeta micro SD.
Para usuarios de Mac
NOTA : Si está utilizando Mac OS X para copiar el mp3, el sistema de archivos agregará automáticamente archivos ocultos como: “._0001.mp3” para el índice, que este módulo manejará como archivos mp3 válidos. Es realmente molesto. Entonces puede ejecutar el siguiente comando en la terminal para eliminar esos archivos.
Por favor reemplace elal nombre del volumen de su tarjeta SD. |
Código de muestra
Hemos creado una biblioteca Arduino para DFPlayer Mini para simplificar el método para que funcione. Conecte el hardware como se muestra en la imagen de arriba y juegue con el código de muestra. Puede descargar la biblioteca más reciente aquí: DFRobotDFPlayerMini .