Merhaba bugün sizlerle basit, minik bir arduino ile radyo yapacağız. Bu radyoda kullanacağımız tea5767 radyo modülünü tanıyalım.

TEA5767

I2C üzerinden kontrollü FM radyo modülüdür. Üzerinde 1/8″ (3.5mm) kulaklık/hoparlör çıkışı ve harici anten bağlantısı mevcuttur. Tuner devresi olarak TEA5767, ses amfisi için TDA1308 entegrelerini kullanır.

Teknik Özellikler:

  • Çalışma gerilimi: 5V
  • Boyutlar: 31mm * 30mm
  • Frekans aralığı: 76-108 MHz
  • Güç kaynağı ters gerilim koruması mevcuttur
  • Güç çıkışı için filtre bobini yer alır
  • Çoklu kapasitans kombinasyon filtresi
  • Mavi güç gösterge ışığı
  • I2C haberleşme arayüzü

MALZEMELER

Devre Şeması

Arduino ile Radyo Yapımı Kodları

Kodumuzdan bahsetmeden önce aşağıdaki kütüphaneleri kuralım.

https://github.com/mroger/TEA5767/archive/refs/heads/master.zip

https://goo.gl/PE8Dvz

Öncelikle devreyi kuruyoruz. Daha sonra aşağıdaki kodu atıp kumandamızın buton kodlarını öğreniyoruz ve bir yere not ediyoruz. Sonra;

const double radioON_OFF = 0xFFA25D; const double kabayar = 0xFF906F; const double kabayar1 = 0xFFE01F; const double inceayar = 0xFF02FD; yazan yerlerdeki başındaki 0x i silmeden istediğiniz buton kodlarını yazıyoruz. !


