|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  Raspberry Pi Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  AutoIt (Programación) Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

Arduino en español
Circuitos con Arduino - Juan Antonio Villalpando

-- Tutorial de iniciación a Arduino --

Volver al índice del tutorial

____________________________

53.- Emisora de FM. Receptor de FM.

- Vamos a ver una emisora de FM con Arduino.

Se alimenta con 5 V. Utiliza el bus I2C (SDA y SCL). Funciona en estéreo. Utiliza el chip KT0803K  Monolithic Digital Stereo FM. Vale 4,8 €.

Hoja de datos del KT0803K

Si le ponemos un cable de 75 cm como antena emisora puede llegar a más de 50 m. Sin antena unos 10 m.

Se puede configurar mediante el programa o mediante un potenciómetro para emitir en la gama de 70 a 108 MHz.

Se le puede acoplar un cable con terminales jack 3,5 mm en su conector de entrada como entrada de audio. Para ello es conveniente tener un cable con un jack estéreo de 3,5 mm macho-macho, para poder conectarlo desde la salida de un móvil (por ejemplo) a la entrada de este módulo.

 

_________________
1.- Emisora de FM.

Tenemos nuestro Arduino R3. Recordamos que tiene dos parejas para el bus I2C, se pueden utilizar las dos de abajo como indica la figura o las dos de arriba como lo he marcado en verde y azul.

Conectamos el módulo a 5 V, Gnd y las señales del bus I2C: SCL y SDA.

Para introducir un audio de prueba tomamos nuestro móvil, ponemos una canción. La canción sale por el conector de audio.

Conectamos el conector de audio del móvil con el conector de entrada del módulo de la emisora con un cable jack macho-macho de 3,5 mm.

Ponemos un radio receptor FM sintonizado a 90 MHz y oiremos lo que está transmitiendo la emisora.

También podemos poner un micrófono y retransmitiríamos nuestra voz.

Si no ponemos antena se oirá a una decena de metros.

Si soldamos un cable de unos 75 cm al punto ANT (parte de atrás) del módulo oiremos desde más lejos.

_________________
- Código.

Este es el código que viene en la librería y funciona perfectamente con el IDE 1.0.6 de Arduino.

- Para que funcione en otros IDE, por ejemplo en el IDE 1.8..

- Editamos el archivo FMTX.h

- Vamos a la línea 32 y cambiamos:

typedef uint16_t u16;

por

typedef uint16_t uu16;

 

- Esta es la librería que debes copiar en la carpeta libraries del Arduino:

FMTX

Aquí ponemos la frecuencia a la que transmitimos y a la que tiene que estar sintonizado el receptor para oirnos

float fm_freq = 90; // Here set the default FM frequency 90 MHz

En el Serial Monitor podemos ver la frecuencia de transmisión, en este caso 90 MHz

Código
	  
 /**
  @file    fmrx_demo.ino
  @author  www.elechouse.com
  @brief   example of FMRX_MODULE
  
    For this demo, input command format like &xxxx to set select band,
 (eg:if you want to set FM 95.6MHz,then input &0956 and send).
  
  @section  HISTORY
  
  V1.0 initial version
  
    Copyright (c) 2012 www.elechouse.com  All right reserved.
*/
#include <FMTX.h>

float fm_freq = 90; // Here set the default FM frequency
void setup(void)
{

Serial.begin(9600);
Serial.print("FM-TX Demo\r\n");
/**
Initial, set FM channel and select your area:
USA
EUROPE
JAPAN
AUSTRALIA
CHINA
*/
fmtx_init(fm_freq, EUROPE); 
Serial.print("Channel:");
Serial.print(fm_freq, 1);
Serial.println("MHz");
}

void loop(void)
{
/** check for data setting new frequency. Users could input data from Serial monitor. Data 
must start with '&' and followed by 4 numbers, such as &8000. The first two is the integer part
of new frequency (Unit: MHz), and the last one is the decimal part. And the channel must between 70MHz
and 108Mhz. For example, &756 is 75.6MHz, and &666 is out of range.
*/
if(Serial.available()){
switch(Serial.read()){
case '&':
u8 i,buf[4];
float ch;
i=0;
delay(30);
while(Serial.available()&&i<4){
buf[i]=Serial.read();
if (buf[i]<= '9' && buf[i]>= '0') { 
i++;}
else{
i=0;
break;
}
}
if (i==4){
ch = (buf[0]-'0')*100+(buf[1]-'0')*10+(buf[2]-'0')*1+0.1*(buf[3]-'0');
if(ch>=70&&ch<=108){
Serial.print("New Channel:");
Serial.print(ch, 1);
Serial.println("MHz");
fmtx_set_freq(ch);
}else{
Serial.println("ERROR:Channel must be range from 70Mhz to 108Mhz.");
}
}else{
Serial.println("ERROR:Input Format Error.");
}

while(Serial.available()){
Serial.read();
}
break;
}
}
} 

