Arduino Touchscreen FM Radio
HTML-код
- Опубликовано: 11 апр 2017
- Arduino Touchscreen FM Radio
In this video we put together a touchscreen FM radio. For the receiver we are using the Si4703 breakout board from Silicon Laboratories. In addition to just being an FM receiver, this board is capable of receiving RDS and RBDS signals.
For the Touchscreen we are using a 2.8" TFT LCD from Elegoo. It uses the il9304 chipset and is somewhat compatible with the Adafruit libraries. The only downside to using this display is that it is a shield that uses all the GPIO pins of an UNO. So this project will only work with a Mega.
We've coded the sketch so that the screen displays the frequency with up and down buttons next to it. The second line displays the volume with mute,up and down buttons next it it. At the bottom we have made provisions for RDS info to be displayed.
Si4703 breakout board: amzn.to/2oXzFYb
Elegoo 2.8" TFT LCD: amzn.to/2ooEQNW
All of my sketches are available here: www.dropbox.com/sh/m6c40pu99f...
~-~~-~~~-~~-~
Please watch: "Diodes: The basic building block of all digital circuits"
• Diodes: The basic buil...
~-~~-~~~-~~-~ Развлечения
Man, your videos just keep getting better and better. You're awesome!
Vivek Venkat Subramaniam thank you for the kind words. getting comments like this keeps me working hard to produce new videos every day.
I absolutely love this circuit. Will have to get the parts now and try it. I have the board already on order from China but will need to get a screen. Would make a great radio for my campervan with a Bluetooth speaker incorporated!
Can't wait to see RDS implementation!
I have this exact Tft! I connected it to an atmega1284p so I had spare pins. This display DEFINITELY uses the ili9341 driver though and is actually fully compatible with the adafruit Tft LCD and gfx libraries. I was planning to make this project with a tea5767 but couldn't get it working so I will definitely check out the module you are using in this video
Nice work!
Where can I find the Si4777 on a board like this?
I have a problem. After I have lifted the sketch the radio is displayed but only briefly and then the screen is white again ??
Hi,
can you send me the links to the used librarys? Maybe this is my mistake and then I can fix my problems
I think; You must move the base(s) of the triangle(s) a little but excellent work!
Hi,
After starting with my first step tutorial from instructables with Si4703 I tried to realize your tutorial with touchscreen.
First I make the changings in the Si4703.cpp:
// int STATUS_LED = 13;
int resetPin = 52;
// SDA/A4 on Arduino
int SDIO = 20;
// SCL/A5 on Arduino
int SCLK = 21;
After this: Compiling and upload to me MEGA. No mistakes and the upload works.
But I only get a white display. No buttons???
Do you know this problem?
Pergunta: Se eu carregar esse mesmo sketch no Arduino Uno ele dará erro de sketch muito grande ( devido o tamanho do codigo)?
Hi, very cool project. I miss the RDS-part. I cannot find the promissed video. Can you help me with this part?
Dear friend happy new year and I want to learn something else,my bandscan here in Greece is from 87.5-108 so it is useless to have 87.0 or 108.6 did you set bandscan in your code to help me to set in Greece bandscan?Second I want to learn if you have manual scan or automatic scan station.
Hi I have built this radio as part of a valve receiver project and it works great but I would like to get the RDS functionality working. are you still going to do the video of the implementation of the RDS Please.
If you have the purple version of si4703 and a Mega, the library is different, (not the breakout version), and won't compile with new pin settings. You won't have to change the library then.
Lets start the next step: The RDS implementation! Can you help me with this?
Hi,
I fixed my problems and it works great.
First fix: The librarys for TFT
#include // Core graphics library Elegoo-TFT
#include // Hardware-specific library Elegoo-TFT
second fix: The Pins for Mega (changes in Code):
uint8_t resetPin = 52;
uint8_t SDIO = SDA;
int SCLK = 21;
SI4703 radio(resetPin, SDIO); //create instance of SI4703 called radio
Lets start the next step: The RDS implementation! Can you help me with this?
Hello sir can I please get the code for this Awesome project?
Hi friend I wanna copy your radio.I 'll try to find the RDS value.I purchased si4703 and tft lcd but my si4703 model request for 3.3 volts but 3.3 volts request and tft lcd so i should connect them in parallel connection with wires so I connect all tft lcd pins in arduino with wires.Now I wanna learn if your Arduino Mega is 2560 model.I wanna ask if I find the code for RDS to make my own video with RDS radio or send code with RDS value here in comments to help your the audience asking for an RDS tuner.
Touchscreen... Caaause we're touchin'
Awesome videos btw, always something new to learn.
Martin Mrňák thank you 😀
Dear friend I tasted this code and it is true.I wanna to make this radio and I wonder if I go to a city and hear a station. This finds the station but can automatically write the station's RDS. For example, if I go to Athens and I put 102.2 it will automatically write to Xxx -> > and if I turn it to 94.9 will write "RYTHMOS" or does not have such a function? If it does not have how can I put it?
+nick sbilliris I did not add that feature, but it is in the library, just have a look at the .h file.
Can you help me to add?
Can I add it and how?What can I copy in to your file?
+nick sbilliris No, I'm sorry, I wish I could.
Ok i think that I try to find it when ni buy all materials.Maybe I find it and I wish to see my comment some another people and can help me.Thanks.I putted like.
Hi,
on serial monitor I get:
Write Fail:2
Write Fail:2
Write Fail:2
Write Fail:2
I get same error write fail:2 how did you fix that?
Wth...why have i not seen this one?...ugh
Du hast sicherlich schon mehr Erfahrungen mit dem Si4703 als ich.
Bevor ich mich mit deinem Projekt beschäftigen wollte, habe ich noch etwas leichteres zum Einstieg gefunde. Dachte ich !!!
www.instructables.com/id/How-to-use-the-Si4703-FM-Radio-board-with-RDS-Ardu/
Leider bekomme ich dieses nicht zum Laufen.
Als Library für den Si4703 habe ich die von Gitghub genommen: Whiteneon/Si4703_FMRadio
Kompilieren und hochladen funktioniert einwandfrei.
Mein Problem ist, dass im Serieal Monitor leider nach Eingabe z.B. a und kein feedback erfolgt.
Ich habe dann diverse Serial.print - Marken eingefügt und sehe, dass das Programm in der void setup() vor den Befehlen radio.powerOn();
radio.setVolume(0);
stehen bleibt und die void loop() nicht durchläuft. Hier hatte ich am Anfang auch eine Serial.print - Marke eingebaut.
Hier mein sketch:
#include
#include
const int resetPin = 2;
const int SDIO = A4;
const int SCLK = A5;
Si4703_Breakout radio(resetPin, SDIO, SCLK);
int channel;
int volume;
char rdsBuffer[10];
char ch;
void setup()
{
Serial.begin(9600);
Serial.println("
Si4703_Breakout Test Sketch");
Serial.println("===========================");
Serial.println("a b Favourite stations");
Serial.println("+ - Volume (max 15)");
Serial.println("u d Seek up / down");
Serial.println("r Listen for RDS Data (15 sec timeout)");
Serial.println("Send me a command letter.");
radio.powerOn();
radio.setVolume(0);
Serial.print("Ende setup");
}
void loop()
{
Serial.print("start loop");
if (Serial.available())
{
ch = Serial.read();
if (ch == 'u')
{
channel = radio.seekUp();
displayInfo();
}
else if (ch == 'd')
{
channel = radio.seekDown();
displayInfo();
}
else if (ch == '+')
{
volume ++;
if (volume == 16) volume = 15;
radio.setVolume(volume);
displayInfo();
}
else if (ch == '-')
{
volume --;
if (volume < 0) volume = 0;
radio.setVolume(volume);
displayInfo();
}
else if (ch == 'a')
{
Serial.print("a wurde ausgewaehlt");
channel = 888; // radio1
radio.setChannel(channel);
displayInfo();
}
else if (ch == 'b')
{
channel = 943; // RS2
radio.setChannel(channel);
displayInfo();
}
else if (ch == 'r')
{
Serial.println("RDS listening");
radio.readRDS(rdsBuffer, 15000);
Serial.print("RDS heard:");
Serial.println(rdsBuffer);
}
}
Serial.print("Ende der loop");
}
Viele Grüße
Ulli
Sorry all I can focus on is your breathing sounds
Congestive heart failure