Saludos! Recien ayude a un colega con un proyecto, en el cual incorporaba el modulo de MP3 de DFROBOT, asi que antes de realizar dicho proyecto he experimentado un poco con este modulo y mi ESP32 en realidad probe mas con el harware que esto implicaba ya que con respecto al firmware el fabricarte proporciona la libreria con un par de ejemplos completamente utiles para el enteorno de arduino.
Circuito:
Para el circuito estuve probando varias formas de hacer la conexion, es importante mencionar que el modulo se alimenta de 3.3 a 5V (aunque yo tuve mejores resultados alimentando a 5V).
- Si utilizas 3.3V en su alimentacion basta con conectar TX y RX del ESP32 a RX y TX del MP3 ya que estarian trabajando al mismo voltaje.
- Como yo he dedicido utilizar 5V para su alimentacion, tenemos que ver la forma de aislar o acoplar los voltajes ya que en las lineas de TX y RX exitirian 3.3V por parte del ESP32 y 5V por parte del MP3.
- Una primer forma es solo usar un divisor de voltaje en el pin TX del MP3 para asi asegurar de que no le llegue los 5V al pin RX del ESP32 (esto implica a que se tenga que calcular los valores de dicho divisor), para la conexion entre el pin RX del MP3 y TX del ESP32 no es necesario agregar nada ya que al modulo MP3 le estarian llegando 3.3V y es suficiente para trabajar, aunque con esta configuracion note un poco de ruido y en ocasiones el modulo no trabajaba adecuadamente, para el ruido encontre que algunos colocaban una resistencia de 1K entre el pin RX del MP3 y TX del ESP32, aunque yo no he notado mucho cambio.
- La segunda forma y creo que es la mas confiable es usar un adaptador de voltaje mejor conocido como "Level Shifter" con esto podemos tener dos niveles de tension y dar solucion a nuestro problema. En el mercado hay varias formas de hacer esto, se podria hacer con MOSFETs o transistores BJT, pero tambien hay integrados dedicos para esta tarea.
Bueno una vez sabiendo esto, he decidido utilizar integrado TXS0108 de Texas Instruments el cual es un adaptador de voltaje bidireccional (esto lo decidi asi ya que en el proyecto tambien necesito aistalr unas linea de comunicacion I2C, asi que me conviene para mi proyecto pero eso es otra historia), por cierto para este demo he utilizado los 5V presentes en el pin VIN del ESP32 (claro cuando esta alimentado con el USB, caso contrario en ese pin tendrian que alimentar con 5V), por lo tanto el circuito de conexion sera el siguiente:
Código:
Con respecto al codigo he usado el ejemplo basico que incorpora la libreria.
VÃdeo:
Aquà un pequeño vÃdeo del circuito en funcionamiento:
Descargas:
Aquà el enlace directo para DESCARGAR los archivos disponibles, también puedes revisar o descargar la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquÃ.
Donaciones:
Si te gusta el contenido o si los recursos te son de utilidad, comparte el enlace en tus redes sociales o sitios donde creas que puede ser de interés y la otra puedes ayudarme con una donación para seguir realizando publicaciones y mejorar el contenido del sitio. También puedes hacer donaciones en especie, ya sea con componentes, tarjetas de desarrollo o herramientas. Ponte en contacto para platicar, o puedes volverte uno de nuestros sponsors.
Pido una retroalimentación avisando cada que un enlace no sirva o tenga errores al momento de abrirlo, asà también si una imagen no se ve o no carga, para corregirlo en el menor tiempo posible.
Links:
- DFRobot Wiki, "DRF0299 DFPlayer mini", https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299
0 Comentarios