include <IRremote.h>
IRrecv irrecv(2);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop()
{
if (irrecv.decode(&results))
{
Serial.println(results.value, HEX);
irrecv.resume();
}
}
#include "U8glib.h"
#include <SPI.h>
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);
#include <Wire.h>
#include <TEA5767N.h>
TEA5767N radio = TEA5767N();
#include <IRremote.h>
int RECV_PIN = 2;
int LED_PIN = 13;
IRrecv irrecv(RECV_PIN);
decode_results results;
const double radioON_OFF = 0xFFA25D;
const double kabayar = 0xFF906F;
const double kabayar1 = 0xFFE01F;
const double inceayar = 0xFF02FD;
const double inceayar1 = 0xFF9867;
double frequency = 88.00;
double topFrequency = 110.00;
double bottomFrequency = 88.00;
double intervalFreq = 0.01;
int maxPresets;
double stationsMHZ[7];
String stations[7];
//
int presetCounter = 0;
int favourite;
int sl;
boolean mute = true;
String stringFrequency;
String stringStation;
String stringSignal;
boolean stereo= false;
String rawData;
boolean IRsignal = false;
int a;
boolean stationName = true;
void setup()
{
Wire.begin();
Serial.begin(9600);
irrecv.enableIRIn();
radio.selectFrequency(bottomFrequency);
pinMode(3,INPUT_PULLUP);
digitalWrite(3, HIGH);
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
// bir kaç sık kullanılan radyo kanallarını buraya ekledim
stationsMHZ[1] = 88.58;
stations[1] = "Kral Pop";
stationsMHZ[2] = 95.5;
stations[2] = "Polis Radyosu";
stationsMHZ[3] = 89.8;
stations[3] = "Radyo 7";
stationsMHZ[4] = 98.20;
stations[4] = "101.8";
stationsMHZ[5] = 101.1;
stations[5] = "Radyo Megasite";
stationsMHZ[6] = 95.0;
stations[6] = "TRT Haber";
//
maxPresets = 6;
favourite = 6;
presetCounter = favourite;
selectStation();
}
void loop() {
if(digitalRead(3) == 0){
// picture loop
u8g.firstPage();
do {
drawSetupCalibrate();
} while( u8g.nextPage() );
calibrateIR();
}
if (irrecv.decode(&results)) {
digitalWrite(LED_PIN, HIGH);
if(results.value == kabayar){
presetCounter = presetCounter + 1;
if(presetCounter > maxPresets){
presetCounter = 1;
}
stationName = true;
selectStation();
}
if(results.value == kabayar1){
presetCounter = presetCounter – 1;
if(presetCounter <1){
presetCounter = maxPresets;
}
stationName = true;
selectStation();
}
if(results.value == radioON_OFF){
if(mute){
radio.mute();
radio.setStandByOff();
}
else{
radio.turnTheSoundBackOn();
}
mute = !mute;
}
if(results.value == inceayar){
frequency = frequency + intervalFreq;
if(frequency > topFrequency){
frequency = bottomFrequency;
}
stationName = false;
selectStation2();
}
if(results.value == inceayar1){
frequency = frequency – intervalFreq;
if(frequency < bottomFrequency){
frequency = topFrequency;
}
stationName = false;
selectStation2();
}
irrecv.resume();
digitalWrite(LED_PIN, LOW);
}
printStereoStatus();
u8g.firstPage();
do {
draw();
} while( u8g.nextPage() );
}
void selectStation() {
frequency = stationsMHZ[presetCounter];
radio.mute();
radio.selectFrequency(frequency);
radio.turnTheSoundBackOn();
}
void selectStation2() {
radio.mute();
radio.selectFrequency(frequency);
radio.turnTheSoundBackOn();
}
void printStereoStatus() {
sl = radio.getSignalLevel();
if (radio.isStereo()) {
stereo = true;
} else {
stereo = false;
}
}
void draw(void){
u8g.setFont(u8g_font_profont12);
u8g.drawStr(40,8, "FM Radio");
if(mute){
stringFrequency = String(radio.readFrequencyInMHz());
stringFrequency = stringFrequency + "mhz";
a = stringFrequency.length();
a = 18 – a;
a = a*7;
a = (a/2) + 1;
const char* newFrequency = (const char*) stringFrequency.c_str();
u8g.setFont(u8g_font_profont15);
u8g.drawStr(a,30, newFrequency);
u8g.setFont(u8g_font_profont12);
if (stationName){
stringStation = stations[presetCounter];
}
else{stringStation = "fine tune";}
a = stringStation.length();
a = 21 – a;
a = a*6;
a = (a/2) + 1;
const char* newStation = (const char*) stringStation.c_str();
u8g.drawStr(a,42,newStation);
if(stereo){
u8g.drawStr(5,17,"Stereo");
}
else{
u8g.drawStr(5,17,"Mono");
}
if(sl <10){
stringSignal = "Signal: " + String(sl);
const char* newSignal = (const char*) stringSignal.c_str();
u8g.drawStr(70,17,newSignal);
}
u8g.drawLine(4,58,124,58);
for(int f = 4; f<128; f=f+40){
u8g.drawLine(f,52,f,58);
}
for(int f = 4; f<128; f=f+8){
u8g.drawLine(f,55,f,58);
}
u8g.drawLine(((frequency-80)*4)+4,53,((frequency-80)*4)+4,63);
u8g.setFont(u8g_font_profont10);
u8g.drawStr(0,52,"80");
u8g.drawStr(40,52,"90");
u8g.drawStr(78,52,"100");
u8g.drawStr(114,52,"110");
}
else{
u8g.drawStr(23,30,"Radio sesizde");
}
}
void calibrateIR(){
while(digitalRead(3) == 0){
if (irrecv.decode(&results)) {
digitalWrite(LED_PIN, HIGH);
u8g.firstPage();
do {
drawSetup();
} while( u8g.nextPage() );
}
delay(500);
digitalWrite(LED_PIN, LOW);
}
}
void drawSetup(){
radio.mute();
u8g.setFont(u8g_font_profont12);
u8g.drawStr(15,8, "IR tarafından gönderilen kodlar");
u8g.drawLine(0,15,128,15);
u8g.drawLine(0,55,128,55);
rawData = String(results.value);
const char* newRawData = (const char*) rawData.c_str();
u8g.setFont(u8g_font_profont15);
u8g.drawStr(35,40,newRawData);
irrecv.resume();
}
void drawSetupCalibrate(){
u8g.setFont(u8g_font_profont12);
u8g.drawStr(15,8, "IR tarafından gönderilen kodlar");
u8g.drawStr(20,40,"Veri bekleniyor");
u8g.drawLine(0,15,128,15);
u8g.drawLine(0,55,128,55);
}
view raw radyo.ino hosted with ❤ by GitHub

Ankara Radyo Frekansları


