- 전원 공급 장치 : 3.3V ~ 5V
- 블루투스 사양 V4.0 BLE
- 2.4GHz ISM 대역 주파수
- 전송 속도 : 6K 바이트 / 초 (비동기식 및 동기식)
- 지원되는 전송 속도 : 1200, 2400, 4800, 9600 (기본값), 19200, 38400, 57600, 115200, 230400
- RF 전력 : -23dbm, -6dbm, 0dbm, 6dbm (AT 명령을 통해 수정 AT + POWE)
- 지원 서비스 : 중앙 및 주변 장치 UUID FFE0, FFE1
- 최대 50mA 필요
- 활성 상태일 때 약 9mA 사용
- 습립모드 일때 50-200uA를 사용
- 기본 핀 코드 : 000000
- 기본 이름 : HMSoft
· HC-06 Bluetooth Module의 장점
- 근거리 무선 통신이 필요한 경우 가장 적합한 옵션이다. 이 모듈은 100 미터 미만의 무선 통신에 사용된다.
- 매우 쉽게 인터페이스하고 통신할 수 있다.
- 시장에 나와 있는 모든 유형의 무선 통신을 위한 가장 저렴한 솔루션 중 하나이다.
- 작동하는 데 필요한 전력을 매우 적게 소모하며 배터리로 작동하는 모바일 시스템에서 사용할 수 있다.
- UART 인터페이스를 사용하므로 거의 모든 컨트롤러 또는 프로세서와 인터페이스 할 수 있다.
· HC-06 Bluetooth Module Pin 구성
HC-06 Module에는 핀 배열에 표시된 것과 같이 6개의 핀이 있다. 그것들에서 우리는 모듈을 성공적으로 인터페이스 하기 위해서 4개를 사용할 필요가 있다. 일부 브레이크 아웃 보드는 이러한 이유로 4개의 출력 핀만 남겨 둔다.
핀 |
이 름 |
기 능 |
1 |
KEY |
핀 상태는 모듈이 AT 명령 모드 또는 일반 모드에서 작동하는지 결정합니다. · HIGH = AT 명령 수신 모드 (명령 응답 모드) · LOW 또는 NC = Bluetooth 모듈 정상 작동 |
2 |
Vcc |
+5V 모듈에 전원을 공급하려면이 핀에 양의 전원을 공급해야합니다. |
3 |
GND |
접지에 연결 |
4 |
TXD |
직렬 데이터는이 핀 (기본적으로 9600bps), 3.3V 로직 |
5 |
RXD |
직렬 데이터는 이 핀 (기본적으로 9600bps), 3.3V 로직 |
6 |
STATE |
핀은 보드의 LED에 연결되어 모듈의 상태를 나타냅니다 |
· HC-06 Bluetooth 모듈 사용 방법
HC-06 모듈과의 통신은 UART 인터페이스를 통해 이루어진다. 데이터는 모듈로 전송되거나 이 인터페이스를 통해 모듈에서 수신된다. 그래서 우리는 모듈을 모든 마이크로 컨트롤러에 연결하거나 RS232 포트 (UART 인터페이스)가 있는 PC에 직접 연결할 수 있다.
· AT command 설정
설정 |
명령 |
반환값 |
기본값 |
설명 |
통신 테스트 |
AT |
OK |
· |
통신이 확인되고 있는지 확인 |
이름 변경 |
AT+NAMEname |
OKsetname |
HMSoft |
장치의 이름을 name으로 변경 |
속도 변경 |
AT+BAUDn |
OK보레이트 (예: OK1200) |
9600 |
n에 해당하는 속도로 보드의 속도 변경 |
PIN 설정 |
AT+PINxxxx |
OKsetpin |
000000 |
페어링 비밀번호를 xxxx로 변경 |
PC와 HC-06를 연결하기 위해 3.3V TTL신호를 USB 포트에 연결할 수 있도록 해주는 FT232RL 컨버터를 사용했다. AT command 모드로 진입하기 위해 KEY 핀에 +5V를 인가했고, 블루투스 모듈의 LED가 깜빡이는 속도가 줄어들게 되면서 AT 모드로 진입하는 것을 확인했다. 터미널 프로그램은 SerialPortMon을 사용했다.
‘AT’ 명령어를 송신했을 때 모듈에서 ‘OK’ 명령어를 전달하는 것을 확인할 수 있다. 블루투스의 이름을 ‘HC-06’으로 변경하고, 비밀번호를 ‘0000’, 통신 속도를 ‘115200’으로 변경한 모습이다.
HC06 Bluetooth Module Program (Mobile version)
/*
* Bluetooth.c
* Author: Kimsangmin
*/
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
volatile unsigned char flag;
ISR(USART0_RX_vect){
flag=UDR0;
}
void init()
{
DDRG=0xFF;
UCSR0A=0x00;
UCSR0B=0x98;
UCSR0C=0x06;
UBRR0H=0;
UBRR0L=51; // 16MHz = 103
SREG=0x80;
}
int main(void){
init();
while(1){
if(flag=='A')
PORTG=0xFF;
if(flag=='B')
PORTG=0x00;
}
}
'Embedded System > ATmega128' 카테고리의 다른 글
Balancing Robot (0) | 2020.04.04 |
---|---|
C-LCD 8-bit Control and 4-bit Control (4) | 2020.04.04 |
NEO-7M (GPS module) (1) | 2020.03.28 |
HC06 Bluetooth Module (Master / Slave 연동하기) (0) | 2020.03.28 |
HC-SR04 Module (초음파 센서 모듈) (3) | 2020.03.27 |
댓글