?>

Hard Copy World

HCW

Q&A

Home > Forum >

Q&A

아두이노 USB 호스트 실드 사용 질문

페이지 정보

작성자 아카샤 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일15-10-22 13:43 조회2,435회 댓글8건

본문

 

아두이노 Uno R3 사용중이며, USB 호스트 실드를 장착하여 사용하고 있습니다.

USB-HID 터치스크린과 아두이노+실드를 연결한뒤 블루투스 통신을 통해 pc와 연결하여 무선 터치스크린으로 사용하고자 합니다.

그런데 터치스크린-아두이노+실드-PC를 유선으로 연결하였을 때는 문제없이 데이터가 전송되지만, 터치스크린-아두이노+실드-블루투스를 연결하고 별도 전원을 입력한 뒤 pc와 연결할 경우 전혀 통신이 이루어지지 않습니다.

코드에 차이는 없고, 다만 디지털 0,1번 핀에 블루투스 모듈을 연결하였습니다. 무엇이 문제인지 모르겠네요. 혹시 문제점을 알려주시면 감사하겠습니다.

코드는 USB Host shield 2.0 라이브러리의 USBHID desc 예제를 사용하고 있습니다.

주소는 링크로 첨부하였습니다.

감사합니다.

 

 

 

댓글목록

하드카피님의 댓글

하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일

아두이노가 PC와 통신할 때 Serial 통신을 사용합니다. 아두이노에서 Serial 통신용으로 배정된 핀이 D0, D1 입니다. 블루투스를 다른 디지털 핀에 연결하고 SoftwareSerial로 제어하세요.

아카샤님의 댓글

아카샤 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글의 댓글 작성일

소프트웨어 시리얼로 제어하려면, USB 실드에서 읽어들인 데이터를 소프트웨어 시리얼로 전송해야 하는데, 이 경우 데이터가 어느 핀으로 들어오는지 모르겠습니다.

최고관리자님의 댓글

최고관리자 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 댓글의 댓글 작성일

아래처럼 아두이노 디지털 핀 2개에 연결해서 쓰세요
SoftwareSerial BTserial(2, 3);  // 블루투스의 TX, RX 를 연결한 핀 넘버
void setup() {
  BTserial.begin(9600);
}
void loop() {
  if(BTserial.available()) {
    char data = BTserial.read();  // 1바이트 읽어오기
    // 읽어온 데이터로 처리할 작업....
  }
  BTserial.print("test");
  BTserial.write('a');
}

아카샤님의 댓글

아카샤 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글의 댓글 작성일

usb 호스트 실드를 사용시에 usb에서 보내온 정보가 2,3번 핀으로 들어온다는 말씀이십니까? 블루투스를 소프트웨어 시리얼로 연결하라는 말씀은 알겠습니다만, usb쪽에서 받아들인 데이터가 들어오는 핀을 알아야 블루투스로 보낼수 있지 않나요?

아카샤님의 댓글

아카샤 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일

블루투스에서 받은 데이터로 작업을 처리하는 것이 아니라, usb호스트 실드의 usb 포트로 연결한 디바이스에서 받는 데이터를 블루투스로 pc에 전송하려는 것입니다.

최고관리자님의 댓글

최고관리자 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 댓글의 댓글 작성일

제가 잘못 블루투스쪽만 말씀을 드렸네요.
USB 실드는 SPI로 아두이노와 연결되는듯 합니다. 특정 핀을 통해 바로 데이터를 읽어내기는 힘드므로 USBHID 예제에 있는 KeyboardParser.h 파일의 함수들로 눌려진 키를 감지할 수 있습니다.(라이브러리 설치 필요) 따라서 KeyboardParser.h 의 함수 동작을 변경하시면 됩니다. (또는 MouseParser.h)
그런데 KeyboardParser.h 파일에서는 결과를 Serial로 전송하도록 되어 있습니다. 이 부분을 SoftwareSerial 로 변경하거나 블루투스를 D0, D1으로 연결하시면 됩니다.(블루투스가 D0, D1에 연결되어 있으면 바이너리 업로드 때 충돌이 날 수 있으므로 업로드 때는 블루투스 연결을 해제합니다.)

말씀드린 내용이 원하시는 내용과 맞나 모르겠네요.