Sei sulla pagina 1di 8

FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA 2015

UNIVERSIDAD NACIONAL DEL CALLAO


Ciencia y Tecnología rumbo al Tercer Milenio

FACULTAD DE INGENIERIA ELECTRICA Y ELECTRÓNICA

ESCUELA PROFESIONAL DE INGENIERIA


ELECTRÓNICA

TEMA : Radio FM con Arduino

PROFESOR : Ing. Figueroa, Leoncio

CURSO : Circuitos de Radiocomunicaciones

ALUMNOS :

Chavez Fajardo Edson 1413210074

Huaman Briceño Jhesyka 1413220099

Huapaya Sanchez Renzo 1413230018

Temple Alamo Jhordan 1413220139

Lope Chaucca Samuel 1413210194

Ramos Gutierres Renzo 1413220602

Solis Robles Roberto David 1413210144

BELLAVISTA – CALLAO

2017
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA

Radio FM con el módulo TEA5767 V3

En el POST de hoy vamos a trabajar con el módulo TEA5767 V3, para poder sintonizar las
emisoras de radio FM de nuestro país, que en mi caso es España, aunque este método es válido
para cualquier emisora de radio FM que tenga una frecuencia de emisión entre los 87,5 MHz y
los 108 MHz. Como este módulo posee su propio oscilador de cristal interno es capaz de
funcionar por si solo sin necesidad de conectarlo a ningún microprocesador, aunque dotándolo
de unos circuitos básicos externos para su alimentación y control.

Módulo TEA5767 V3

En nuestro caso lo vamos a conectar a nuestro Arduino mediante comunicación I2C, para que a
través de dos pulsadores denominados “subeCanal” y “bajaCanal”, podamos subir y bajar
respectivamente el canal y para que a través de un display LCD 1602 podamos observar el
nombre de la emisora y la frecuencia que estamos sintonizando en cada momento. Al conectar
el sistema o al realizar un RESET, se sintonizará por defecto el canal número 8 (canal central),
correspondiente a la emisora “M80 Radio”, sin necesidad de presionar ninguno de los dos
pulsadores anteriormente mencionados. Dentro del programa tenemos declarada la
matriz “frecuencia[16 ]” con las frecuencias correspondientes a las 16 emisoras de radio FM
españolas más conocidas según mí criterio. A continuación os muestro la lista de emisoras de
radio FM, que yo he programado, con su número de canal y frecuencia correspondientes.

2
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA

Lista de las emisoras de radio FM españolas más escuchadas

Para poder escuchar la emisora de radio FM que estamos sintonizando en cualquier momento,
hay que conectar unos altavoces estéreo auto amplificados en la salida del módulo TEA5767 V3
(Jack hembra de 3,5 mm), o en su defecto unos auriculares, aunque con el inconveniente de que
no podemos controlar el volumen máximo de la salida y podemos dañar nuestros oídos (en
próximos POST os mostraré como se puede controlar el volumen en un sistema de este tipo).

Por último decir que la sentencia “switch(case)” del código del programa, va a ser la encargada
de almacenar el nombre de la emisora que se va a mostrar a través del display LCD, aunque con
el inconveniente de que esta información la debemos de meter nosotros dependiendo de las
frecuencias de radio FM que hayamos metido dentro de la matriz “frecuencia[ ]”. Para mayor
información os recomiendo que repaséis los comentarios incluidos dentro del código del
programa.

3
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA

Lista de Materiales:

 Arduino UNO Rev.3.

 Cable USB tipo A-B.

 Módulo de radio TEA5767 V3.

 2 Pulsadores.

 2 Resistencias de 10KΩ.

 Módulo LCM 1602 I2C V1.

 Display 16x2 LCD 1602.

 Protoboard.

 Cables de conexión.

Programacion:
1. #include <Wire.h>
2. #include <LiquidCrystal_I2C.h>
3. #include <TEA5767Radio.h>
4.
5. // Declaración del objeto "radio" de tipo TEA5767Radio
6. TEA5767Radio radio = TEA5767Radio();
7.
8. // Matriz que acumula las 16 frecuencias de las 16 emisoras de radio FM que yo he
seleccionado
9. float frecuencia[16] =
10. {
11. 88.5, 90.2, 90.9, 92.2, 94.4, 95.1, 97.3, 98.1, 99.4, 100.4, 101.5, 102.4, 102.8, 10
4.5, 105.2, 106.7
12. };
13.
14. int canalInicial = 6; // Establecemos el canal inicial en uno diferente al actual
15. int canalActual = 7; // Establecemos la emisora intermedia de la lista
16. int subeCanal = 3; // Pin digital para el botón de subir el canal
17. int bajaCanal = 2; // Pin digital para el botón de bajar el canal
18. int imprimir = 1; // Variable para imprimir datos una sola vez
19. // Declaración del objeto
20. // Terminales de conexión del LCD
21. // addr, en,rw,rs,d4,d5,d6,d7,bl,blpol