87.5Radyo AYerelHaber Yayını
87.7Pal FmUlusalYabancı Müzik Yayını
88.0TRT FmUlusalKarışık
88.2Radyo Kur’anUlusalKur’an Yayını
88.4Radyo Trafik AnkaraAnkaraTrafik Haber 
88.6Baba RadyoUlusalArabesk
88.8Show RadyoUlusalTürkçe Pop Müzik
89.0Seymen FmUlusalArabesk-Ankara Havaları
89.2Dost FmAnkaraTematik Yayın
89.5Radyo BekAnkaraTürk Sanat Müziği
89.8Radyo 7UlusalTematik Yayın
90.0Radyo VavUlusalKur’an Yayını
90.2TvNet YayınıUlusalTv Yayını
90.4Habertürk RadyoUlusalTv Yayını
90.6Gimsa RadyoAnkaraTürkçe Pop Müzik
90.8Süper FmUlusalTürkçe Pop Müzik
91.0Radyo İlefAnkaraYabancı Müzik Yayını
91.2TRT Radyo 3UlusalKlasik Müzik
91.4Pal NostaljiUlusalYabancı Müzik Yayını
91.6CRI Türk FMUlusalTürkçe Pop Müzik
91.8Hedef RadyoAnkaraTematik Yayın
92.1Radyo DengeAnkaraTematik Yayın
92.4Meteor FmUlusalHava Durumu
92.7Radyo SesAnkaraTematik Yayın
93.0Radyo VizyonAnkaraTürkçe Pop Müzik
93.3TRT Radyo 1UlusalSözlü Programlar
93.6Radyo VivaUlusalTürkçe Pop Müzik
93.8Radio VirginUlusalYabancı Müzik Yayını
94.0Diyanet Risalet RadyoUlusalTematik
94.2Radyo BeyazAnkaraTürkçe Pop Müzik
94.4Polis RadyosuAnkaraTürkçe Pop Müzik
94.6Diyanet RadyoUlusalTematik Yayın
94.8Makro FmAnkaraTürkçe Pop Müzik
95.0TRT Haber yayınıUlusalTv Yayını
95.3Slow TürkUlusalTürkçe Pop Müzik
95.5Polis RadyosuUlusalTürkçe Pop Müzik
95.8Max FmAnkaraYabancı Müzik Yayını
96.0Ostim RadyoAnkaraHalk Müziği Yayını
96.2Bayram FmUlusalTematik Yayın
96.4A Spor RadyoUlusalTematik
96.6Radyo BilkentAnkaraYabancı Müzik Yayını
96.9Park FmAnkaraArabesk-Fantezi Müzik
97.2Metro FmUlusalYabancı Müzik Yayını
97.4NR1 TürkUlusalTürkçe Pop Müzik
97.7Radyo SporUlusalSpor Haber Yayını
98.0Radyo ShemaAnkaraTematik Yayın
98.3Best FmUlusalTürkçe Pop Müzik
98.6TRT TürküUlusalHalk Müziği Yayını
98.8Radyo FenomenUlusalYabancı Müzik Yayını
99.1Radyo BankoAnkaraArabesk-Ankara Havaları
99.3Pal StationUlusalYabancı Müzik Yayını
99.5Power PopUlusalTürkçe Pop Müzik
99.7A HaberUlusalHaber Yayını
100.0Power FmUlusalYabancı Müzik Yayını
100.3TRT FmUlusalKarışık
100.5Atlantis FmAnkaraTürkçe Pop Müzik
100.7Radyo OnAnkaraTürkçe Pop Müzik
100.9Pal DoğaUlusalHalk Müziği Yayını
101.1Radyo MegasiteAnkaraArabesk
101.3Vav RadyoUlusalTematik
101.5Number1 FmUlusalYabancı Müzik Yayını
101.8Kral PopUlusalTürkçe Pop Müzik
102.1Aşk FmAnkaraArabesk-Ankara Havaları
102.4Kral FmUlusalArabesk-Fantezi Müzik
102.6Radyo MegaBölgesel 
102.8TRT NağmeUlusalTürk Halk Müziği
103.1Radyo ODTÜAnkaraYabancı Müzik Yayını
103.4Erkam RadyoUlusalTematik Yayın
103.7TRT Radyo 3UlusalKlasik Müzik
104.0Radyo DUlusalTürkçe Pop Müzik
104.2Radyo Başkent Ü.AnkaraYabancı Müzik Yayını
104.4Tgrt FmUlusalHaber Yayını
104.7NTV RadyoUlusalHaber Yayını
104.9Moral FmUlusalTematik Yayın
105.1Radyo 06AnkaraArabesk-Ankara Havaları
105.3Alem FmUlusalTürkçe Pop Müzik
105.6TRT Kent RadyoAnkara 
105.8Semerkand RadyoUlusalTematik Yayın
106.0Joy TürkUlusalTürkçe Pop Müzik
106.3Ömür RadyoBölgeselArabesk-Fantezi Müzik
106.5Joy FmUlusalTürkçe Pop Müzik
106.7Dolunay RadyoAnkaraTematik
106.9Power TürkUlusalTürkçe Pop Müzik
107.1Radyo AvrasyatürkAnkaraHalk Müziği Yayını
107.4Akra FmUlusalTematik Yayın
107.6CNN Türk RadyoUlusalHaber Yayını
107.8TRT TürküBölgeselTürk Halk Müziği
108.0Özgür RadyoAnkaraHalk Müziği Yayını
kolay gelsin

Arduino ile radyo yapımını gerçekleştirdik.Kolay gelsin…

9 YORUMLAR

  1. Merhaba öncelikle çalışma için tebrik ederim. Devreyi kuruyorum, kodu aktarıyorum; Uzun süre yükleniyor yazıyor. Ekran çalışmıyor. Nerede hata yapmış olabilirim. Teşekkürler.

    • Merhaba
      1- kütüphaneleri kontrol ediniz
      2- devre bağlantılarınızı kontrol ediniz
      3- arduinonuza başka bir kod yükleyerek arduinonuzun sağlamlığından emin olun
      Kolay gelsin

      • kütüphanelere gelen güncellemeler yüzünden hata veriyor. en kısa sürede düzeltilecektir. dilerseniz internet üzerinden kütüphanenin eski versyonunu kurabilirsiniz. kolay gelsin

    • kütüphanelere gelen güncellemeler yüzünden hata veriyor. en kısa sürede düzeltilecektir. dilerseniz internet üzerinden kütüphanenin eski versyonunu kurabilirsiniz. kolay gelsin

  2. Merhaba bu konu ile ilgili bir projem mevcut bana ulaşabilir misiniz? Yardım almak istiyorum detayları konuşuruz, ilginiz için teşekkürler.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz