안녕하세요 메카솔루션입니다.
이번에는 RF LINK 모듈을 이용해서 무선 통신을 구현 하는 방법을 알아보도록 하겠습니다.
http://mechasolution.com/shop/goods/goods_view.php?goodsno=539650
RF LINK 무선 통신 모듈은 송신 모듈과 수신모듈이 따로있어 한 방향으로만 데이터를 전송할 수 있습니다.
아두이노1 이 송신모듈이고, 아두이노2 가 수신 모듈이면
1에서 2로만 데이터를 보낼 수 있습니다.
https://github.com/sui77/rc-switch/releases/tag/2.6.2
전용의 라이브러리가 나와있어 아주 쉽게 사용할 수 있습니다.
배선 알아보기
수신부 회로입니다.
디지털 핀 2번 처럼 인터럽트 기능이 가능한 핀을 위주로 사용이 가능합니다.
송신부 회로입니다.
아무 디지털 핀이나 사용이 가능한 듯합니다.
소스코드
수신부
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() { Serial.begin(9600); mySwitch.enableReceive(0); // 인터럽트 0번핀이 디지털핀 2번입니다. pinMode(13,OUTPUT); }
void loop() { if (mySwitch.available()) { int value = mySwitch.getReceivedValue(); if (value == 0) { Serial.print("Unknown encoding"); } else { if(mySwitch.getReceivedValue() == 100){//수신받은 값이 100이면 LED를 키고 아니면 끕니다. digitalWrite(13,HIGH); } else { digitalWrite(13,LOW); } } mySwitch.resetAvailable(); } } |
송신부
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600); // 디지털 핀 2번을 송신핀으로 지정 mySwitch.enableTransmit(2); } unsigned long sTime = 0; void loop() { sTime = millis(); while(millis() - sTime < 1000){//1초동안 계속 100을 보냄 mySwitch.send(100, 24); } while(millis() - sTime < 1000){//1초동안 계속 0을 보냄 mySwitch.send(1, 24); } } |
동작 영상 확인 해보기
감사합니다.
출처 메카솔루션