Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Diğer => Konuyu başlatan: thenorthstar - 16 Mart 2019, 13:04:24

Başlık: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: thenorthstar - 16 Mart 2019, 13:04:24
S:A Arkadaşlar, RDA5807m FM radyo modülünden almıştım, internetdeki kütüphaneleri ve uygulamaları denedim ama hışırtıdan başka birşey gelmiyor, İnternettde çalışan videolu kodları bile denedim ama birtürlü kanallabı bulamıyorum nerde yanlış yaptığımı bilemedim. Yardımcı olursanız sevinirim.

Bağlantı Şekli ekte bulunmaktadır.

Kütüphane ve örnek kod:
http://mathertel.github.io/Radio/ (http://mathertel.github.io/Radio/)

Deneme yaptığım kod:
#include <Wire.h>

#include <radio.h>
#include <RDA5807M.h>
#include <SI4703.h>
#include <SI4705.h>
#include <TEA5767.h>

#include <RDSParser.h>


// Define some stations available at your locations here:
// 89.40 MHz as 8940

RADIO_FREQ preset[] = {
  8770,
  8810, // hr1
  8820,
  8850, // Bayern2
  8890, // ???
  8930, // * hr3
  8980,
  9180,
  9220, 9350,
  9440, // * hr1
  9510, // - Antenne Frankfurt
  9530,
  9560, // Bayern 1
  9680, 9880,
  10020, // planet
  10090, // ffh
  10110, // SWR3
  10030, 10260, 10380, 10400,
  10500 // * FFH
};

int    i_sidx=5;        ///< Start at Station with index=5

/// The radio object has to be defined by using the class corresponding to the used chip.
/// by uncommenting the right radio object definition.

// RADIO radio;      ///< Create an instance of a non functional radio.
 RDA5807M radio;    ///< Create an instance of a RDA5807 chip radio
// SI4703  radio;    ///< Create an instance of a SI4703 chip radio.
//SI4705  radio;    ///< Create an instance of a SI4705 chip radio.
// TEA5767  radio;    ///< Create an instance of a TEA5767 chip radio.


/// get a RDS parser
RDSParser rds;


/// State definition for this radio implementation.
enum RADIO_STATE {
  STATE_PARSECOMMAND, ///< waiting for a new command character.
 
  STATE_PARSEINT,    ///< waiting for digits for the parameter.
  STATE_EXEC          ///< executing the command.
};

RADIO_STATE state; ///< The state variable is used for parsing input characters.

// - - - - - - - - - - - - - - - - - - - - - - - - - -



/// Update the Frequency on the LCD display.
void DisplayFrequency(RADIO_FREQ f)
{
  char s[12];
  radio.formatFrequency(s, sizeof(s));
  Serial.print("FREQ:"); Serial.println(s);
} // DisplayFrequency()


/// Update the ServiceName text on the LCD display.
void DisplayServiceName(char *name)
{
  Serial.print("RDS:");
  Serial.println(name);
} // DisplayServiceName()


// - - - - - - - - - - - - - - - - - - - - - - - - - -


void RDS_process(uint16_t block1, uint16_t block2, uint16_t block3, uint16_t block4) {
  rds.processData(block1, block2, block3, block4);
}


