산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

HC-06 블루투스 모듈 완벽 가이드: 핀아웃, 사양, 아두이노 연동, 응용

HC-06은 블루투스 2.0+EDR 기반의 슬레이브(Slave) 전용 모듈로, 마이크로컨트롤러와 스마트폰/PC 간 무선 시리얼 통신을 가장 저렴하고 간단하게 구현할 수 있는 대표적인 부품입니다. 마스터 역할은 못 하지만, 슬레이브로서 수동적 연결 대기만 필요한 대다수 DIY/교육/프로토타입 프로젝트에 최적입니다. 이 글에서는 HC-06의 핀아웃, 상세 사양, AT 명령어, 아두이노 연동 회로/코드, 실전 팁, 트러블슈팅까지 종합적으로 다룹니다.

HC-06 개요 및 버전 구분

버전기판 색상칩셋펌웨어특징
HC-06 (구형)파란색/녹색CSR BC417Linvor / HC-06초기 버전, AT 명령어 세트 제한적
HC-06 (신형, ZS-040 등)빨간색/검정CSR BC417 / BK3231HC-06 / MLT-BT05AT+VERSION 등으로 버전 확인 필요. 펌웨어별 명령어 차이 있음
HC-05빨간색 (보통)CSR BC417HC-05마스터/슬레이브 전환 가능, AT 명령어 풍부, 상태 핀 있음

핵심: HC-06은 슬레이브 전용. 마스터 역할(다른 블루투스 장치에 능동적 연결) 필요 시 HC-05 또는 ESP32 사용.

핀아웃 (Pinout) - 일반적인 6핀 모듈 기준

핀 번호이름기능전압 레벨비고
1KEY / EN모드 선택 / 활성화3.3VLow/NC: 통신 모드, High: AT 명령 모드 (일부 버전: 부팅 시 High로 진입)
2VCC전원 입력3.6~6V (보드 내 LDO로 3.3V 변환)아두이노 5V 핀 연결 가능. 3.3V 직접 입력도 가능 (LDO 바이패스)
3GND그라운드-공통 그라운드 필수
4TXD시리얼 데이터 송신 (모듈 → MCU)3.3V TTLMCU RX 핀 연결. 5V MCU면 분압기 필요
5RXD시리얼 데이터 수신 (MCU → 모듈)3.3V TTLMCU TX 핀 연결. 반드시 5V→3.3V 레벨 시프트 필요
6STATE연결 상태 표시3.3V연결 시 High, 미연결 시 Low. LED 내장된 모듈도 있음

주요 사양 (Key Specifications)

항목사양
블루투스 버전2.0 + EDR (Enhanced Data Rate)
동작 주파수2.4GHz ISM 대역 (2.402~2.480GHz)
전송 출력≤ +4 dBm (Class 2, 약 10m 범위)
수신 감도≤ -84 dBm (0.1% BER)
통신 속도 (UART)기본 9600 bps, 설정 가능: 1200~1382400 bps
무선 전송 속도1 Mbps (동기) / 2.1 Mbps (최대, EDR) / 160 kbps (비동기)
변조 방식GFSK (1Mbps), π/4-DQPSK (2Mbps), 8DPSK (3Mbps)
프로파일SPP (Serial Port Profile)만 지원
안테나온보드 PCB 안테나 (일부 u.FL 커넥터 버전 존재)
동작 온도-20°C ~ +55°C (일부 -40~+85°C)
전원 전압3.3V 코어, 모듈 보드 입력 3.6~6V (내장 LDO)
동작 전류페어링 중 ~30~50mA, 연결 후 ~8~15mA, 슬립 ~수 μA
크기약 27×13×2.5mm (모듈 단품), 36×5×16mm (기판 실장형)
인증FCC, CE, RoHS (정품 기준)

아두이노 연동 회로 (HC-06 + Arduino Uno/Nano)

배선도 (전압 분압 필수!)


