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에 표시해 보기
사용된 예제소스
사용된 라이브러리
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 축 출력값 변화를 확인할 수 있습니다
'Arduino(아두이노) 활용 강좌' 카테고리의 다른 글
Arduino Uno 로 탁도 센서를 사용해서 액체의 탁도 변화를 측정해 보고 LCD에 출력해 보기 (0) | 2020.04.29 |
---|---|
Arduino Uno 로 레이저 송수신 모듈을 사용해서 광학효과 만들어 보기 (0) | 2019.12.27 |
Arduino Uno 로 RCWL-0516 레이더 모션센서를 사용해서 I2C 1602 캐릭터 LCD에 출력값 확인해 보기 (0) | 2019.10.13 |
아두이노 ESP8266 GPIO 와이파이 쉴드를 사용해서 DHT11 온습도 센서로 웹으로 실내 온습도 확인해 보기 (1) | 2019.09.26 |
Arduino Uno 로 APPSKIT WIFI-ON V1 모듈을 사용해서 웹으로 LED 제어해 보기 (0) | 2019.09.17 |
댓글