The sketch for this project, together with the Phillips Application sheet and the library I used, is available on my GitHub page here.
A version using an Infra Red controller and an OLED Display can be found here.
The TEA5767 is a miniature, high quality, FM Stereo receiver. It can be set to operate on European, USA and Japanese FM systems. The device itself is not capable of operating headphones, but boards (like this one) are available with a stereo amplifier such as the TDA1308 that will drive amplified speakers as well as headphones. The one I purchased cost just over £3 and came complete with a short antenna.
There is no shortage of libraries, sketches or YouTube postings available for this radio and the majority seem to use an LCD with keypad shield. I tried several different libraries and eventually settled on one that came with a complete project for an FM Radio using the LCD Shield. As I did not want the complexity of the multi menu display that came with this project I decided to keep the library but write my own sketch.
Tuning through the radio spectrum looking for stations is something that was very satisfying in the 1960’s, but now all I want is to push a button and get the station I want. With this in mind I decided to go for preset station frequencies (selected using the RIGHT/LEFT buttons) with the facility to fine tune 0.1mHz (using the UP/DOWN buttons). The SELECT button is used to switch to your favourite station.
The sketch is written to allow up to 10 preset stations and this should be changed to suit your own preferences. A pointer is used to show how many presets there are (set this to your number). The display shows Signal Strength(SS), Stereo/Mono, Frequency and Station name.
I used an Arduino Mega, not because the sketch was large, but because I wanted to plug the LCD Screen on and still be able to plug the radio in. The Radio board has four connections SDA (goes to pin 20), SCL (goes to pin 21). 5 volts and Gnd are at either end of the header at the end of the board.
Install the library in the usual way (this library also includes the project details for the radio project I took this from) and upload the TEA5767_FM_Radio_with_LCD_Shield.ino sketch to the Arduino IDE. Modify the preset stations in the sketch and upload to the Arduino. Press SELECT and your favourite station should play, the Up/Down arrows allow fine tuning if necessary. Either headphones or an amplified speaker can be used, but beware, the TEA5767 does not have a volume control and its always on maximum! Using an amplified speaker with volume control is probably the answer.
The quality is good and even with the small telescopic antenna provided I received several stations. I found that as long as the signal strength was above 50% the signal was clean and clear, but if it fell below that there was a sort of knocking sound and I am not sure if this was being generated by the Arduino. This noise was absent when a strong signal was being received.
I find that using the keypad on the LCD needs a lot of code to achieve a simple aim, in addition the LCD is limited in the amount of information it can provide. My next step is to use an OLED display (the colour TFT display would be good, but it brings its own problems) and to control the radio using an Infra Red controller.
Update. A version using an Infra Red controller and OLED Display can be found at my blog here.