아두이노 RF통신 오류 질문있습니다

아두이노로 송신기와 수신기 나누어서 송신엣 스위치 누르면 수신기로 신호를보내고 수신기에서 신호를받아서 출력하는걸 하고있습니다.

통신 모듈은 nRF24L01 , nRF24L01 pa-len 사용하였습니다만…

문제는 스위치도 안눌럿는데 혼자 무언갈 자꾸 출력한다는것입니다


이런 모양입니다. 그래서 모듈문제인가보다 하고 바꿧는데 이번엔 엔터누르것처럼 줄이 계속 내려갑니다.
뭐 가문제 인지 모르겟습니다.

하드웨어 사진 이랑 코드 랑 첨부 드려요.

<송신 코드>

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

RF24 radio(9, 10); // SPI 버스에 nRF24L01 라디오를 설정하기 위해 CE, CSN를 선언.
const byte address[6] = "00001"; //주소값을 5가지 문자열로 변경할 수 있으며, 송신기와 수신기가 동일한 주소로 해야됨.
void setup() {
  radio.begin();
  radio.openWritingPipe(address); //이전에 설정한 5글자 문자열인 데이터를 보낼 수신의 주소를 설정
  radio.setPALevel(RF24_PA_MAX); //전원공급에 관한 파워레벨을 설정합니다. 모듈 사이가 가까우면 최소로 설정합니다.

  //거리가 가까운 순으로 RF24_PA_MIN / RF24_PA_LOW / RF24_PA_HIGH / RF24_PA_MAX 등으로 설정할 수 있습니다.

  //높은 레벨(거리가 먼 경우)은 작동하는 동안 안정적인 전압을 가지도록 GND와 3.3V에 바이패스 커패시터 사용을 권장함.

  radio.stopListening();  //모듈을 송신기로 설정
}
void loop() {
  const char text[] = "Hello World";
  radio.write(text, sizeof(text)); //해당 메시지를 수신자에게 보냄
  delay(1000);
}

<수신 코드>

#include <SPI.h> 

#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9, 10); // SPI 버스에 nRF24L01 라디오를 설정하기 위해 CE, CSN 선언.
const byte address[6] = "00001"; //주소값을 5가지 문자열로 변경할 수 있으며, 송신기과 수신기가 동일한 주소로 해야됨.
void setup() {
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setPALevel(RF24_PA_MAX); //전원공급에 관한 파워레벨을 설정합니다. 모듈 사이가 가까우면 최소로 설정합니다.

//거리가 가까운 순으로 RF24_PA_MIN / RF24_PA_LOW / RF24_PA_HIGH / RF24_PA_MAX 등으로 설정할 수 있습니다.

//높은 레벨(거리가 먼 경우)은 작동하는 동안 안정적인 전압을 가지도록 GND와 3.3V에 바이패스 커패시터 사용을 권장함
  radio.startListening(); //모듈을 수신기로 설정
}
void loop() {
  if (radio.available()) {
    char text[32] = "";
    radio.read(&text, sizeof(text));
    Serial.println(text);
  }
}



또 필요한 자료 있으시면 자세히 보여드릴께요

1 Like

해당 모듈을 갖고 놀아보지 않아서 잘 모르겠습니다만,

일단 근거리 테스트시니까 PALevel 을 낮게 잡으셔야 될테고,
채널을 바꿔보시죠.

그리고 큰 상관은 없어보입니다만,

text 는 이미 주소인거 알고 계시죠?
혹시 모르니 송/수신 버퍼도 전역으로 빼 보세요.

1 Like

송수신 버퍼들 위로 올려서 전역으로 선언하였습니다
또한 노트북 양끝에서 테스트 중이라서 LOW로 재설정후 진행했습니다.


공백칸으로 나옵니다. 주소는 0x66으로 잡고 진행했습니다.
공백칸으로 나오는경우로 진행 이돼가고있네요ㅠ
통신 모듈도 한번씩 바꿔서 진행해봐야 겠습니다.

( CE, CSN 번호 확실히 해 두시구요 )
그렇다면 pipe 주소를 확인해 보심이 좋을듯 합니다.

통신 모듈 교체하던중에 나온애 입니다
nRF24L01은 3.3v 에서만 돌아가는애인데 nRF24L01 모듈 어댑터 끼면 5v에서도 작동가능하게 된다 라고
해서 껴둔 애를 뺴고 다이렉트로 nRF24L01 pa len 으로 연결하닌간 나오잘 작동하네요


이 작은애 문제였습니다

권모술수가 난무하는 임베디드의 세계

3 Likes