본문 바로가기
Arduino(아두이노) 활용 강좌

Arduino Uno 로 USB 호스트 쉴드를 사용해서 키보드로 입력한 데이터를 1602 LCD에 표시해 보기

by 오마이엔지니어 2019. 12. 3.
반응형

Arduino Uno 에 USB 호스트 쉴드를 장착해서 사용하는 방법을 알아보고

이어서 키보드로 입력한 데이터를 1602 캐릭터 LCD에 표시해 보는 프로젝트 입니다

 

<아두이노 USB 호스트 쉴드 이미지>
아두이노 USB 호스트 쉴드 (USB Host Shield) 는 Arduino Uno & Mega 그밖의 호환보드 등의
제품에 적층하여 USB Slave 장치 (마우스 또는 키보드, 조이스틱 등) 를 아두이노에 연결하여 사용할 수 있게 합니다
MAX3421E USB 호스트 컨트롤러 IC가 장착되어 있습니다
안드로이드 ADK (Accessory Development Kit - 안드로이드 운영체제를 탑재한 장치의
주변장치를 만들 수 있는 하드웨어 및 소프트웨어) 를 지원합니다

다음과 같은 유형의 장치가 지원 됩니다
HID 장치 : 키보드, 마우스 등
게임 컨트롤러 : Sony PS3, Nintendo Wii, Xbox360
USB 시리얼 컨버터 : FTDI, PL-2303, ACM 등
ADK 지원 Android 휴대 전화 및 태블릿
대용량 저장 장치 : USB 스틱, 메모리 카드 리더기, 외장 하드 드라이브 등
블루투스 동글 (참고 : 일부 Bluetooth 장치는 Arduino가 공급할 수있는 것보다 더 많은 전력을 소비 할 수 있습니다
Bluetooth 장치가 작동하지 않으면 외부 전원을 사용해야합니다.)

 

사용된 부품

Arduino Uno R3 (Italy)

브래드 보드
아두이노 USB 호스트 쉴드
1602 Character LCD - (QAPASS 1602A)
1602 Character LCD - (LC1621-SMLYH6)

가변저항 10K Ohm
점퍼케이블
USB 키보드

1602 LCD 핀맵 확인-LC1621-SMLYH6

 

 

구성 배선도-키보드의 입력값을 1602 LCD에 표시해 보기

 

 



사용된 예제소스 
 

USBkeyboard.ino
0.00MB


사용된 라이브러리

USB_Host_Shield_2.0-master.zip


USB_Host_Shield 라이브러리를 추가해 주어야 합니다
https://github.com/felis/USB_Host_Shield_2.0

라이브러리 추가 방법은 Arduino IDE 설치하기 포스팅을 참조해 주세요


주의사항

배선시 LCD의 핀맵을 잘 확인 해야 합니다

포스팅 위쪽에 1602 LCD핀맵을 첨부하였습니다 확인해서 배선 하도록 합니다


백라이트는 들어 왔는데 문자 출력이 안되는 경우 가변저항을 돌려서 조정할 수 있습니다
사용된 예제소스에서 "LiquidCrystal.h" 이라는 라이브러리를 추가하는 명령어가 있는데

 

LiquidCrystal.h 은 아두이노 IDE를 설치하면 기본으로 포함되어 있습니다

이점 숙지하고 넘어 가도록 하겠습니다


테스트 방법 

첫번째는 우선 키보드를 사용해서 키보드로 타자를 쳐서 아두이노 IDE 시리얼 모니터에 출력값을 표시해 보겠습니다
위 첨부된 라이브러리를 설치하고 아두이노 IDE 에서
파일--->예제--->USB_Host_Shield_2.0-master--->example--->HID--->USBHIDBootKbd
순으로 클릭해서 예제를 불러와서 스케치 업로드해 줍니다

#include <hidboot.h>
#include <usbhub.h>
#include <spi4teensy3.h>
#include <SPI.h>
위와 같은 라이브러리를 사용합니다
SPI 통신 방법을 사용합니다

Serial.begin( 115200 );
통신속도는 115200 입니다

Serial.println("Start");
시리얼 모니터에 Start 문구가 출력 됩니다

키보드 자판을 사용해서 문자를 입력하면 아두이노 IDE 시리얼 모니터에 출력값이 표시 됩니다

 

(a 와 b 를 입력해 봤습니다, 특수문자도 출력 됩니다, 시리얼 모니터 보드레이트는 물론 115200 으로 되어 있어야 겠습니다)

두번째는 이어서 키보드를 사용해서 키보드로 타자를 쳐서 배선 된 1602 캐릭터 LCD에 출력값을 표시해 보겠습니다
위 첨부된 라이브러리를 설치하고, 위 첨부된 USBkeyboard.ino 파일을 다운로드해서
실행해서 스케치 업로드해 주면 됩니다

#include <hidboot.h>
#include <usbhub.h>
#include <LiquidCrystal.h>
#include <spi4teensy3.h>
#include <SPI.h>
위와 같은 라이브러리를 사용합니다

LiquidCrystal lcd(7,6,5,4,3,2);
LCD와 연결 된 아두이노 데이터 핀맵입니다

아두이노 우노와 USB 호스트 쉴드는 SPI 통신을 하기 때문에 10, 11, 12, 13번 핀은 사용할 수 없습니다

키보드 자판을 사용해서 문자를 입력하면 배선 된 1602 LCD에 출력값이 표시 됩니다

 



프로젝트 동영상-키보드의 입력값 시리얼 모니터에 출력해 보기


프로젝트 동영상-키보드의 입력값 1602 LCD에 출력해 보기


아두이노 USB 호스트 쉴드는 여러모로 재미있는 쉴드 같습니다, 마우스나 조이스틱도 연결해서 활용할 수 있는것 같는것 같습니다


프로젝트 동영상-마우스를 연결해 자이로센서 처럼 활용해 보기

 

위 첨부된 라이브러리를 설치하고 아두이노 IDE 에서
파일--->예제--->USB_Host_Shield_2.0-master--->example--->HID--->USBHIDBootMouse
순으로 클릭해서 예제를 불러와서 스케치 업로드해 줍니다
자이로 센서처럼 마우스를 좌우 상하로 움직여서 아두이노 IDE 시리얼 모니터로 X, Y 축 출력값 변화를 확인할 수 있습니다
 

USB_Host_Shield_2.0-master.zip
0.4MB
USBkeyboard.ino
0.0MB
반응형

댓글