저렴하고 간단한 RF통신 모듈 HC11 사용법 알아보기 / HC-11 / HC11 / 433Mhz / 시리얼 통신

드래곤사우르스 2017-02-13 (월) 11:37 7년전 9494  

안녕하세요 메카솔루션입니다.


이번에는 아두이노 무선 통신 모듈인 HC11 모듈의 사용법 을 알아보고자 합니다.


 

HC11 모듈


특징 알아보기


 동작 전압

 3.3v ~ 5v

 통신 방식

 UART (아두이노 시리얼통신)

 통신 속도

 9600 기본 (AT 커멘드를 통해 설정 가능)

 기능 설정

 AT 커멘드 사용가능

 통신 형식

 양방향 통신 가능




기능 테스트 해보기 : 모듈 A -> 모듈 B 로 LED 제어해보기



부품목록 확인하기



이번테스트는 두개의 아두이노 나노 보드가 사용이 됩니다.


한쪽 나노보드에서는 다른쪽 나노보드의 LED를 제어하는 명령을 보내고 


명령을 받은 나노보드에서 그에 맞게 LED를 제어하는 방식입니다.



기본적인 회로도 알아보기



회로도에서는 회로의 크기를 줄이기 위해 간단히 연결되어 있지만 정리하자면 다음과 같습니다.


VCC - VCC 연결

GND - GND 연결

RXD - 12 연결

TXD - 11 연결

SET - 10 연결

LED - 6 연결 ( 모듈 B한정)



소스코드 알아보기


#include <SoftwareSerial.h>


//#define HC11_A

//#define HC11_B

//#define HC11_TEST

/*

 * 사용하는 보드가 LED 제어 신호를 보내는 보드면

 * //#define HC11_A 를 

 * #define HC11_A 로 변경합니다.

 * 그 반대의 경우 

 * //#define HC11_B를 

 * #define HC11_B 로 변경합니다.

 */

int RXpin = 11;

int TXpin = 12;

int SETpin = 10;

int Chanel = 5;

int LEDpin = 6;



SoftwareSerial HC11(RXpin,TXpin);


void setup() {

  Serial.begin(9600);

  HC11.begin(9600);

  char CHANEL[4];

  sprintf(CHANEL,"%03d",Chanel);

  pinMode(LEDpin,OUTPUT);

  //CC41모듈의 채널을 설정합니다.

  pinMode(SETpin,OUTPUT);

  digitalWrite(SETpin,LOW);

  delay(500);

  HC11.print("AT+C");

  HC11.print(CHANEL);

  HC11.print("\r\n");

  delay(1000);

  while(HC11.available()>0){

    Serial.write(HC11.read());

  }

  digitalWrite(SETpin,HIGH);

}


void loop() {

  

  #ifdef HC11_A

  //여기에 A파트 HC11모듈의 소스코드가 올라갑니다.  

  delay(500);

  HC11.print("ON\r\n");

  delay(500);

  HC11.print("OFF\r\n");

  #endif

  

  #ifdef HC11_B

  //여기에 B파트 HC11모듈의 소스코드가 올라갑니다.

  static String DATA = "";

  while(HC11.available() > 0){

    DATA += (char)HC11.read();

  }

  if(DATA.startsWith("ON")){

    analogWrite(LEDpin,25);

  }

  if(DATA.startsWith("OFF")){

    analogWrite(LEDpin,0);

  }

  if(DATA.endsWith("\r\n")){

    DATA = "";

  }

  #endif

  

  #ifdef HC11_TEST

  //HC-11 테스트용 코드

  while(Serial.available() > 0){

    HC11.write(Serial.read());

  }

  while(HC11.available() > 0){

    Serial.write(HC11.read());

  }

  #endif

  

}



동작 영상 확인 하기




감사합니다.


sally_special-3 


담당자: yevgeny



메카리워즈 Image Map


모바일 버전으로 보기