[Arduino] 13.블루투스
in Arduino
블루투스
이번에는 블루투스 모듈을 이용해서 블루투스 연결을 해보겠습니다!
블루투스 모듈은 신호를 받기위한 핀인 RX 핀, 신호를 전송하기 위한 TX핀, GND(Ground), VCC 핀이 있습니다. 모듈의 전원은 3.6V ~ 6V 사이에서 동작하므로 VCC핀은 아두이노의 5V 단자에 연결하면 됩니다. 모듈에 따라 3.3V에서 동작하는 모듈도 있으므로 규격을 꼭 확인하여 전원을 연결해야 합니다.
RX 핀은 3번, TX 핀은 2번에 연결해줍니다!
연결했을 때 다음과 같이 불이 깜빡깜빡하면 됩니다~!
#include <SoftwareSerial.h>
int blueRx=2;
int blueTx=3;
SoftwareSerial BTSerial(blueRx,blueTx); //RX, TX 아두이노 꼽을 땐 거꾸로 RX=3, TX=2
void setup(){
Serial.begin(9600);
BTSerial.begin(9600);
}
void loop(){
if(BTSerial.available()>0){
Serial.write(BTSerial.read());
}
if(Serial.available()>0){
BTSerial.write(Serial.read());
}
}
그리고 Serial 모니터에 AT를 입력했을 때 OK가 나오면 연결이 제대로된 것입니다~!
AT + HELP 를 치면 AT에 관련된 명령어가 나옵니다~!
그럼 블루트스 이름과 PIN을 변경해 주겠습니다~!
그럼 이제 휴대폰으로 블루투스 연결해보겠습니다~!
먼저, 제가 아이폰이기 때문에 블루투스 통신을 위해 LightBlue 어플을 다운받아주겠습니다.
어플을 실행시키면 아까 설정한 name KOO 블루투스가 뜨네요!
눌러주고 TX & RX-V4.0 을 눌러줍니다!
Write new value를 눌러주고 한 번 아두이노로 메시지를 보내보겠습니다!
꼭 UTF-8인 것을 확인해주세요~!
다음과 같이 Serial 모니터에 메시지가 전달되었으면 성공입니다!
블루투스로 LED 켜기
이제 블루투스를 이용해서 LED를 켜보겠습니다!
#include <SoftwareSerial.h>
int ledPin =8;
int blueRx=2;
int blueTx=3;
SoftwareSerial BTSerial(blueRx,blueTx); //RX, TX 아두이노 꼽을 땐 거꾸로 RX=3, TX=2
void setup(){
Serial.begin(9600);
BTSerial.begin(9600);
pinMode(ledPin,OUTPUT);
}
void loop(){
if(BTSerial.available()){
char data = (char)BTSerial.read();
if(data == 'A'){
digitalWrite(ledPin, HIGH);
}else if(data == 'B'){
digitalWrite(ledPin, LOW);
}
}
}
다음은 LED 전구 3개를 제어하는 것입니다.
#include <SoftwareSerial.h>
int ledPin[3] = {8, 9, 10};
int blueRx=2;
int blueTx=3;
SoftwareSerial BTSerial(blueRx,blueTx); //RX, TX 아두이노 꼽을 땐 거꾸로 RX=3, TX=2
void setup(){
Serial.begin(9600);
BTSerial.begin(9600);
for(int i = 0; i < 3; i++){
pinMode(ledPin[i],OUTPUT);
}
}
void loop(){
if(BTSerial.available()){
byte data = BTSerial.read();
Serial.println(data);
if(data < 0 || data > 7){
Serial.println("wrong number");
}else{
for(int i = 0; i < 3; i++){
if(data & (1 << i)){
digitalWrite(ledPin[i], HIGH);
}else{
digitalWrite(ledPin[i], LOW);
}
}
}
}
}