/// Execute a command identified by a character and an optional number.
/// See the "?" command for available commands.
/// \param cmd The command character.
/// \param value An optional parameter for the command.
void runSerialCommand(char cmd, int16_t value)
{
  if (cmd == '?') {
    Serial.println();
    Serial.println("? Help");
    Serial.println("+ increase volume");
    Serial.println("- decrease volume");
    Serial.println("> next preset");
    Serial.println("< previous preset");
    Serial.println(". scan up  : scan up to next sender");
    Serial.println(", scan down ; scan down to next sender");
    Serial.println("fnnnnn: direct frequency input");
    Serial.println("i station status");
    Serial.println("s mono/stereo mode");
    Serial.println("b bass boost");
    Serial.println("u mute/unmute");
  }

  // ----- control the volume and audio output -----
 
  else if (cmd == '+') {
    // increase volume
    int v = radio.getVolume();
    if (v < 15) radio.setVolume(++v);
  }
  else if (cmd == '-') {
    // decrease volume
    int v = radio.getVolume();
    if (v > 0) radio.setVolume(--v);
  }

  else if (cmd == 'u') {
    // toggle mute mode
    radio.setMute(! radio.getMute());
  }
 
  // toggle stereo mode
  else if (cmd == 's') { radio.setMono(! radio.getMono()); }

  // toggle bass boost
  else if (cmd == 'b') { radio.setBassBoost(! radio.getBassBoost()); }

  // ----- control the frequency -----
 
  else if (cmd == '>') {
    // next preset
    if (i_sidx < (sizeof(preset) / sizeof(RADIO_FREQ))-1) {
      i_sidx++; radio.setFrequency(preset[i_sidx]);
    } // if
  }
  else if (cmd == '<') {
    // previous preset
    if (i_sidx > 0) {
      i_sidx--;
      radio.setFrequency(preset[i_sidx]);
    } // if

  }
  else if (cmd == 'f') { radio.setFrequency(value); }

  else if (cmd == '.') { radio.seekUp(false); }
  else if (cmd == ':') { radio.seekUp(true); }
  else if (cmd == ',') { radio.seekDown(false); }
  else if (cmd == ';') { radio.seekDown(true); }


  // not in help:
  else if (cmd == '!') {
    if (value == 0) radio.term();
    if (value == 1) radio.init();

  }
  else if (cmd == 'i') {
    char s[12];
    radio.formatFrequency(s, sizeof(s));
    Serial.print("Station:"); Serial.println(s);
    Serial.print("Radio:"); radio.debugRadioInfo();
    Serial.print("Audio:"); radio.debugAudioInfo();

  } // info

  else if (cmd == 'x') {
    radio.debugStatus(); // print chip specific data.
  }
} // runSerialCommand()


/// Setup a FM only radio configuration with I/O for commands and debugging on the Serial port.
void setup() {
  // open the Serial port
  Serial.begin(57600);
  Serial.print("Radio...");
  delay(500);

  // Initialize the Radio
  radio.init();

  // Enable information to the Serial port
  radio.debugEnable();

  radio.setBandFrequency(RADIO_BAND_FM, preset[i_sidx]); // 5. preset.

  // delay(100);

  radio.setMono(false);
  radio.setMute(false);
  // radio.debugRegisters();
  radio.setVolume(8);

  Serial.write('>');
 
  state = STATE_PARSECOMMAND;
 
  // setup the information chain for RDS data.
  radio.attachReceiveRDS(RDS_process);
  rds.attachServicenNameCallback(DisplayServiceName);
 
  runSerialCommand('?', 0);
} // Setup


/// Constantly check for serial input commands and trigger command execution.
void loop() {
  int newPos;
  unsigned long now = millis();
  static unsigned long nextFreqTime = 0;
  static unsigned long nextRadioInfoTime = 0;
 
  // some internal static values for parsing the input
  static char command;
  static int16_t value;
  static RADIO_FREQ lastf = 0;
  RADIO_FREQ f = 0;
 
  char c;
  if (Serial.available() > 0) {
    // read the next char from input.
    c = Serial.peek();

    if ((state == STATE_PARSECOMMAND) && (c < 0x20)) {
      // ignore unprintable chars
      Serial.read();

    }
    else if (state == STATE_PARSECOMMAND) {
      // read a command.
      command = Serial.read();
      state = STATE_PARSEINT;

    }
    else if (state == STATE_PARSEINT) {
      if ((c >= '0') && (c <= '9')) {
        // build up the value.
        c = Serial.read();
        value = (value * 10) + (c - '0');
      }
      else {
        // not a value -> execute
        runSerialCommand(command, value);
        command = ' ';
        state = STATE_PARSECOMMAND;
        value = 0;
      } // if
    } // if
  } // if


  // check for RDS data
  radio.checkRDS();

  // update the display from time to time
  if (now > nextFreqTime) {
    f = radio.getFrequency();
    if (f != lastf) {
      // print current tuned frequency
      DisplayFrequency(f);
      lastf = f;
    } // if
    nextFreqTime = now + 400;
  } // if 

} // loop

