NRF24L01 Wireless Modülü Çalışmama Problemi

Merhabalar, ben nrf24l01 i arduino ile kullandım ve ilk başlarda çalışıyordu fakat bir yerden sonra çalışmayı bıraktı. Şuan ise çalışmıyor. Ne yapabilirim? Şimdiden reşekkürler. (Bu arada devre şemam robotistanınki ile aynı.)

Alıcının kodu:

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"           //Modül ile ilgili kütüphaneleri ekliyoruz

int mesaj[1];
int led = 2;
const uint64_t kanal = 2355;

RF24 alici(9,10);



void setup(void){
 Serial.begin(9600);
 
 alici.begin();
 alici.openReadingPipe(1,kanal);
 alici.startListening();
 pinMode(led, OUTPUT);
 
 }

void loop(void){
 Serial.println("mesaj yok");
 if(alici.available())
 {
    
  
  alici.read(mesaj, 1);      
  Serial.println(mesaj[0]);
     if (mesaj[0] == 100)
     {
      Serial.println("mesaj 100");
      digitalWrite(led, LOW);
      }
      if(mesaj[0] == 150){
     Serial.println("mesaj 150");
      digitalWrite(led, HIGH);
      }
     
     delay(10);
   }
   delay(300);
 }

Vericinin kodu:

//#include  <SPI.h> 
#include "nRF24L01.h"
#include "RF24.h"     //Modül ile ilgili kütüphaneleri ekliyoruz

int mesaj[1];      //mesaj isminde bir dizi tanımlıyoruz
RF24 verici(9,10);     //kütüphane tarafından kullanılacak pinleri tanımlıyoruz
const uint64_t kanal = 2355; //kanalı tanımlıyoruz  
int buton = 7;      //butonun bağlı olduğu dijital pin

#define buton_a 2
#define buton_k 3

void setup(void)
{
 verici.begin();       //nrf yi başlatıyoruz
 verici.openWritingPipe(kanal);  //kanal id sı tanımlanıyor
 Serial.begin(9600);
 pinMode(buton_a, INPUT_PULLUP);
 pinMode(buton_k, INPUT_PULLUP);
} 


void loop(void)
{

if(digitalRead(buton_a) == 0){

  mesaj[0] = 100; 
 verici.write(mesaj, 1);   //mesaj değişkeni yollanıyor
 Serial.println("mesaj gönderildi 100");
  delay(200);
  
}

 if(digitalRead(buton_k) == 0){

  mesaj[0] = 150; 
 verici.write(mesaj, 1);   //mesaj değişkeni yollanıyor
 Serial.println("mesaj gönderildi 200");
  delay(200);
  
}
 }

Merhaba,
Modül bozulmuş olabilir. NRF adaptörlerinden kullanıyor musunuz? Aşağıda devreyi ve kodları paylaştım. Paylaştığım kodlar kesinlikle çalışıyor. Eğer sizde çalışmazsa NRF modülünüze bir cenaze töreni düzenleyebilirsiniz. Kolay gelsin :smiley: .

Verici Devresi ve Kodları

// Kütüphane dosyaları
#include <Enrf24.h>
#include <nRF24L01.h>
#include <SPI.h>
Enrf24 nRF(9, 10, 2);  // CE , CSN/CS/SS , IRQ pinleri
const byte verici_adresi[] = { 0xDE, 0xAD, 0xBE, 0x0F, 0x01 };
int potBilgi;
void setup() 
{
Serial.begin(9600);
SPI.begin(); // SPI başlat
SPI.setDataMode(SPI_MODE0); 
SPI.setBitOrder(MSBFIRST); 
nRF.begin(1000000,124);  
nRF.setTXaddress(verici_adresi); 
}
void loop() 
{
int potBilgi = analogRead(A0); // potansiyometre değeri okunuyor
Serial.println(potBilgi);
nRF.print(potBilgi); // potansiyometre değeri nRF24L01 ile gönderiliyor
nRF.flush(); 
}

Alıcı Devre ve Şema

// Kütüphane dosyaları
#include <Enrf24.h>
#include <nRF24L01.h>
#include <string.h>
Enrf24 nRF(9, 10, 2);  // CE , CSN/CS/SS , IRQ pinleri
const byte alici_adresi[] = { 0xDE, 0xAD, 0xBE, 0x0F, 0x01 };
int LED=5;
int potBilgi; 
void setup() 
{
pinMode(LED, OUTPUT);
Serial.begin(9600);
SPI.begin(); 
SPI.setDataMode(SPI_MODE0); 
SPI.setBitOrder(MSBFIRST); 
nRF.begin(1000000,124); 
nRF.setRXaddress(alici_adresi); 
nRF.enableRX(); 
}
void loop(){
char alinan_bilgi[33];
if (nRF.read(alinan_bilgi))  
{
potBilgi = atoi(alinan_bilgi);
Serial.println(potBilgi);
analogWrite(LED,map(potBilgi,0,1023,0,255));
//Potansiyometre değer 0-255 pwm aralığına indirgendi.
}
}

evet adaptör kullanıyorum. Hatta her kullanışımdan önce multimetre ile kontrol ediyordum. 5v verince 3.3 v gelcek mi diye:) Hemen devre şemasını ve kodu deniyorum teşekkürler. Bir de bir tanesi bozuk ise ikinciyi nasıl anlayacağım veya hangisinin bozuk olduğunu nereden anlayacağım.

Eğer bir tanesi bozuk ise hangisinin bozuk olduğunu anlama yolunu olduğunu zanetmiyorum ve bilmiyorum. Bir tane sağlam olduğuna emin olduğun modül ile test etmen gerekiyor bu konuda yapacak bir şey yok.

merhabalar kullandığınız kütüphane robotistanın akıllı perde projesindeki ile farklı bu yüzden hata aldım.

Buna benzer bir sorun bende de vardı ben kondansatör bağladım çözüldü 10 uf 100 uf farketmiyor ikisiylede çalıştırdım şu şekilde istersen üstüne lehimle istersen kablo ile yapunnamed

Merhaba,
Evet o şekilde de çalışıyor ancak her zaman değil. NRF için üretilmiş adaptörler çok daha stabil ve sağlıklı çalışıyor. Ama kondansatörde iş görür mü, evet.

Benim zaten adaptörüm var. Şuan tek sıkıntım verdiğiniz kodun kütüphanesi benimkilerden ile farklı.

O zaman benim verdiğim koddaki kütüphaneleri yükleyin ve o kodda göre yazılımınızı yazın. :slightly_smiling_face:

Merhabalar,
İlk başlarda bende haberleşme sorunları yaşadım.
Sonra aşağıdaki videodaki kodları ve şemayı kullandım. Gayet güzel sonuçlar aldım incelemenizi tavsiye ederim.

Güncel bilgilere ulaşmak için aşağıdaki linkede göz atabilirsiniz.
Gerekli dosyalar ve kodlar videonun açıklama kısmında mevcuttur.