아두이노 (5V 로직)          HC-06 모듈 (3.3V 로직)
┌──────────────┐           ┌──────────┐
│ TX (D1)      │────[1kΩ]──┤          │
│              │────[2kΩ]──┤ RXD      │  ← 분압비 2/3: 5V → 3.3V
│              │           │          │
│ RX (D0)      │◀──────────┤ TXD      │  ← 3.3V → 5V 입력 가능 (아두이노 VIH > 3V)
│              │           │          │
│ GND          │───────────┤ GND      │  ← 공통 그라운드 필수!
│ 5V           │───────────┤ VCC      │  ← 5V 공급 (모듈 내 LDO로 3.3V 변환)
└──────────────┘           └──────────┘

주의사항:

SoftwareSerial 사용 예시 (하드웨어 시리얼 보존)


#include 
SoftwareSerial btSerial(2, 3); // RX=D2, TX=D3 (아두이노 기준: D2←모듈TXD, D3→모듈RXD)

void setup() {
  Serial.begin(115200);      // PC 디버그용
  btSerial.begin(9600);      // HC-06 기본 보레이트
  Serial.println("HC-06 테스트 시작. 'AT' 명령 테스트 가능.");
}

void loop() {
  // 모듈 → PC
  if (btSerial.available()) {
    Serial.write(btSerial.read());
  }
  // PC → 모듈
  if (Serial.available()) {
    btSerial.write(Serial.read());
  }
}

AT 명령어 모드 진입 및 주요 명령어

AT 모드 진입 방법

  1. 모듈 전원 차단
  2. KEY/EN 핀을 High (3.3V, VCC 또는 3.3V 핀에 연결) 상태로 유지
  3. 전원 인가 → 모듈 부팅 시 AT 명령 모드 진입 (보레이트 보통 38400 또는 9600, 펌웨어별 상이)
  4. 시리얼 모니터에서 "AT" 전송 → "OK" 응답 확인

※ 일부 신형 펌웨어(MLT-BT05 등)는 전원 인가 후 1~2초 내에 KEY=High 펄스 주어야 진입. 데이터시트 확인 필수.

자주 쓰는 AT 명령어 (펌웨어별 차이 주의)

명령어기능예시 응답비고
AT연결 테스트OK기본
AT+VERSION펌웨어 버전 확인Linvor V1.8 / HC-06 V2.0 등버전별 명령어 차이 판단용
AT+NAME<name>장치 이름 설정OKsetname예: AT+NAMEMySensor
AT+PIN<xxxx>페어링 PIN 코드 설정OKsetPIN기본 1234. 예: AT+PIN8888
AT+BAUD<1-8>UART 보레이트 변경OKbaud1=1200, 2=2400, 3=4800, 4=9600(기본), 5=19200, 6=38400, 7=57600, 8=115200
AT+PARI<x>패리티 설정OKparity0=None(기본), 1=Even, 2=Odd
AT+STOP<x>스톱 비트 설정OKstop0=1비트(기본), 1=2비트
AT+ROLE역할 확인 (슬레이브만)OK+ROLE:SHC-06은 슬레이브 고정
AT+RESET모듈 재시작OK설정 적용 위해 필요
AT+ORGL공장 초기화OK모든 설정 기본값 복원

스마트폰 앱 연동 (실전 예시)

  1. 안드로이드: Serial Bluetooth Terminal, Bluetooth Terminal, Arduino Bluetooth Controller 등 설치
  2. 폰 블루투스 켜기 → HC-06 검색 → 페어링 (PIN: 1234 또는 변경한 값)
  3. 앱 실행 → 장치 선택 → 연결 → 데이터 송수신 테스트
  4. 아두이노 측: 수신 문자 파싱하여 LED 제어, 센서 데이터 전송 등 구현

아두이노 수신 파싱 예시


String cmd = "";
void loop() {
  while (btSerial.available()) {
    char c = btSerial.read();
    if (c == '\n') {
      cmd.trim();
      if (cmd == "LED_ON") digitalWrite(13, HIGH);
      else if (cmd == "LED_OFF") digitalWrite(13, LOW);
      else if (cmd.startsWith("PWM:")) analogWrite(9, cmd.substring(4).toInt());
      btSerial.println("ACK: " + cmd);
      cmd = "";
    } else {
      cmd += c;
    }
  }
}

