back to top

Arduino ile FM Radyo Yapalım – Biraz Nostalji

Radyo belki günümüz için eski bir teknoloji sayılmakta, fakat bizden önceki nesillerin tek haber ve eğlence kaynağının bu radyolar olduğu bir zaman da vardı.

Belki o eski zamanlardan kalan bir lambalı radyoya rastlamışsanız, o cihazların ne kadar saygı duyulan büyük nesneler olduğunu anlayabilirsiniz. Günümüzde ise FM radyo, tırnağımız büyüklüğünde bir entegreye kadar küçülmüş durumda. Belki o zamanların sihri hala radyoda bulunmuyor ama, kendimiz yapacağımız radyomuzla bir şeyler üretmenin ve öğrenmenin heyecanını hala yaşayabiliriz 🙂

Arduino FM Radyo Parça Listesi

Ürünlerin tamamını tek seferde satın almak isterseniz bu linki kullanabilirsiniz. (NOT: Stokta olmayan ürünler sepete eklenmemektedir, lütfen buradaki liste ile karşılaştırarak kontrol ediniz.)

Ayrıca bu projeyi yaptıktan sonra radyoyu dinleyebilmek için bir kulaklık ya da hoparlöre ihtiyacınız olacaktır. Eğer hoparlörünüzü de kendiniz yapmak isterseniz Kendin Yap – Mini Hoparlör Kiti isimli ürünü de inceleyebilirsiniz.

TEA5767 FM Radyo Modülü:

Bu projemizde kullanacağımız en önemli parça, TEA5767 stereo FM radyo modülüdür.

TEA5767_1760__39347.1383332101.1280.1280

NXP Semiconductor (Philips) tarafından üretilen bu entegre, I2C haberleşmeye sahiptir. Böylelikle Arduino veya Raspberry Pi gibi popüler geliştirme kartları ile sorunsuzca kullanılabilir. Detaylı olarak incelemek isterseniz entegrenin datasheet’ine başvurabilirsiniz. Bu modül, oldukça küçük boyutludur ve bağlantı bacakları breadboard’lar ile uyumlu değildir. Bu sebepten dolayı piyasada çok sayıda bu entegrenin kolay prototiplenmesi için hazır halde modül bulunmaktadır. Bizim sitemizde yer alan modül, üzerinde ek olarak TDA1308 amfi entegresi ve kulaklık ile anten bağlantıları sayesinde oldukça pratik bir kullanıma sahiptir.

tea5767-fm-stereo-radio-module-12391-54-B[1]

FM Modülünün Arduino’ya Bağlantısı:

fm_radio_bb

Not: Kullandığım çizim programında FM modülünün birebir aynısını bulamadığım için modül ile Arduino’nun bağlantıları temsilidir. Radyo modülü kartında 4 adet pin bulunmaktadır. Bu pinleri şu şekilde Arduino’muza bağlıyoruz:

Modül -> Arduino

VCC -> 5V

GND -> GND

SDA -> SDA (veya UNO’da A4)

SCL -> SCL (veya UNO’da A5)

Arduino Programı:

Bu projede Arduino, TEA5767 modülüne I2C üzerinden haberleşerek dinlemek istediğimiz radyo istasyonunun frekansını gönderiyor. Ayrıca frekansı görebilmemiz için LCD üzerine seçilen frekansı yazıyor. I2C haberleşme kullanacağımız için Wire.h kütüphanesine ve LCD için LiquidCrystal.h kütüphanesine ihtiyacımız olduğundan kodumuzun en başında bu dosyaları eklememiz gerekiyor.

Frekans seçimini, orta pini A0’a bağlı olan potansiyometreyi çevirerek yapıyoruz. Diğer potansiyometre, LCD’nin kontrastını ayarlayabilmemiz için.

Arduino’ya yükleyeceğimiz kodumuz:

#include <Wire.h>
#include <LiquidCrystal.h>

unsigned char frekansH = 0;
unsigned char frekansL = 0;

unsigned int frekansB;
double frekans = 0;

static char frekans_ekran[15];

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
  Wire.begin();
  lcd.begin(16, 2);
  frekans = 93.0;
  frekansAyarla();
  lcd.setCursor(3, 0);
  lcd.print("FM Radyo");
}

