먼저 보드는 UNO R3 호환 보드이며 블루투스 모듈은 HC-06이다.
테스트 과정에서 잘 안 되어서 블루투스 모듈이 고장난게 아닌가 의심했고 또 어떨때는 수신은 안 되고 송신만 되고 하는 문제가 있었는데 결국은 테스트 방법에 문제가 있었음.
소스코드
/////////////////////////////////////////////////////////////////////////////////////
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
}
void loop() {
if (Serial.available()){
byte data;
data = Serial.read();
if(data=='a'){
digitalWrite(13, HIGH); // set the LED on
//Serial.print("HIGH");
}
if(data=='b'){
digitalWrite(13, LOW); // set the LED off
//Serial.print("LOW");
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////
위 코드를 복사해서 아두이노 스케치에 붙여놓고 컴파일 한다. 아무런 이상없이 컴파일이 되어야 정상이다.
UNO 보드에는 아무것도 연결 안 하고 단지 USB 케이블만 PC와 연결 한다. 바이너리 파일을 정상적으로 업로드 시킨다. 실패되면 usb 케이블을 뺏다가 다시 연결해서 시도해 본다. 블루투스 모듈을 연결한 상태로 업로드하면 더 안 된다 ㅡ.ㅡ; 정상적으로 파일이 업로드 되면 이제 아래와 같이 UNO 보드와 HC-06 모듈을 연결 한다. 아래 그림은 HC-06 모듈이 아니지만 연결 방식은 같다.
그림과 같이
HC-06의 TX <--------> UNO보드 RX
HC-06의 RX <--------> UNO보드 TX
HC-06의 VCC <--------> UNO 보드 3.3V
HC-06의 GND < -------> UNO 보드 GND 연결한다.
아래는 인터넷에서 구한 사진
RXD 레벨은 5V 이고 TXD 레벨은 3.3V 레벨이라서 조금 이상했는데 생각해보니 5V 레벨 아두이노와
연결하는데는 문제가 없는걸로 판단된다.
HC-Serial-Bluetooth-Products-201104.pdf
전원이 공급되면 HC-06보드의 우측 하단 LED가 끊임없이 깜박이게 된다. LED가 깜빡이지 않는다면 문제가 있는것이다.
이제 스마트폰의 블루투스 통신을 켜고 테스트를 해보도록 하자.
구글 마켓에 여러 블루투스 통신 어플이 있을텐데 마음에 드는 녀석을 하나 골라서 설치한다.
이제 페어링이라는 과정을 거치고 나서 테스트 해본다.
스마트폰에서 a 문자를 보내면 UNO 보드의 L쪽 LED가 켜지고 b 문자를 보내면 꺼지는걸 볼 수 있다.
HC-06 블루투스 모듈의 이름이나 통신 속도 변경을 해보자.
아래 사이트에서 허큘레스라는 통신 프로그램을 내려 받자.
http://www.hw-group.com/products/hercules/index_en.html
주의 사항 : ATmega 328을 제거한 상태에서 HC-06의 RX와 UNO 보드의 RX에 연결하고 TX는 TX에 연결한다.
보드를 위와 같은 상태로 구성하고 USB 커넥터에 케이블을 PC와 연결을 해서 통신 테스트를 해본다.
처음 블루투스 설정은 9600 BPS로 설정 되어 있으므로 Baud란에 9600만 변경하고 Name또한 개인 pc에서
확인한 후 알맞게 설정한 후 나머지 부분은 아래와 같이 설정한 한다.
AT+BAUD4
- baud rate 값
1---------1200
2---------2400
3---------4800
4---------9600
5---------19200
6---------38400
7---------57600
8---------115200
AT+NAMEarduino
/////////////////////////////////// 2013-11-27 임시 확인용 //////////////////////////////////////
주위에 블투 켜진 장치가 있는지 검색을 하면 위와같이 검색이 됩니다.
테스트를 위해 잠시 꺼내서 확인해봤습니다. 보시다시피 블투 모듈의 전원을 연결하기 위해서
아두이노의 3.3v 와 gnd에 2개 선만 연결했고 아두이노에 전원을 공급하려고 usb 케이블 연결했습니다.
블투 모듈에서 계속 빨간불이 깜빡이는건 페어링이 안 되었기 때문입니다.
페어링 후에 블루투스 컨틀롤러라는 앱 설치후 실행시키니까 더이상 블투 모듈의 불이 깜빡이지 않는걸 확인 할 수 있습니다. 이때부터 시리얼 통신이 가능한거죠.