(https://i.ibb.co/JcVHYDB/RDA5807M.jpg) (https://ibb.co/JcVHYDB)
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: Epsilon - 16 Mart 2019, 13:35:11
Module anten takıp denedinizmi?

Protoboard da B19 civarındaki pine 75 cm lik teleskopik anten takın. (O pinede biraz lehim ekleyin bu haliyle   anten temas etmeyebilir.)
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: thenorthstar - 16 Mart 2019, 18:13:01
Teleskopik anten bağlayarak denedim hocam.resim çekerken sökmüşüm.
Deli oldum inan. Adam video çekmiş çalışıyor ben aynı kodu atıyorum çalışmıyor sinyal seviyeside 30-34 arasında gösteriyor halbuki.
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: Epsilon - 16 Mart 2019, 19:08:33
Ses çıkışındaki elektrolitik kondansatörü ve başka ne varsa söküp linkteki gibi bağlayın
http://www.theorycircuit.com/arduino-rda5807m-fm-receiver/
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: muratdu - 16 Mart 2019, 22:47:26
Bu çalıştı.

http://nicuflorica.blogspot.com/search/label/RDA5807


(https://i.ibb.co/BL5qwm4/R4.jpg) (https://ibb.co/BL5qwm4)

upload pic (https://imgbb.com/)
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: thenorthstar - 16 Mart 2019, 23:04:28
Hocam valla hayret ediyorum gönderdiğiniz linkdeki devreyide kurdum onuda denedim ama bir türlü olmadı, RDA5807 çıkışını direk kulaklığa bağlayınca önce hışırtı geliyor daha sonra giderek azalıyor ve hiç ses gelmiyor. ordmı hata yapıyorum bilemedim.
Siz RDA5807 çıkışını direk kulaklığamı takıyorsunuz hocam yokda amplifikatöremi?

@Epsilon hocamın verdiği linkdeki kodu ve bağlantıyı denedim yine aynı önce hışırtı yüksek geliyor sonra giderek azalıyor. RDA5807 nin çıkışına amplifikatormü bağlamam gerekiyor?

(https://i.ibb.co/WGNX8cM/1-1.jpg) (https://ibb.co/xXKb9MB)
(https://i.ibb.co/58WXhCB/2.jpg) (https://ibb.co/2t703Rg)
(https://i.ibb.co/cN0kfG1/sinyal.jpg) (https://ibb.co/dQFjCdr)
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: Epsilon - 16 Mart 2019, 23:40:55
@thenorthstar modulde çıkış katıda var kulaklıktan dinlenebilecek seviyede .Bu devrede frekans artırma azaltma butonlarlamı yapılıyor yoksa klavyeden harflere mi basılarak artıp azalıyor 94,60 Mhz de kalmış o hiç değişmiyormu? Referans aldığın projenin devresini görsek daha kısa sürede  çözülürdü .


Sanırım sorun : kodda frekans satırı var.  Orayı 9950  yap(yada bildiğin kuvvetli bir radyonun frekansını gir)
Volume fix satırınıda artır 10 falan yap ,kaça kadar müsade ediyorsa artır.
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: thenorthstar - 17 Mart 2019, 12:01:49
@Epsilon Hocam sizin vermiş olduğunuz link deki devreyi yaptım.http://www.theorycircuit.com/arduino-rda5807m-fm-receiver/ (http://www.theorycircuit.com/arduino-rda5807m-fm-receiver/)
Bu kodda evdeki radyoda dinlediğim bir frekansı sabit yazdım. Seside max 15 çıkarttım ama kulaklığı takınca ilk önce yüksekbi sesle hışırtı geliyor sonra giderek azalıyor ve birsüre sonra hiç ses gelmiyor. Sadece RDA5807 çıkışına kulaklık bağlayınca hiç ses gelmiyor ama sinyal seviyesi 35-36 seviyelerinde oluyor, amplifikatör takınca hışırtı geliyor ama sinyal seviyesi 1-2 ye düşüyor.75cm lik teleskobik anten bağlı.

@muratdu hocamın verdiği likteki butonlu devreyide kurdum.ondada aynı sorun var lcd de frekans gözüküyor ama ses soluk yok.
http://nicuflorica.blogspot.com/search/label/RDA5807 (http://nicuflorica.blogspot.com/search/label/RDA5807)


Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: Epsilon - 17 Mart 2019, 12:12:21
@thenorthstar senin bu radyoyu çalıştıracağız don't worry  :)
Başka bir hata da şimdi gördüm
radyo modulünde Antenin karşisindaki pin A4 e bağlanacak seninkinde boşta
Radyo modülünde ,onun yanındaki de Arduinonun A5 ine bağlanacak
* Birde o bakır kablolar nedir  :)   yokmu sağlam ince 2 kablo

Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: thenorthstar - 17 Mart 2019, 13:27:50
;) SDA--> A4'e  ve SCL--> A5'e bağlı hocam resim çekme açısından bağlanmamış gibi görülüyor orda sorun yok  ::ok
Ethernet kablosundan CAT6 dan söktüm kabloları  :) baya sağlam.
Hocam anten çekim gücünü artırmak için bir şeymi yapsak acaba?

(https://i.ibb.co/Q7g4wNK/3.jpg) (https://ibb.co/qLSvQsr)
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: Epsilon - 17 Mart 2019, 13:47:51
Ben mi yanlış görüyorum? O iki bakır kabloyu birer delik ileriye alırmısınız.Bu şekilde haberleşme olmaması normal
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: thenorthstar - 17 Mart 2019, 16:44:41
Bağlantılar normal hocam, ı2c üzerinden sinyal seviyesini falan alabiliyorum.

Bu sitede bir anten devresi var işe yararmı acaba.
https://www.mikrocontroller.net/topic/313562#3411429 (https://www.mikrocontroller.net/topic/313562#3411429)

(https://i.ibb.co/BzQCzpd/20190317-163509.jpg) (https://ibb.co/BzQCzpd)
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: ipek - 17 Mart 2019, 18:18:10
Arduino kısmı bağlantıları eğer yollağınız foto gibiyse A4 boşta gözüküyor.
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: thenorthstar - 17 Mart 2019, 21:22:27
Hocam kontrol ettim bağlı gözüküyor.


(https://i.ibb.co/WHqTk5w/Screenshot-20190317-201151.jpg) (https://ibb.co/WHqTk5w)
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: Epsilon - 17 Mart 2019, 21:58:11
Nano da I2C yokmu yoksa?

https://www.google.com/search?q=arduino+nano+%C4%B12c+pins&rlz=1C1NHXL_trTR807TR807&oq=arduino+nano+%C4%B12c+pins&aqs=chrome..69i57j0l5.17894j0j7&sourceid=chrome&ie=UTF-8
varmış
http://christianto.tjahyadi.com/wp-content/uploads/2014/11/nano.jpg
(Bende bu devre yüzünden bugün arduinoya başladımda o yüzden bilmiyorum :)
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: ipek - 17 Mart 2019, 22:20:33
ilk resime dikkatlice baktım A4 boş görünüyor,düzeltiysen problem yok,mini maceramı aktarayım Arduino ile onbeş devre falan yaptım,kendim zerre birşey bilmeden GitHub'tan bulduğum dosyalar ile ,yazarlar ego'larını bir yere koymuş,aklı başında insanlar,tek kusurları Library'i paylaşmamaları.deneme yanılma ile Compass modülümü ETE hocanın sayesinde çalıştırdım,bir soru sorulmuş DSxx Realtime çalışmıyor diye,i2C hattına bağlı hoca'da iki uctada 4k7K PulluP direnci takılımı diye,o konuyu birdaha merak etmedim,fakat Compas modülüne baktım iki adet direnç takılacak yer var fakat takılmamış,nit kadar direnci bulamayacım için Ardu tarafına iki direnç attım,devrem kusursuz çalıştı...
ikinci saç yolduranda tft ekranlı bir proje idi ne yaptımsa çalıştıramadım,bir şekilde yazara ulaştım,ben onu yazalı baya oldu güncel derleyici değilde eski versiyonları ile dene diye öneride bulundu,sonuç harika idi.neden niçin nasıl önemli değildi.
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: muratdu - 17 Mart 2019, 22:24:01
Antenden olduğunu sanmıyorum. Bulunduğunuz bölgede normal radyo dinleyebiliyorsanız, problem olmaz. Ben biraz uzağım şehir merkezine ama yine de çekiyor, hatta anteni çıkarıyorum cızırtılı bile olsa çekiyor. Bredboardu değiştirseniz veya farklı bir tarafına kurun derim.
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: Epsilon - 17 Mart 2019, 22:32:52
Birde şu var ilk mesajınızdaki örnek kod ile 5.mesajdaki ekran kodları farklı.
ilkinde frekans,ses ,bass artırma vb ayarlar klavyedeki  bazı tuşlardan yapılıyor.
Siz frekansı nasıl değiştiriyorsunuz?
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: yesilu - 17 Mart 2019, 23:14:19
sonunda rda veya ardu bozuk çıkacak
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: thenorthstar - 18 Mart 2019, 09:51:49
Alıntı yapılan: muratdu - 17 Mart 2019, 22:24:01Antenden olduğunu sanmıyorum. Bulunduğunuz bölgede normal radyo dinleyebiliyorsanız, problem olmaz. Ben biraz uzağım şehir merkezine ama yine de çekiyor, hatta anteni çıkarıyorum cızırtılı bile olsa çekiyor. Bredboardu değiştirseniz veya farklı bir tarafına kurun derim.

Hocam eve kıytırık 25 TL ye aldığım küçük çin malı radyolar var ya o tüm kanalları çeliyor hemen hemen tüm frekanslar dolu ve ucunda 15cm anten var, Ben buna 75cm taktım nafile  ;D

@Epsilon Hocam, 1. mesajda ki kod da klavyeden değiştiriyordum kanalları, diğer kod ise sizin gönderdiğiniz linkteki kod bunda ise sabit frekans var, evdeki radyoda güzel çeken bir kanalıbuldum onun frekansını ( #define FIX_STATION  9460            //Station Tuned = 94.60 MHz.) buraya yazdım.

Şöyle bir enteresanlık var, kulaklığı direk RDA5807 çıkışına bağlayınca Hışırtı giderek azalıyor ve bir süre sonra hiç ses gelmiyor ama RSSI sinyal seviyesi 34-35 lerde geziyor, RDA5807 çıkışını ses sistemine takınca hışırtı sürekligeliyor ve RSSI sinyal seviyesi 1-2 seviyelerine düşüyor. sinyal seviyesi düştüğü içinmi çalışmıyor acaba?

RDA5807 SDA ve SCL uçlarına 4k7 PULLUP direncine gerek var mı?
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: Erol YILMAZ - 18 Mart 2019, 16:57:53
Alıntı yapılan: thenorthstar - 18 Mart 2019, 09:51:49...RDA5807 SDA ve SCL uçlarına 4k7 PULLUP direncine gerek var mı?...

Evet VAR !
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: thenorthstar - 19 Mart 2019, 20:36:10
Onuda denedim hocam 4.7k ekledim ama durum aynı. Dur bakalım 1 tane daha sipariş ettim bide onla deneyim, şimdiki mute, ses kısma ve ses açma yapıyor haberleşmede sıkıntı yok gibi ama bilemedim.
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: Epsilon - 19 Mart 2019, 21:05:14
Breadboarddaki küçük adaptör bağlı değil değilmi?
Yani 3,3 voltu Nano nun pininden Radyo modulüne bağlayacaksınız.
o 5 volt ve 3,3 volt veren adaptörle işiniz yok
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: thenorthstar - 20 Mart 2019, 08:29:20
Hocam 5 v ile Arduinoyu besliyorum, arduinodaki 3.3v ilede modülü besliyorum.
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: Andromeda - 20 Mart 2019, 09:33:37
..deney bordunu değiştir..
bu radyo modülü pratikde ne işimize yarar?
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: thenorthstar - 20 Mart 2019, 17:08:05
Çalıştırabilseydim 128x64 GLCD ile bir radyo yapmaktı planım.
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: thenorthstar - 31 Mart 2019, 20:12:29
S.a Arkadaşlar,
Geçenlerde şehir merkezinde denedim hemen hemen tüm frekansları buldu ve yayınları dinleye bildim. Ama anlamadığım nokta bulunduğum yerde kibrit kutusu kadar olan cep radyosu 20 cm lik anteni ile tüm radyoları çekiyor ama ben 55-60 cm lik anten takıyorum ama hışırtıdan başka birşey yok. Acaba aşağıdaki linkte bulunan FM anten güçlendiricisini yapsam iş görür mü?

https://www.eleccircuit.com/wide-band-high-frequency-amplifier/ (https://www.eleccircuit.com/wide-band-high-frequency-amplifier/)
(https://i.ibb.co/cNsjWc2/wide-band-high-frequency-amplifier.jpg) (https://imgbb.com/)
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: power20 - 31 Mart 2019, 22:37:41
Cep radyosunda 20cm anten var gibi görünse de, radyo içinde antene seri bağlanan bir bobin oluyor. Yani anten biraz daha uzamış oluyor. Yükseltici yapmadan önce daha uzun bir anten bağlamanızı öneririm. 1 metre kablo takalım. Belki de sizin anten kısmında sorun var. Aslında anten hiç işe yaramıyor. Şehir merkezinde yayın kuvvetli olduğu için antensiz de çalışabilir?
Başlık: Ynt: RDA5807m FM Radyo Yapımı Yardım Lütfen
Gönderen: yas - 31 Mart 2019, 23:24:07
aslında sentezörün kitlendiği frekans kayık da olabilir. Clock (32.768 khz) kayıksa kilitlenilen frekansta kayık olacaktır.