Rf ve sd card modullerini birlikte kullanımı ?
  • Ardıuno mega 2560 a rf haberleşme (nrfl2401) modulu ile veri çekip sd card modulu kullanarak veri kaydı yapmaya çalışıyorum.Bağlantıları aşağıdaki gibi yapmış bulunmaktayım;
    RF --> CSN(SS)-53 / CE -9 / SCK-52 / MOSI-51 / MISO - 50 rf modulu belitilen pinlere bağlanmıştır.
    SD --> MOSI - 51 / MISO -50 / SCK -52 / CS-22 nolu uçlara bağlanmıştır.
    Bağlantıyı bu şekilde yaptığımda sanırım bir çakışma oluşuyor.Bu şekilde çalıştırdığımda sd card'ı başlatamıyorum.Yardımlarınızı bekler yardımlarınız için şimdiden teşekkür ederim.
  • RF --> MOSI - 51 / MISO - 50 / SCK - 52 / CE -9 / CSN(SS)-53
    SD --> MOSI - 51 / MISO - 50 / SCK - 52 / CS-22

    pinler anlaşılsın diye yeniden yazdım.
    spi de ce/cs pinleri farklı olması ıyı olmuş çakışma sorunu olmaz.
    csn(ss) pini rf için kontrol pini onunda spi kontrolde etkısı olmaz.
    rf den sd ye gecerken yada sd den rf e geçerken arada 5ms kadar bır zaman gecikmesi koymayı deneyın. sd karta verıyı aldıktan sonra ıcınde işlemeye çalışır bır mıktar zaman ıhtıyacı olabılır.

  • #okoman yardımınız için teşekkur ederim
  • dediğinşz şekilde yaptım ancak pinleri dediğim gibi bağladığım halde çakışma olup olmadığını anlamak için sd card modulunun beslemesini çift konumlu anahtara bağladım anahtar açıkken rf haberleşme çalışmıyor bunun anahtar konumu değiştirerek gözlemledim kodlarım aşağıda yazdığım gibidir;
    #include SPI.h> // spı kutuphanesi tanımlandı.
    #include nRF24L01p.h> // rf haberleşme kutuphanesi tanımlandı.
    #include SD.h> // sd card kutuphanesi tanımlandı.
    #define CSpin 22
    File dosya;
    nRF24L01p alici(53,9);
    /* CSN - > 53, CE -> 9 olarak belirlendi */
    int sayac = 0;
    void setup(){
    Serial.begin(9600);
    SPI.begin();
    SPI.setBitOrder(MSBFIRST);
    /* SPI başlatıldı */

    if (!SD.begin(CSpin)) {// SD kart başlatılıyor
    Serial.println("SD Kart yok yada baglanti basarisiz.");
    return;
    }
    Serial.println("SD Kart baglandi");
    alici.channel(90);
    alici.RXaddress("oda1");
    alici.init();
    /* Alıcı ayarları yapıldı */
    }


    String sicaklik1;
    String nem1;

    void loop(){

    sicaklik1 = sicaklikOlc();
    nem1 = nemOlc();
    Serial.print(nem1);
    Serial.println(sicaklik1);

    dosya = SD.open("Log.txt", FILE_WRITE); // Dosya açılıyor. Yok ise yeni oluşturulur.
    if (SD.exists("Log.txt")) { // Dosya var mı? kontrolü.
    dosya.print(sayac); // dosyaya yazılıyor.
    dosya.print(". Dakika Sıcaklık Değeri : ");
    dosya.print(sicaklik1);
    dosya.print(sayac);
    dosya.print(". Dakika Nem Değeri : ");
    dosya.println(nem1);
    dosya.close(); // dosyayı kapat.
    Serial.println("Sicaklik bilgisi kaydedildi.");
    }else{
    Serial.println("Dosya yok yada yazma başarisiz!");

    sayac++; // sayacı bir arttırıyoruz.
    delay(3000); // 60 saniye bekle


    String nemOlc(){
    while(alici.available()){
    /* Modülden veri geldiği sürece while devam edecek */
    String nem;
    alici.read();
    alici.rxPL(nem);
    }
    }
    String sicaklikOlc()
    {
    while(alici.available()){
    /* Modülden veri geldiği sürece while devam edecek */
    String sicaklik;
    alici.read();
    alici.rxPL(sicaklik);

    }


    }
    }
  • herşey normal bağlıylen hata aldıgınız noktayı kodda işaretleyebilirmisiniz
  • nRF24L01p.h bu lib i nerde bulabilirim. ben antenli olanı kullanıyorum sanırım onun library'si bu

    saygılar
  • hocam bu verdiğin dosyayı googleda arat illaki bir link gelir
  • Evet dogru soyluyorsun bir suru cikiyor
    Ancak ornekler ve aciklalar genellikle nrf24l01 uzerine p olaninin pek yok ben sorunu hala cozebilmis degilim ama bir fikrim var kablolar baglandiktan sonra sadece 2 tane pin degerini programda kullaniyoruz diger pinlerin nereye baglanacagi onceden belirlenms gibi ornekler internette bir tane ornek gormuslugum var radio tanimlanirken diger pinleride program icinde tanimladigimiz (mosi miso gibi) onu bir daha bulamiyorum eger bu sekilde kullanan veya boyle bir ornek gosterebilcek olan varsa cok sevinirim

    Bence nrf24l01 sorunlarinin kaynagi baglantilarinda yatiyor

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook

Tagged

Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.