BASIC4MCU | 질문게시판 | 아두이노 RF무선통신 관련 질문입니다.
페이지 정보
작성자 메론맛드링크 작성일2022-05-27 17:39 조회2,024회 댓글3건본문
nRF24L01모듈을 사용하여 단방향 RF무선통신 장치를 만들고 있습니다.
nRF24L01모듈을 이용해 10m 까지의 거리를 모듈의 파워를 HIGH로 설정하여 대략 10m거리까지 제한을 두었습니다.
그런데 15m로 나가게 되면 수신부에서 2초에서 3초에 한번씩 신호가 오게 되는데
이 신호를 숫자 0으로 표시하고 싶습니다.
아래 코드는 제가 짠 코드인데 원하는데로 작동하지 않아 도움을 받고싶습니다.
요약 : RF무선통신에서 신호가 2초 이상으로 느리게 오는 신호를 거르고 싶습니다.
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7,8);
const byte address[6] = "00001";
unsigned long time_previous, time_current;
void setup() {
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_MIN);
radio.startListening();
time_previous = millis();
}
void loop() {
time_current = millis();
if(time_current - time_previous < 1500){
time_previous = time_current;
if (radio.available()) {
char text[33] = "";
radio.read(&text, sizeof(text));
Serial.println("0");
}
else{
if (radio.available()) {
char text[32] = "";
radio.read(&text, sizeof(text));
Serial.println(text);
}
}
}
}
댓글 3
조회수 2,024메론맛드링크님의 댓글
메론맛드링크 작성일nRF24L01 모듈로 전파를 제한 시키는 방법이 있으면 그것도 좋습니다.
master님의 댓글
master 작성일
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7,8);
const byte address[6]="00001";
unsigned long t1,t;
//
void setup(){
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0,address);
radio.setPALevel(RF24_PA_MIN);
radio.startListening();
t1=millis();
}
//
void loop(){
t=millis();
//
if(radio.available()){
char text[33]=""; radio.read(&text,sizeof(text));
if(t-t1<=1500){ Serial.println(text); }
else{ Serial.println("0"); }
t1=t;
}
}
메론맛드링크님의 댓글
메론맛드링크
감사합니다!!