아두이노 > 아두이노 RF 통신

TODAY1,338 TOTAL270,516
사이트 이용안내
Login▼/회원가입
포럼 동영상강좌 회원가입


▼ BASIC4MCU 후원업체 최신 정보 ▼

▲ BASIC4MCU 후원업체 최신 정보 ▲

BASIC4MCU | 아두이노 | 아두이노 | 아두이노 RF 통신

페이지 정보

작성자 돌석 작성일2018-06-08 01:52 조회365회 댓글0건

본문

	

한쪽 아두이노에서는 스위치 두개의 값을 입력받아 safe 변수가 결정되고 safe 변수를 RF통신으로 내보낸다.

반대쪽 아두이노에서는 받은 safe 변수로 릴레이를 작동 정지 시킨다.

 

1. 먼저 송신하는 스위치 센서부분

#include <SPI.h>

#include <nRF24L01.h>

#include <RF24.h>

RF24 radio(7, 8); // SPI 버스에 nRF24L01 라디오를 설정하기 위해 CE, CSN를 선언.

const byte address[6] = "12345"; //주소값을 5가지 문자열로 변경할 수 있으며, 송신기와 수신기가 동일한 주소로 해야됨.

int safe;

 

void setup() {

  Serial.begin(9600);

  pinMode(3, INPUT);

  pinMode(4, INPUT);

  radio.begin();

  radio.openWritingPipe(address); //이전에 설정한 5글자 문자열인 데이터를 보낼 수신의 주소를 설정

  radio.setPALevel(RF24_PA_LOW); //전원공급에 관한 파워레벨을 설정합니다. 모듈 사이가 가까우면 최소로 설정합니다.

 

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

 

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

 

  radio.stopListening();  //모듈을 송신기로 설정

}

void loop() {

  int right = digitalRead(3);

  int left = digitalRead(4);

 

  if (right && left) {

    safe = 1;

    Serial.println("DANGER");

  }

  else {

    safe = 0;

    Serial.println("SAFE");

  }

 

  radio.write(&safe, sizeof(safe));

  delay(100);

}

 

 

2. 수신하는 솔레노이드 작동부분 (릴레이 이용) 

 

#include <SPI.h>

#include <nRF24L01.h>

#include <RF24.h>

RF24 radio(7, 8); // SPI 버스에 nRF24L01 라디오를 설정하기 위해 CE, CSN 선언.

const byte address[6] = "12345"; //주소값을 5가지 문자열로 변경할 수 있으며, 송신기과 수신기가 동일한 주소로 해야됨.

void setup() {

  pinMode(10, OUTPUT);

  Serial.begin(9600);

  radio.begin();

  radio.openReadingPipe(0, address);

  radio.setPALevel(RF24_PA_HIGH); //전원공급에 관한 파워레벨을 설정합니다. 모듈 사이가 가까우면 최소로 설정합니다.

 

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

 

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

  radio.startListening(); //모듈을 수신기로 설정

}

void loop() {

  if (radio.available()) {

    int safe;

    radio.read(&safe, sizeof(safe));

    if (safe == 1) {

      Serial.println("BRAKE");

      digitalWrite (10, HIGH); // 릴레이 ON

      delay (500);              //0.5초 delay

    }

    else {

      Serial.println("MOVE");

      digitalWrite (10, LOW); // 릴레이 ON

      delay (500);              //0.5초 delay

    }

  }

  delay(100);

}

 

 

코딩이 괜찮은지 수정할 부분 있으면 말씀해주시면 감사하겠습니다.

댓글 0

조회수 365

등록된 댓글이 없습니다.

아두이노HOME > 아두이노 > 전체 목록

아두이노 목록
제목 작성자 작성일 조회
305 아두이노 작동 중인 팬모터를 블루투스와 연결된 앱으로 RPM 조절하는 코드를 추가해야하는데요. 새글 RobustWalKeR 17:39 6
답변 답변글 답변 : 작동 중인 팬모터를 블루투스와 연결된 앱으로 RPM 조절하는 코드를 추가해야하는데요. 새글 master 17:51 5
303 아두이노 master님 rc카 적외선센서 추가 질문 해도될까요? ㅠㅠ 새글 윤재 16:18 7
답변 답변글 답변 : master님 rc카 적외선센서 추가 질문 해도될까요? ㅠㅠ 댓글[1] 새글 master 16:30 6
301 아두이노 앱인벤터 스크린마다 블루투스 댓글[1] 새글 intoo07 10:05 11
300 아두이노 온도가 특정 온도 이상이면 팬이 동작하지 않고, 그 온도로 코드를 수정하면 팬이 작동합니다. 새글 RobustWalKeR 18-10-18 8
답변 답변글 답변 : 온도가 특정 온도 이상이면 팬이 동작하지 않고, 그 온도로 코드를 수정하면 팬이 작동합니다. 새글 master 18-10-18 6
298 아두이노 앱인벤터를 이용해 블루투스 통신 오류해결 댓글[1] 새글 개준범 18-10-18 10
297 아두이노 아두이노 우노보드R3 로 블루투스 스피커를 만들려고 하는데요 댓글[2] 새글 ㅁㅋㄴㅌ 18-10-18 14
296 아두이노 12v 팬 구동하려고합니다. 새글 zi9104 18-10-18 13
답변 답변글 답변 : 12v 팬 구동하려고합니다. 댓글[7] 새글 master 18-10-18 26
294 아두이노 아두이노 I2C.h 댓글[5] 새글 김리락 18-10-18 13
293 아두이노 2축 엑츄에이터 사용법 댓글[1] 이미지 날다람쥐 18-10-17 20
292 아두이노 온습도출력까진 되는데 그 뒤에 팬이 동작하지를 않습니다. 이미지첨부파일 RobustWalKeR 18-10-17 14
답변 답변글 답변 : 온습도출력까진 되는데 그 뒤에 팬이 동작하지를 않습니다. 댓글[5] master 18-10-17 23
게시물 검색

Privacy Policy
MCU BASIC ⓒ 2017