...

반응형

NRF24L01은 제어하기가 까다롭지만 아두이노는 라이브러리를 사용해서 아주 간단히 제어할 수 있습니다

 

 

일단 아두이노 라이브러리 매니저에서 nrf24l01로 검색해서 위으 라이브러리를 설치 합니다

 

 

그리고 NRF24L01 모듈을 아두이노와 연결해 줍니다

사용하시는 아두이노 보드에 맞게 위의 핀맵을 참고해서 연결하시면 됩니다

전부 다 연결하고 IRQ는 연결하지 않으셔도 됩니다

 

- 송신쪽 소스 - 

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>


RF24 radio(7, 10); // CE(D7), CSN(D10)
const byte address[6] = "00001";

void setup() {
  
  Serial.begin(9600);
  Serial.println("trans Start");

  // ----- nrf24l01 송신 부분 ----- //
  radio.begin();
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_MIN);
  radio.stopListening();

  const char text[] = "nrf24l01 test";
  radio.write(&text, sizeof(text));
  delay(1000);
  // ----- nrf24l01 송신 부분 ----- //
}

void loop() {
  

}

 

- 수신쪽 소스 - 

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>


RF24 radio(7, 10); // CE(D7), CSN(D10)
const byte address[6] = "00001";

void setup() {
  
  Serial.begin(9600);
  Serial.println("receive Start");


  // ----- nrf24l01 수신 부분 ----- //
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setPALevel(RF24_PA_MIN);
  radio.startListening();
  // ----- nrf24l01 수신 부분 ----- //
  
  
}

void loop() {

  // ----- nrf24l01 수신 부분 ----- //
  if (radio.available()) {
    char text[32] = "";
    radio.read(&text, sizeof(text));
    Serial.println(text);
  }
  // ----- nrf24l01 수신 부분 ----- //

}

 

송신쪽 소스는 처음 시작시에만 데이터를 보내게 되어 있습니다

테스트시 리셋 버튼을 누르면 데이터를 한번 보냅니다

그리고 수신쪽에서는 송신쪽에서 받은 데이터를 시리얼로 확인할 수 있습니다

시리얼 모니터를 열어서 확인하시면 됩니다

반응형