ho acquistato un trasmettitore dall'elechouse dove viene spiegato come collegare velocemente il modulo ad Arduino.
Fm Transmitter -> Arduino
GND->GND
VCC->5v
SDA->A4
SCL->A5
/**
@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;
}
}
}
Fin qua tutto bene, unzippo la libreria fornita dalla casa produttrice, apro lo sketch, carico su Arduino il tutto. Apro il Monitor Seriale e compare la scritta FM-RX come sul codice. A questo punto dovrebbe esserci la possibilità di poter cambiare la frequenza con &xxxx quindi ad esempio volendo 108.0 Mh -> &1080. Il problema è essenzialmente che qualsiasi comando invio non succede nulla, il monitor non da alcuno segnale di vita.
Ora, il modulo fornito è il 2.0 che sia i fornitori di ebay, sia il support del sito mi hanno confermato essere la versione successiva alla 1.0 che è quella mostrata in figura. Il supporter mi ha confermato che il codice non è cambiato, non c'è stato alcun update.
Qualcuno sa aiutarmi? Bisogna modificare il codice? Il modulo può essere difettoso?
Quale modello di Arduino hai?
A4 e A5 vale solo per Arduino UNO e altri col ATmega328. Arduino MEGA e Arduino Leonardo hanno la I2C su altri pin: http://arduino.cc/de/Reference/Wire
Lo scopo del modulo è creare una specie di stazione radio, si chiama ricevitore?
Ho scritto esattamente il nome riportato sul prodotto stesso, dubito possano essersi sbagliati anche loro.
androide10:
Ho scritto esattamente il nome riportato sul prodotto stesso, dubito possano essersi sbagliati anche loro.
Ma tua sai che differenza c'è tra un Trasmettitore radio ed un Ricevitore radio ???
Allora ... sul sito è chiaramente indicato come "FM Radio Receiver Module -- Arduino compatible", ed è giusto, quindi ... o sulla scatola hanno scritto una boiata, o ... stai leggendo qualche altra cosa ...
Comunque è un RICEVITORE ... senza ombra di dubbio !!! ] ] ]
Niente, tutto risolto, magari provvederò a fare una piccola guida utilizzando un LCD e un potenziometro in futuro vista la scomodità della porta seriale.
Qualcuno sa quanto può trasmettere in campo aperto un'antenna di 30cm?
androide10:
Qualcuno sa quanto può trasmettere in campo aperto un'antenna di 30cm?
allora, come da manuale del prodotto, l'antenna dovrebbe essere circa :
Theoretically the antenna length for 100Mhz is 75cm.
... mentre per il resto :
In most countries, it is illegal to build personal radio station if your radio station signal covers a large area. Without any external amplifier and with our simple antenna, this module could transmit about 50m in open area. We test it in a building. And we adjust the module’s antenna and location to make sure it would not interfere with neighbors.