TEA5767 Radio modülünü Arduino ile Kontrol Etmek

TEA 5765 FM Radio,
Buton ile kapatılıp açılabilen, ve istasyon arayan bir program. Bu programın fonksiyonlari çağırabilmesi için yalnızca, TEA5767N kütüphanesi kullanmanız lazım. Diger kütüphaneler için bir düzeltme gerekir. Ayrıca I2C LCD DISPLAY, Türkiyede iki tip bulunuyor. (I2C adresleme olarak)

LiquidCrystal_I2C lcd(0x27,16,2);

LiquidCrystal_I2C lcd(0x3F,16,2);

Display göstermediği zaman yukarıdaki adres satırları kullanılabilir.
Ayrıca, Arkadaki kontrast ayarı da gerekli olabilir.

Kodlardaki array değişken dizisine yazılan istasyon frekansları, Antalya radyolarına  aittir.
Yöreye göre değiştirmek gerekebilir. Burada kodlar direk verilmiştir, bir sonraki istasyonda direk girilmiştir.
Zayıf istasyonlar atlanmıştır. Arraydeki 10 istasyon az olursa siz, (maxstation değişken değerini) artırabilirsiniz.
Ben burada kısa olsun diye 9 verdim. Arrays de 10 istasyon var. Bunu  9 vermemin sebebi onuncu istasyona varınca sıfırlamadan önce 137 MHz gidiyor. Bunu önlemek için maxstation = 9; yazdim. O zaman düzgün gidiyor. ( Bunun sebebi ARRAY değişkenleri 10 adet ise 0-9 arası olması. Yani değişkenler 0. Adresten başlar. Toplam 10 adet olacaktır.) Tabi bu istasyonlar artınca da böyle olmalı. Mesela 40 istasyonlu bir Array de maxstation =39 olmalı.

Sizler daha fazla deneyler yapabilirsiniz. Bu kodda iki Buton var. Biri istasyon yükselmek için, Diğeri ise ses kapatıp, açmak içindir.
Bu program daha da geliştirilebilir.
Programı buraya görmeniz için koydum. Fakat buradan kopyalarsanız sorunlar çıkabilir. En altta İNDİRME linki var. oradan arduino programı olarak indirebilirsiniz. 

/////////////////////////////////////////////////////////////////////

#include <Wire.h>

#include <TEA5767N.h>

TEA5767N Radio = TEA5767N();

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);

int MUTEPIN = 2;

int STATIONPIN = 3;

int flag = 0;

double stations[] = {87.60,88.00,88.40,88.70,89.00,89.30,89.50,89.70,90.90,91.60};

int currentstation =0;

int maxstation =9;

bool mutestate =0;

void setup() {

pinMode(MUTEPIN,INPUT);

pinMode (STATIONPIN,INPUT);

Wire.begin();

lcd.clear();

lcd.backlight();

lcd.begin();

Radio.selectFrequency(stations[currentstation]);

delay(250);

}

void loop() {

if(digitalRead(MUTEPIN)==HIGH){

mutestate = !mutestate ;

if(mutestate){

delay(250);

lcd.clear();

lcd.print(“SES KAPALI”);

Radio.mute();

}else{

Radio.turnTheSoundBackOn();

lcd.clear();

lcd.setCursor(0,0);

lcd.print(“Frekans: “);

lcd.print(Radio.readFrequencyInMHz());

lcd.print(” MHz “);

lcd.setCursor(0,1);

lcd.print(“Sinyal: “);

lcd.print(Radio.getSignalLevel());

}

}

if(digitalRead(STATIONPIN)==HIGH){

currentstation++;

lcd.clear();

if(currentstation>maxstation){

currentstation =0;

}

Radio.selectFrequency(stations[currentstation]);

flag =0;

delay(250);

}

if(flag == 0) {

lcd.clear();

lcd.print(“Frekans: “);

lcd.print(Radio.readFrequencyInMHz());

lcd.print(”  MHz Signal: “);

lcd.setCursor(1,1);

lcd.print(“Sinyal: “);

lcd.print(Radio.getSignalLevel());

flag=1;

}

delay(100);

}

///////////////////////////////////////////////////////////////////////////////////

TEA5767 yi yakından tanımak isteyen arkadaşlar datasheetini inceleyebilirler. Yukarıdaki programda geri dönüş, ancak en son programa gelince oluyor. Arduinonun Reset butonuyla her an başa dönmek mümkün yada sayıcıyı geri sayan bir buton ilave edilebilir.


Tüm dosyaları buradan alabilirsiniz.

TEA5767 hakkındaki diğer yazılarıma da buradan ulaşabilirsiniz. 
Yazı 1

yazı 2

Videoda, size daha açıklayıcı bilgiler verilmektedir. 

2 Comments

  1. Safak Bey ellerinize saglik, tesekkür ederim. Bu FM yayinlari hakkinda , ileride daha genis bilgi veren bir yazi ilave edecegim.

    asagidaki, sebeb benim aklima gelmemisti, tebrikler cok dikkatlisiniz.

    Bunun sebebi ARRAY değişkenleri 10 adet ise 0-9 arası olması.
    Yani değişkenler 0. Adresten başlar. Güzel günler dilerim.

  2. Selam arkadaslar. Bazen kolaylik olsun diye bu sitede kendi yazdigim, programlari (kodlari) aliyorum.
    Fakat burdan kopi yaptigim codlarda bu isaretler ” ” degisik sola yatik cikiyor ve arduino hata veriyor. Bu hatalari 2 “” nin üzerindeki isaretlerle degistirirseniz, hata düzeliyor. Bilginize!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.