- Podemos cambiar la frecuencia directamente desde el Serial Monitor, escribimos &parteenterapartedecimal, enviamos y cambia la frecuencia de transmisión.

- Casi todo el código anterior es para cambiar la frecuencia de transmisión desde el Serial Monitor.

- Si vamos al Serial Monitor y escribimos: &0956

- Pulsamos Enviar y habremos cambiado la frecuencia de emisión a 95,6 MHz

- Las líneas importante del código de la emisora son:

#include <FMTX.h>

float fm_freq = 90; // Here set the default FM frequency

fmtx_init(fm_freq, EUROPE);

fmtx_set_freq(ch); // Esto para cambiar la frecuencia. Se puede prescindir de esta línea si no vamos a cambiarla.

_________________
2.- Emisora de FM. Cambio de frecuencia emisora mediante un potenciómetro.

- El Arduino UNO R3, tiene el bus I2C en los terminales A4 y A5, pero también lo tiene en los terminales de arriba-izquierda, se puede tomar las señales en cualquiera de los dos sitios.
- También podríamos haber tomado los dos SCL y SDA de los terminales A4 y A5.

- La pantalla LCD tiene bus I2C. La alimentamos con 5V y Gnd. Conectamos su bus SCL y SDA.
- El módulo FM tambien tiene bus I2C. Lo alimentamos con 5V y Gnd. Conectamos su bus SCL y SDA.

- Ponemos un potenciómetro de 50K. Un terminal al positivo del Arduino 5V, el otro al Gnd y el terminal central a la ENTRADA ANALÓGICA A0.

- Al mover el potenciómetro cambiamos de emisora y el valor de su frecuencia se verá en la pantalla LCD.

- El siguiente código no está depurado...

Código
			  
// Código original modificado por Juan A. Villalpando
// kio4.com
#include <FMTX.h>

#include <Wire.h> 
#include <LiquidCrystal_I2C.h> 
// LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

int potenciometro = A0; // ANALOG IN: A0, Terminal intermedio del potenciómetro.
float frecuencia = 90;
float frecuencia_actual = 90;
float valor = 0;
float fre;

float fm_freq = 90;
void setup(void)
{
lcd.begin(16,2);// Columnas y filas de LCD 
fmtx_init(fm_freq, EUROPE); 
}

void loop(void)
{
valor = analogRead(potenciometro);
fre = map(valor, 0, 1023, 0, 380);
frecuencia = 70 + fre / 10;
if (frecuencia != frecuencia_actual) { 
fmtx_set_freq(frecuencia);
frecuencia_actual = frecuencia; 
//lcd.clear(); // Borra pantalla
lcd.setCursor(0,0); // Inicio del cursor
lcd.print("Frec.: ");
lcd.print(frecuencia); 
lcd.print(" MHz");
}
}

_______________________

- App Inventor.

- Una aplicación en Android creada mediante App Inventor, enviará voz o música por FM.

p53_FM.aia

___________________________________
- Diseño.

___________________________________
- Bloques.

_______________________

- Otra emisora de FM.

Esta pequeña emisora trabaja independientemente, solo conectamos una batería de unos 5V entre los terminales indicados, le ponemos un cable como antena y se podrá oir lo que hablemos por el micrófono hasta unos 30 m.

¡¡¡Mide menos de 2 cm.!!!

El terminal 2 se conecta al polo positivo de la alimentación de unos 5 V.

El terminal 4 es el polo negativo.

El terminal 3 es la antena de unos 40 cm - 70 cm

Mediante el condensador ajustable cambiamos la frecuencia de emisión

Dimensiones: 18mm × 10mm × 3mm
Voltaje de funcionamiento: DC 2 V-12 V
Corriente de funcionamiento: 10mA-50mA
Potencia de salida: dBm-15dBm
Precisión de regulación de frecuencia: <0.1mH
Referencia distancia: 100 metros de campo abierto, ambiente interior 10-30 metros (3 V tensión de prueba)
Frecuencia de operación: 85 MHz a 115 MHz
Ajuste de frecuencia: condensador regulable
Impedancia de salida: 50 ohmios

- El siguiente modelo es similar al anterior, pero tiene más alcance aproximadamente 300 m ~ 600 m.

- También tiene la posibilidad de conectar la señal de sonido a la entrada mediante los terminales Audio input y el negativo.

- Busca en Aliexpress: Arduino módulo de transmisión fm.

 

____________________________________________________________________________

- Construir una emisorita de FM.

- Kit emisora FM

http://hacedores.com/haz-un-sencillo-transmisor-fm/

http://makezine.com/projects/super-simple-fm-transmitter/

https://www.youtube.com/watch?v=MMgzUGBfXiE

________________________________

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información