Construye una Radio FM Compacta con Arduino Nano y RDA5807M
Componentes y materiales
- 1x Arduino Nano R3
- 1x Módulo de radio FM RDA5807M (o RDA8057M)
- 1x Pantalla OLED I2C 0.96" 128x64
- 1x Altavoz 3W
- 1x Módulo amplificador de audio PAM8403 (con control de volumen y interruptor ON/OFF)
- 2x Pulsadores táctiles 6x6 mm
- 1x Potenciómetro 100k
- 1x Conector DC de alimentación
- Impresora 3D (opcional, para la carcasa)
Herramientas necesarias
- Impresora 3D (genérica)
- Soldador y estaño
- Pistola de silicona caliente
- Taladro y brocas
- Destornilladores
Sobre el proyecto
Recientemente descubrí el módulo RDA5807, un sintonizador de radio FM en un encapsulado diminuto. Es muy económico y utiliza protocolo I2C para la comunicación, lo que significa que solo se necesitan dos cables para hablar con el IC. ¡Menos cableado!
Mi madre solía escuchar la radio todos los días mientras cocinaba, hasta que la radio dejó de funcionar. Quería sorprenderla con una radio construida por mí mismo.
En este tutorial te mostraré cómo interfacé el IC RDA5807 con un Arduino. Para que tuviera buen aspecto, diseñé una carcasa e la imprimí en 3D. Soy nuevo en el diseño 3D, así que será un diseño simple, sin florituras.
¡Empecemos!
Paso 1: El plan
El objetivo es mantener todo simple y ordenado. Usaremos el Arduino Nano como cerebro del proyecto. La parte difícil de la comunicación con el módulo ya está resuelta: solo hay que instalar la librería Radio. Esta librería ofrece muchas funciones para experimentar. Nota: También funciona con SI4703, SI4705 y TEA5767.
Un pulsador frontal pondrá la radio en "Modo selección de frecuencia" y el otro pulsador confirmará la frecuencia. Un potenciómetro permitirá desplazarse por las frecuencias predefinidas (que se configuran en el código según tu ubicación).
Una pantalla OLED mostrará la frecuencia sintonizada. La señal de audio del módulo de radio es muy débil e insuficiente para mover un altavoz de 3W, así que usaremos el módulo PAM8403 para amplificarla. Elegí la versión que incluye potenciómetro de volumen e interruptor ON/OFF.
Paso 2: Preparar el módulo de radio FM
El módulo es extremadamente pequeño y su separación de pads no es compatible con protoboards ni perfboards. Hay que hacer una placa de adaptación (breakout).
- Corta un trozo pequeño de placa perforada del tamaño del módulo, con al menos 5 agujeros a cada lado.
- Suilda pines header macho como se muestra en las fotos.
- Coloca el módulo sobre la placa y suelda cables finos entre los pads del módulo y los pines header. Yo usé los recortes de las patas de los componentes.
Paso 3: Fabricar la carcasa
La carcasa está diseñada en Fusion 360 e impresa en una Creality Ender 3. Se adjuntan todos los archivos .STL utilizados.
- Pinté la placa frontal en blanco porque solo tenía un color de filamento.
- Inserté "insertos roscados M3" en los orificios del cuerpo exterior usando el soldador. ¡Fue muy satisfactorio!
- Pega el aro interior dentro del cuerpo exterior con cianocrilato.
- Haz un agujero de 6 mm y otro de 2 mm en la "Placa trasera" para el mando del amplificador y la antena respectivamente. Se me olvidó añadirlos en el diseño.
Paso 4: Preparar las placas de circuito
Necesitamos dos placas: una principal (Arduino + módulo FM) y otra para los pulsadores que irá en la placa frontal.
Usé conectores con pines header macho/hembra para cada componente, de modo que puedan desconectarse fácilmente. Puedes saltarte este paso si prefieres soldar directamente.
Realiza el cableado siguiendo el esquema.
Paso 5: Programación
Descarga el archivo FMRadio_final.ino y ábrelo en el IDE de Arduino. Antes de subirlo, hay dos cosas que debes modificar:
- Emisoras y frecuencias: Busca en Google las emisoras de tu zona y sus frecuencias. Añádelas al array
stations[]omitiendo el punto decimal. Ejemplo: 9110 = 91.10 MHz, 10110 = 101.10 MHz. Indica también el total de emisoras entre corchetes: si tienes 12 emisoras,stations[12]. - Índice máximo: Resta 1 al total de emisoras y pon ese valor en el código (en el ejemplo, 11). Sé que hay formas mejores, pero así evité errores.
¡Sube el código!
Paso 6: Montaje final
- Fija con silicona caliente la pantalla OLED y el altavoz en la placa frontal.
- Coloca los botones 3D impresos en su posición, pon una gota de cianocrilato en los pulsadores táctiles y coloca la placa de circuitos encima alineando los botones.
- Atornilla el potenciómetro en la placa frontal.
- Aplica generosa cantidad de cianocrilato en el aro interior y coloca toda la placa frontal con los componentes sobre el aro.
- Conecta todos los componentes a la placa principal. Conecta la salida de audio del módulo de radio al amplificador montado en la placa trasera.
- Pon un poco de silicona caliente alrededor de los conectores como alivio de tensión.
- Atornilla la placa trasera con tornillos M3.
- Corta una barra de silicona en 4 discos de 2-3 mm de grosor y pégalos en la base como patas de goma.
¡Listo!
Paso 7: ¡A disfrutar!
Alimenta la radio con 5V. Si no tienes fuente de 5V, usa un regulador 7805 con entrada de 12V.
Gracias por seguir hasta el final. Espero que te guste el proyecto y hayas aprendido algo nuevo. Cuéntamelo si lo construyes. Suscríbete a mi canal de YouTube para más proyectos. ¡Gracias de nuevo!
Código
Archivo: FMRadio_final.ino (descarga desde el repositorio)
Librería Radio: https://github.com/mathertel/Radio
Piezas 3D (archivos STL)
- Face Plate.stl
- Back Plate.stl
- Button.stl
- Inner Rim.stl
- Knob.stl
- Outer Body.stl
Esquemáticos
Consulta el esquema de conexiones en la documentación del proyecto.
Proceso de manufactura
- Sistema de Asistencia RFID Fiable con Arduino y Python
- Mando universal Android con Arduino, 1Sheeld y control IR
- Crea Animaciones y Juegos en LCD 16×2 con Arduino UNO
- Radio Internet Wi‑Fi con Raspberry Pi y Arduino: Emisoras globales en streaming
- Construye un Voltímetro Inteligente con Arduino y Smartphone – Proyecto DIY Fácil
- Construye un tarro inteligente IoT con ESP8266, Arduino y sensor ultrasónico: Monitorización en tiempo real
- Medición precisa de frecuencia y ciclo de trabajo con Arduino UNO
- Controla un Rover Arduino con Firmata y Mando Xbox One - Guía Completa
- Medición de Distancia en Tiempo Real con Sonar Arduino y Visualización en Processing
- Control de brillo LED sin interrupciones con Bolt IoT y Arduino UNO
- Construye una Brújula Digital en Tiempo Real con Arduino y Processing