void loop()
{
  int reading = analogRead(0);
  frekans = ((double)reading * (108.0 - 87.5)) / 1024.0 + 87.5;
  frekans = ((int)(frekans * 10)) / 10.0;
  frekansAyarla();
  dtostrf(frekans, 6, 2, frekans_ekran);
  lcd.setCursor(4, 1);
  lcd.print(frekans_ekran);
}

void frekansAyarla()
{
  frekansB = 4 * (frekans * 1000000 + 225000) / 32768;
  frekansH = frekansB >> 8;
  frekansL = frekansB & 0XFF;
  delay(100);
  Wire.beginTransmission(0x60);
  Wire.write(frekansH);
  Wire.write(frekansL);
  Wire.write(0xB0);
  Wire.write(0x10);
  Wire.write((byte)0x00);
  Wire.endTransmission();
  delay(100);
}

Bu adımdan sonrası ise modülümüze anten ve kulaklık/hoparlör bağlantısını yapmak. Potansı çevirerek istediğimiz radyo kanalına ayarlayabilir, kendi yaptığımız radyomuzun keyfini çıkarabiliriz. #ÜretmektenKorkma

Son Çıkan Yazılar

57 YORUMLAR

  1. Proje güzel çalışıyor. Teşekkürler. Fakat istasyona geldiğimiz zaman son bir dijit aşağı veya yukarı kayıyor. Sabit kalmıyor. Neden olabilir bşr fikriniz var mı? Teşekkür ederim

    • Merhabalar, bahsettiğiniz problem kullandığınız potansiyometrenin hassasiyeti ile alakalı olabilir. Daha yüksek direnç değerine sahip bir potansiyometre ile deneyebilirsiniz.

    • Haziri bende yaparim kendin uret insanlar senden baksın.sen onlardan bakma ne ise yarar kendin bisey yapmadiktan sonra.be adam…

  2. Toplu satın alma linkine tıkladığımda açıklamada tek seferde satın alma ibaresi geçmesine rağmen sadece seper açılıyor. Bu konuda yardımcı olur musunuz?
    Teşekkürler

  3. Kerem Bey, Projenizin bir benzerini bir bilgisayar mühendisi arkadaşım ile yaptık. sistem çalışıyor ama seste sürekli bir parazit var. Satın aldığımız radyolardaki ses rahatsız etmezken kendi yaptığımızda net ses çıkmamakta, inceden ama sürekli bir rahatsız edici altta parazit var, çoğu istasyon da çekmiyor. Bu arada iki adet 300 wattlık hoparlörü bir anfi vasıtası ile TEA5767 modülünün ses çıkışına bağladık daha yüksek ses alabilmek için. Acaba TEA5767 modülündeki antenin çekim gücü mü yetersiz kalıyor? (not, erkek dişi pin birleşimlerinin bir kısmını lehimli birleşime çevirdiğimde parazit azalmıştı) TEA5767 modülün çekim gücünü arttırmanın bir yolu var mıdır?

  4. Merhabalar.Ben bu sistemi Ldr Işık Sensörü ile ışık yanınca açılır ışık yanmayınca kapanır bir şekilde kullanabilir miyim?

  5. Belli bir yerdeki FM yayınını uzaktaki bir noktadan dinleyebilmek için kullanabilir miyim. Yani böyle bir düzeneği işyerine kurup orada dinlenebilen FM yayınını web üzerinden uzaktan dinlemek istiyorum.

    • Bu projenin bildiğiniz FM radyodan herhangi bir farkı yoktur. FM yayınını aldıktan sonra web üzerinden aktarmak için farklı bir yönteme ihtiyacınız olacaktır.

  6. İyi günler devreyi aynen yaptım fakat kanal ayarı 87.5-108.0 arasında ayarlanması gerekirken 87.5 dan başlayıp 300 lere kadar gidiyor bu nedenle potu ne kadar büyük kullanırsam kullanıyım ayar yaparken sıkıntı oluyor…
    Yardımcı olma şansınız varsa sevinirim.

    • Potansiyometre, değerinden bağımsız olarak 0-5V arasını böleceği için hangi değere sahip olanını kullanırsanız kullanın sonuç değişmeyecektir. Probleminizin kaynağı büyük ihtimalle

      frekans = ((double)reading * (108.0 - 87.5)) / 1024.0 + 87.5;
      frekans = ((int)(frekans * 10)) / 10.0;

      satırlarındaki bir hatadan kaynaklıdır.

  7. lcd de herhangi bir yazı yok ama radyo çalışıyor lcd de mi sıkıntı vardır yoksa bağlantı da bir hata olma ihtimali var mıdır hocam ?

  8. Merhabalar ben projeyi aldım her şeyim çalışıyor ama bir türlü volüme ayarı için bir bağlantı ekleyemedim nasıl ekleyebilirim ve potansiyometreyi 100k yaptım ama yukarıda yazılan yorumlar gibi 87.5 dan başlayıp yükseklere kadar gidiyor kodda nasıl değişiklik yapıp düzeltebilirim lütfen yardımcı olursanız sevinirim

  9. Proje gayet güzel çalışıyor ancak okulum uzakta olduğu için radyoyu çektiremedim başka bir anten aldım fakat bu radyo anteni de jak girişli değil bu nasıl jak girişli hale getirebilirim yani modüle nasıl takılabilir bi hale getirebilirim yardımcı olursanız çok sevinirim

  10. Mevcut kodlarla devreyi sorunsuz bir şekilde çalıştırdım. Devre gayet güzel çalışıyor. Öncelikle emeğinize, bilginize ve ilginize sağlık diler teşekkür ederim. Devre hali hazırda frekans taramasını malumunuz üzere 88.10-88.20-88.30 şeklinde 0.10 birimlik yani 100 khz lik atlamalar ile yapıyor. Ben ise bu devreyi 88.10-88.11-88.12 şeklinde 10 khz lik atlamalar yaparak tarama yapmasını istiyorum. Entegre ve arduino bu isteği karşılayabiliyor. Sıkıntı yok kısacası fakat bunu sizin devrenizde yapmam için kodlarda nasıl bir değişiklik yapmam gerekiyor yardımcı olur musunuz. Kodlardan bazılarını anlayamadığım için ben oynama yapamadım. Sevgiler saygılar şimdiden teşekkürler.

  11. Merhaba ben bunu RDA 5807 ile yaptım yanlız enerjiyi verdiğimde ses geĺmiyor kartı ve modülü biraz oynattığımda ses geliyor ama sağlıklı değil. Bazen tam net ses alıyorum. Kartı oynatmadan enerjiyi kesip birdaha enerji verince yine ses soluk yok kartı biraz kurcalayınca ses geliyor. Acaba RDA 5807 demi bir sorun var. 🤔

  12. Modüle kulaklığı takınca seslerin arkasından “tık tık tık” belli bir ritimle durmayan bir ses geliyor ve ne yaptıysam çözemedim farklı hoparlörler de denesemde fayda etmedi sorun ne olabilir?

  13. İstasyon ayarı (frekans) için potansiyemetrenin ayaklarını hangi noktalara bağlamamız gerekiyor.
    Yardımcı olurmusunuz.

  14. Merhaba RDA5807 ile bu kodu kullana bilirmiyiz?
    RDA5807 gds özelliklide bir uygulama yapabilir misiniz. Ben aldım ama bir türlü internetten bulduğum kodlar ile çalıştıramadım

  15. S.a Hocam RDA5807 ilede bir örnek yapabilir misiniz?
    Ben internettdeki uygulamaları denedim ama hışırtıdan başka birşey gelmiyor, kanalları bulmuyor.

  16. Merhaba, kodu yapıştırıp derleyince şu sorunla karşılaşıyorum;

    sketch_mar22a:30:39: error: ‘dtostrf’ was not declared in this scope

    dtostrf(frekans, 6, 2, frekans_ekran);
    yardımcı olursanız sevinirim.

  17. Mrb ben veriyi bilg.dan girip fm vericide yayınlayıp, tekrar fm alıcı ile alıp bilgisayarda görebilir miyim. Yani buradaki sistemden iki tane alsam birini FM verici diğerini de FM alıcı yapsam olur mu nasıl yapılır?

  18. merhaba öncelikle bu projenin yapımını anlattığınız için teşekkür ederim sorum şu şekilde :
    bu projedeki radyo radyo modülü ile beraber gelen anten kullanıldığında ne kadar uzaklığa kadar çekiyor?

    Bilgilendirir iseniz çok sevinirim 🙂

CEVAP VER

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