Está en la página 1de 10

Menu Buscar Buscar

Arduino Robotica Educativa Glosario

El Octavo Bit / Arduino / Proyectos para Arduino / Hacer una radio FM con Arduino y el módulo TEA5767

Hacer una radio FM con Arduino y el


módulo TEA5767
12 noviembre, 2020 | Actualizado: 30 junio, 2023
Comentarios: 1
Hacer una radio FM con Arduino y el módulo TEA5767

En este artículo haremos una radio FM con el módulo


TEA5767 para Arduino y utilizaremos una pantalla LCD
para mostrar la frecuencia que estamos escuchando.
Para el cambio de frecuencia, vamos a utilizar un
potenciómetro lineal que después cambiaremos por
dos pulsadores, uno para aumentar de frecuencia y otro
para disminuir la frecuencia.
El módulo TEA5767 es un receptor de radio FM que se
puede conectar a la placa Arduino, usando el protocolo
I2C, para buscar emisoras de radio. Este módulo: tiene
una salida de auriculares, no admite la decodificación
de señales RDS y la salida de audio está configurada al
nivel máximo (no dispone de control de volumen).
Sus características son:
Alimentación: 5V.
Rango de frecuencias: 76 – 108 MHz.
Conector para antena.
Conector para auricular.
Led indicador de encendido

Contenido
1 Radio FM con el módulo TEA5767, utilizando un
potenciómetro para cambiar de dial.
2 Radio FM con el módulo TEA5767, utilizando
pulsadores para cambiar de dial

Radio FM con el módulo TEA5767,


utilizando un potenciómetro para
cambiar de dial.
En este primer ejercicio vamos a utilizar un
potenciómetro para cambiar de emisora. Material
necesario para realizar esta práctica:
Arduino uno o similar.
Módulo TEA5767.
Pantalla LCD de 16×2 líneas.
2 potenciómetros lineales (utilizamos el B10K).
Protoboard.
Una resistencia (10K).
Cables.
Esquema:
El módulo TEA5767 se conecta a los 5 V de Arduino, la
comunicación con Arduino se realiza a través de la
interfaz I2C, utilizando solo dos pines. En el Arduino
Uno, los pines de la interfaz I2C son los pines
analógicos 4 (SDA) y 5 (SCL).
Para la sintonización de los canales utilizamos un
potenciómetro 10K, la patilla de voltaje va a la
alimentación, el GND a tierra y la patilla de salida al pin
analógico A0.
El montaje de la pantalla LCD, esta explicado en el
artículo: ¿Cómo conectar una pantalla LCD a Arduino
UNO?
Código:
Para la programación usaremos las librerías Wire,
LiquidCrystal y TEA5767Radio.
#include "Wire.h"
#include "TEA5767Radio.h"
#include "LiquidCrystal.h"

El siguiente paso es crear los objetos radio y lcd:


TEA5767Radio radio = TEA5767Radio();
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

Creamos dos varibles de tipo double donde tendremos


la frecuencia que está sonando, y otra donde
guardaremos la frecuencia anterior.
double frecuencia= 87.5;
double frecuencia_ant = 87.5;

En la función setup() iniciamos el puerto serial y la


pantalla LCD. Mostraremos en la fila superior de la
pantalla LCD «Arduino FM Radio».
void setup(){
Serial.begin(9600);
Wire.begin();
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("Arduino FM Radio");
Serial.println("Arduino FM Radio ");
}
Nos falta leer el valor del potenciómetro conectado al
puerto analógico A0 y convertir el valor leído a una
frecuencia entre 87.5 y 108. Este intervalo de
frecuencias es el que utilizaremos para la sintonización
de la radio, usando el comando radio.setFrequency ().
Todo esto lo haremos en la función loop().
void loop(){
int valor_pot = analogRead(A0);
frecuencia = ((double)valor_pot * (108.0 - 87.5)) / 1024.0 +
87.5;
frecuencia = ((int)(frecuencia * 10)) / 10.0;
if (frecuencia_ant != frecuencia){
lcd.setCursor(0, 1);
lcd.print("Freq: ");
lcd.setCursor(6, 1);
lcd.print(" MHz");
lcd.setCursor(6, 1);
lcd.print(frecuencia, 1);
radio.setFrequency(frecuencia);
frecuencia_ant = frecuencia;
}

Para cambiar de frecuencia se comprueba si el valor de


la frecuencia anterior no es igual al valor actual leído
por el potenciómetro, si este no coincide, cambiamos
de emisora y se guarda en la variable frecuencia_ant.
Código completo de la práctica:
#include "Wire.h"
#include "TEA5767Radio.h"
#include "LiquidCrystal.h"
TEA5767Radio radio;
double frecuencia = 88.0;
double frecuencia_ant = 88.0;
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

void setup(){
Serial.begin(9600);
Wire.begin();
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("Arduino FM Radio");
Serial.println("Arduino FM Radio ");
}

void loop(){
int valor_pot = analogRead(A0);
frecuencia = ((double)valor_pot * (108.0 - 88.0)) / 1024.0 +
88.0;
frecuencia = ((int)(frecuencia * 10)) / 10.0;

if (frecuencia_ant != frecuencia) {
lcd.setCursor(0, 1);
lcd.print("Freq: ");
lcd.setCursor(6, 1);
lcd.print(" MHz");
lcd.setCursor(6, 1);
lcd.print(frecuencia, 1);
Serial.print("frecuencia: ");
Serial.println(frecuencia);
radio.setFrequency(frecuencia);
frecuencia_ant = frecuencia;
}
}

Radio FM con el módulo TEA5767,


utilizando pulsadores para cambiar
de dial.

También podría gustarte