nRF24L01 modülü ile ilgili

Katılım
22 Eyl 2017
Mesajlar
8
Puanları
1
Yaş
25
Arduino da ledlerin belirli sıralarla yanacağı bir yazılım hazırlıyorum.
nRF24L01modülü kullanarak 5 ledin iki tanesini uzakta kontrol etmek istiyorum yazılımı hazırladım ama nRF24L01 modülünü nasıl kullanacağımı anlamadım nRF24L01 ile ilgili forum yazılarını ve linklerini de inceledim ama net olarak anlaşılmıyor
 
Sana bu konuda çok kolay kullanımlı bir kütüphane önereyim. NRF24L01 veriyi 32 byte lık paketler halinde gönderir. Senin bu iş için 4 komut kullanman yeterlidir.

LED1ON
LED1OFF
LED2ON
LED2OFF

Aşağıdaki kod Serial den yazdığın komutları alıcıya iletir ve komutlara göre alıcıdaki 2 ve 3 pinlerine bağlı ledleri yakar yada söndürür. Bu kod sana yardımcı olacaktır. Kütüphaneyi ekte gönderiyorum. Bir sorun yaşarsan paylaşırsın.


Göderici kodu
Kod:
#include <SPI.h>
#include <nRF24L01p.h>

nRF24L01p transmitter(7,8);//CSN,CE

void setup(){
  delay(150);
  Serial.begin(115200);
  SPI.begin();
  SPI.setBitOrder(MSBFIRST);
  transmitter.channel(90);
  transmitter.TXaddress("Artur");
  transmitter.init();
}

String message;

void loop(){
  if(Serial.available()>0){
    char character=Serial.read();
    if(character=='\n'){
      transmitter.txPL(message);
      transmitter.send(SLOW);
      message="";
    }else{
      message+=character;
    }
  }
}



Alıcı kodu;
Kod:
#include <SPI.h>
#include <nRF24L01p.h>

#define LED1 2
#define LED2 3

nRF24L01p receiver(7,8);//CSN,CE

void setup(){
  delay(150);
  Serial.begin(115200);
  SPI.begin();
  SPI.setBitOrder(MSBFIRST);
  receiver.channel(90);
  receiver.RXaddress("Artur");
  receiver.init();

  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
}

String message;

void loop(){
  if(receiver.available()){
    receiver.read();
    receiver.rxPL(message);
    Serial.println(message);
   
    if(message == "LED1ON"){
      digitalWrite(LED1, HIGH);
    }
    else if(message == "LED1OFF"){
      digitalWrite(LED1, LOW);
    }
    else if(message == "LED2ON"){
      digitalWrite(LED2, HIGH);
    }
    else if(message == "LED2OFF"){
      digitalWrite(LED2, LOW);
    }
    else {
     Serial.println("Komut tanimli degil");
    }
    message="";
  }

}
 

Forum istatistikleri

Konular
128,158
Mesajlar
915,524
Kullanıcılar
449,903
Son üye
furoz6868

Yeni konular

Geri
Üst