BASIC4MCU | 질문게시판 | 1개 아두이노 보드에서 2개 HC-06을 사용하려는데 잘 되지가 않습니다
페이지 정보
작성자 신입 작성일2019-08-22 20:46 조회47,704회 댓글7건본문
하나의 아두이노 우노보드에서 두 개의 HC-06을 사용하여 어떤 한 신호 값을 SLAVE1(블루투스 모듈)으로 받고 그 신호 값을 MASTER1(블루투스 모듈)으로 송신하려는데 수신만 되고 송신이 되지 않습니다.#include <SoftwareSerial.h>SoftwareSerial MASTER1(2,3);SoftwareSerial SLAVE1(4,5);char c;void setup() {Serial.begin(9600);SLAVE1.begin(9600);MASTER1.begin(9600);}void loop() {SLAVE1.listen();if(SLAVE1.available()){c = SLAVE1.read();Serial.println(c);delay(500);}while(MASTER1.available()){MASTER1.write(c);delay(500);}}
댓글 7
조회수 47,704master님의 댓글
master 작성일
송신이 안되는 것이 아니고 수신이 안되는 것입니다.
소프트웨어 시리얼은 1개만 수신이 가능합니다.
SLAVE1.listen(); <== 이 것만 수신이 가능하죠
송신은 둘 다 가능합니다만
수신한 후에 송신하므로 수신하지 못하면 송신도 안되는 것처럽 보일 뿐입니다.
master님의 댓글
master 작성일
시리얼이 4개인 아두이노 메가
시리얼이 2개인 아두이노 레오나르도
이런 보드들을 사용해도 되겠습니다.
신입님의 댓글
신입 작성일
감사합니다.
그런데 제가 저 코드에서 보시면 수신 받은 신호 값을 시리얼 모니터로 출력하도록 하였더니 신호 값이 올바르게 뜨는 것을 확인하였습니다.
그리고 제가 지금 최대한 아두이노 우노를 사용하고 있어서 메가나 레오나르도를 사용할 수가 없습니다.
master님의 댓글
master
아두이노 레퍼런스 사이트에보면
"소프트시리얼은 2개 동시에 수신이 불가" 하다고 적혀있습니다.
만든 사람이 안된다는데 제가 어떻게 도와드릴까요?
//-----------------------------------
시리얼모니터를 사용하지말고
시리얼모니터 대신 블루투스를 연결하는 방법도 있긴 합니다만
(PC에서) 시리얼모니터를 실행하면 고장납니다.
이 경우 업로드 시에 고장날 가능성이 있는데요
0번(RX)핀-----1K옴---블루투스TX
1K 저항을 사용해야 고장요인도 없고, 업로드 에러가 발생하지 않습니다.
1번(TX)핀은 상관없습니다.
신입님의 댓글
신입 작성일
네,검색해 보니 하나의 아두이노 보드에 두 개의 블루투스 모듈이 가능하지만,
하나는 소프트웨어 시리얼로 하나는 하드웨어 시리얼로 하라고 합니다.
우노에서 하드웨어 시리얼을 어떻게 사용하는지 가르쳐주시면 감사하겠습니다.
신입님의 댓글
신입 작성일
네,한 번 해 보도록 하겠습니다.
감사합니다.
신입님의 댓글
신입 작성일
감사합니다 정말로 감사합니다.
덕분에 해결 됐습니다
감사합니다