트러블슈팅 (Troubleshooting)

페어링 안 됨 / 검색 안 됨
① 전원 안정적? (3.3V LDO 출력 확인) ② KEY/EN 핀 떠있지 않은가? (통신 모드 시 Low/GND) ③ 안테나 금속 물체 근접? ④ 다른 2.4GHz 간섭(Wi-Fi, 전자레인지)? ⑤ 모듈 불량 → 다른 모듈로 테스트
자주 끊김 / 통신 오류
① 보레이트 불일치 (모듈/아두이노/앱 모두 동일해야) ② 전원 노이즈 (디커플링 10μF+0.1μF VCC-GND 근접) ③ 레벨 시프트 누락 (RXD 라인) ④ SoftwareSerial 타이밍 오차 → 하드웨어 시리얼(메가: Serial1~3) 또는 하드웨어 UART 사용 ⑤ 안테나 방향/거리
AT 명령 안 먹힘
① AT 모드 진입 조건 확인 (KEY/EN 핀, 부팅 시점) ② 보레이트: AT 모드는 38400 또는 9600 고정일 수 있음 ③ 줄바꿈 설정: "Both NL & CR" (아두이노 시리얼 모니터) ④ 펌웨어별 명령어 차이 (AT+HELP로 지원 명령 확인)
데이터 수신 안 됨 (TXD→RX)
① 배선: 모듈 TXD → 아두이노 RX (D0 또는 SoftwareSerial RX) ② 공통 GND ③ 아두이노 코드에서 Serial.read() / btSerial.read() 호출 확인

HC-06 vs HC-05 vs 대안 모듈 비교

모듈역할BLEAT 명령가격추천 용도
HC-06Slave onlyNo기본$2~4단순 시리얼 대체, 스마트폰 제어, 교육
HC-05Master/SlaveNo풍부$3~5두 MCU 간 무선 링크, 마스터 필요 시
HM-10 / HM-11Slave (Central/Peripheral)Yes (4.0/4.2)풍부$4~6iOS 연동, BLE 비콘, 저전력
ESP32Master/Slave/Central/PeripheralYes (5.0)N/A (펌웨어)$5~10올인원: MCU+Wi-Fi+BLE, 고성능, 저가
nRF52840 (Adafruit Feather 등)All rolesYes (5.0/5.1/5.2)N/A$15~25전문 BLE/Thread/매터 개발, 초저전력

마무리

HC-06은 "싸고, 단순하고, 검증된" 블루투스 슬레이브 모듈의 대명사입니다. BLE, 마스터 역할, 고속 전송이 필요 없다면 여전히 훌륭한 선택입니다. 단, 3.3V 로직 레벨 시프트(RXD 라인)와 안정적인 전원 공급만 지키면 대부분의 프로젝트에서 문제없이 동작합니다. 신규 설계라면 BLE 지원과 더 나은 성능의 ESP32 또는 HM-10 계열을 우선 고려하시되, 레거시 호환성/단순 시리얼 대체/교육용으로는 HC-06이 여전히 유효합니다. 즐거운 무선 통신 프로젝트 되시고, 궁금한 점은 언제든 문의 주세요!

산업기술

  1. 스로틀 포지션 센서(TPS): 작동 원리와 중요성
  2. RVG 센서: 작동 원리와 치과 영상 혁신
  3. 펄스 센서: 작동 원리와 메이커 핵심 응용
  4. RTD 센서 이해: 원리, 정확도 및 주요 응용 분야
  5. 3D 프린팅 이해: 원리, 종류, 주요 응용
  6. 워터젯 가공(Water Jet Machining, WJM): 원리, 장비, 장단점, 응용, FAQ 완벽 가이드
  7. 큐폴라 용해로: 구조, 작동 원리 및 용도 완벽 가이드
  8. 2N3771 NPN 파워 트랜지스터: 핀아웃, 특징, 응용, 대체품 총정리
  9. DS18B20 1-Wire 디지털 온도 센서: 핀아웃, 특징 & 실전 응용
  10. 다이캐스팅(Die Casting) 작동원리: 핫체임버 vs 콜드체임버, 공정 단계, 적용 산업