BASIC4MCU | 질문게시판 | 아두이노 블루투스 연결 코딩 질문입니다
페이지 정보
작성자 보람찬시간낭비 작성일2018-08-08 17:07 조회13,400회 댓글6건본문
https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=104&docId=307341587
제가 네이버 지식인에 오늘 올렸던 질문인데요,
수정해주신 코드로 바꿨는데
블루투스 연결 확인 할 때
시리얼 모니터에서 AT를 보냈을 떄 OK 가 안뜨는데 어떻게 해야 될지 모르겠습니다.
void setup 에 문제가 있는지 궁금합니다.
댓글 6
조회수 13,400master님의 댓글
master 작성일
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2,3); //(TX,RX)
//
void setup(){
Serial.begin(9600);
mySerial.begin(9600);
}
//
void loop(){
if(Serial.available()>0){
mySerial.write(Serial.read());
}
if(mySerial.available()>0){
Serial.write(mySerial.read());
}
}
간단한 코드라서 문제 될만한 것이 없습니다.
보람찬시간낭비님의 댓글
보람찬시간낭비
네. 위에 써주신 코드는 예제 같은 유명한 오픈소스라서 저 코드를 썼습니다.
아두이노IDE.exe 를 실행하고 처음에 나오는 스케치 탭에 저 코드만 넣고 컴파일 하면, 시리얼 모니터에서 AT -> OK 가 아주 잘 나옵니다.
그런데 소리나는 신호등 을 위해 계속 코드들을 집어넣으니까 나중에는 시리얼 모니터 AT->OK 가 안되는게 좀 답답합니다.
혹시 블루투스 연결하는 탭 하나, 소리나는 신호등 탭 하나를 따로따로 만들어야 하는건지 궁금합니다.
master님의 댓글
master
AT는 블루투스 설정때문에 사용하는 겁니다.
설정을 마치고나면 AT 입력해서 응답하면 안됩니다.
AT를 보낼 이유도 없고요
마스터 및 슬레이브 설정을 하고, 보레이트등 여러가지 필요한 항목을 설정합니다.
//
설정을 마치고나서 전원을 켜면 슬레이브와 마스터가 자동으로 연결됩니다.
이 때부터는 AT를 입력하면 블루투스가 응답하는 것이 아니고
상대방 블루투스로 전달되고 상대방 아두이노 소프트웨어 시리얼로 AT가 전달 됩니다.
즉, 시리얼모니터-->AT-->아두이노A-->블루투스A))) (((블루투스B-->아두이노B
보람찬시간낭비님의 댓글
보람찬시간낭비
아.. 그런거군요. 감사합니다.
그럼 먼저 블루투스 설정하는 코드를 써서 AT 로 설정을 먼저 한 후에, 수정해주신 코드를 사용하면 된다는 말씀이신가요?
//
그리고 다른 분들이 하시는 걸 보니까, 한 컴퓨터에 아두이노 2개를 연결하고 시리얼 모니터 2대의 포트가 각각 다르던데 (예 : COM3, COM5), 저는 두 시리얼 모니터가 최근에 바꾼 포트로 전부 한꺼번에 바뀝니다. 시리얼 모니터 두개를 켰을 때, 각각 다른 포트의 모니터를 볼 수 있는 방법을 좀 알려주시면 감사하겠습니다.
master님의 댓글
master
아두이노 두개를 실행하고
각각 다른 포트로 연결 하면
시리얼모니터도 각각 실행해서 다른 포트를 사용할 수 있지 않나요?
master님의 댓글
master 작성일
HC-06 오래된 버전은 슬레이브와 마스터를 변경하지 못합니다.
//
한번이라도 AT 컴맨드로 보레이트를 변경했다면
변경된 보레이트로 접속하셔야합니다.
Serial.begin(9600);
mySerial.begin(9600);
이 두개의 보레이트를 변경하고, 시리얼모니터의 보레이트도 변경해야 합니다.
//
만약 RX,TX를 바꿔서 연결했다면
운나쁘면 단 한번의 실수로도 고장날 수도 있습니다.