4
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA

22. LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);


23.
24. void setup()
25. {
26. Wire.begin(); // Comienza la comunicación I2C
27. lcd.begin(16,2); // Inicializa el LCD para 16x2
28.
29. // Mensaje de inicio de la RADIO
30. lcd.backlight();
31. lcd.clear();
32. lcd.setCursor(0,0);
33. lcd.print("RADIO TEA5767 V3");
34. delay(3000);
35.
36. // Imprimimos los valores iniciales a través del LCD
37. imprimirFrecuenciaCanal();
38. lcd.setCursor(0,1);
39. imprimirEmisora();
40. }
41.
42. void loop()
43. {
44. // Si presionamos el pulsador subeCanal y el canal es menor o igual a 14
45. if(digitalRead(subeCanal)== HIGH && canalActual <=14)
46. {
47. // Subimos un canal e imprimimos valores a través del LCD
48. canalActual ++;
49. imprimirFrecuenciaCanal();
50. lcd.setCursor(0,1);
51. imprimirEmisora();
52. }
53.
54. // Si presionamos el pulsador bajaCanal y el canal es mayor o igual a 1
55. if(digitalRead(bajaCanal)== HIGH && canalActual >=1)
56. {
57. // Bajamos un canal e imprimimos valores a través del LCD
58. canalActual --;
59. imprimirFrecuenciaCanal();
60. lcd.setCursor(0,1);
61. imprimirEmisora();
62. }
63.
64. // Si hemos cambiado de canal

5
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA

65. if(canalInicial != canalActual)


66. {
67. radio.setFrequency(frecuencia[canalActual]); // Se sintoniza la frecuencia
correspondiente
68. }
69.
70. canalInicial = canalActual; // Actualizamos el canal inicial
71. delay(50); // Retardo para evitar el rebote de los pulsadores
72. }
73.
74. // Función que imprime la frecuencia de la emisora y el número del canal en el que
estemos
75. void imprimirFrecuenciaCanal()
76. {
77. lcd.clear();
78. lcd.setCursor(0,0);
79. lcd.print("CH");
80. lcd.print(canalActual+1);
81. lcd.print(" ");
82. lcd.print(frecuencia[canalActual]);
83. lcd.print(" MHz");
84. }
85.
86. // Función que imprime el nombre de la emisora
87. void imprimirEmisora()
88. {
89. switch(canalActual)
90. {
91. case 0:
92. {
93. lcd.print("<Cadena 100>");
94. break;
95. }
96. case 1:
97. {
98. lcd.print("<Mortal FM>");
99. break;
100. }
101. case 2:
102. {
103. lcd.print("<40 Principales>");
104. break;
105. }
106. case 3:

6
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA

107. {
108. lcd.print("<RNE Radio 3>");
109. break;
110. }
111. case 4:
112. {
113. lcd.print("<Europa FM>");
114. break;
115. }
116. case 5:
117. {
118. lcd.print("<RNE Radio 5>");
119. break;
120. }
121. case 6:
122. {
123. lcd.print("<RNE Nacional>");
124. break;
125. }
126. case 7:
127. {
128. lcd.print("<M80 Radio>");
129. break;
130. }
131. case 8:
132. {
133. lcd.print("<Kiss FM>");
134. break;
135. }
136. case 9:
137. {
138. lcd.print("<Cadena DIAL>");
139. break;
140. }
141. case 10:
142. {
143. lcd.print("<Radio MARCA>");
144. break;
145. }
146. case 11:
147. {
148. lcd.print("<Melodia FM>");
149. break;

7
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA

150. }
151. case 12:
152. {
153. lcd.print("<esRADIO>");
154. break;
155. }
156. case 13:
157. {
158. lcd.print("<Cadena COPE>");
159. break;
160. }
161. case 14:
162. {
163. lcd.print("<Onda CERO>");
164. break;
165. }
166. case 15:
167. {
168. lcd.print("<Cadena SER>");
169. break;
170. }
171. }
172. }

Potrebbero piacerti anche