여기서 설명할 제품은 아두이노용 RGB LCD 쉴드입니다. 16x2 character LCD를 탑재하고 있습니다. 보통 LCD는 마이크로컨트롤러와 연결할때 마이크로컨트롤러의 많은 핀을 필요로 하게 되어 다른 주변 장치를 연결하기 곤란하게 만드는 경우가 많습니다. 16x2 character LCD의 경우 LCD를 제어하기 위해 6개의 디지털 핀과, RGB 백라이트를 제어하기 위해 추가로 3개의 디지털 핀이 필요해서 총 9개의 핀이 필요합니다. 9개는 아두이노의 핀의 절반에 해당하는 숫자죠.
그래서 디자인된 제품이 본 제품인데 16x2 character
LCD, 3개의 백라이트 핀, 5개의 키패트 핀을 단 두개의 아두이노 I2C 핀을 이용하여 제어할 수 있게 하여 줍니다. I2C방식이기 때문에
LCD를 I2C에 연결하였다고 다른 I2C장치를 못 연결하는 것이 아니기 때문에 LCD를 연결할 때 많이들 고민하는 문제를 싹 해결하여 주게
됩니다.
또 4개의 방향 버튼과 한개의 선택버튼이 있어 아두이노와 결합하여
한개의 독립적인 장치로 진행하는 프로젝트에 좋은 제품입니다. 이 제품은 아두이노 UNO와 같이 사용되게 디자인되었으며, 아두이노상의 아날로그
4, 5번상의 I2C핀을 사용합니다. 아두이노 Mega R3와도 완벽히 동작합니다.
제품 구성품제품의 구성품을 살펴보겠습니다.
1) 저항키트안에는 5개의 저항이 들어 있습니다. 각각의 저항을 설치 위치는 PCB에는 R1, R2라고 표시되어 있습니다. 이 저항은 1/4W 5% 4.7K 저항(노랑, 보라, 빨강, 금색)입니다. PCB에 RED와 BLUE라고 표시된 부분에 위치해야 할 저항은 1/4W 5% 220오옴 저항(빨강, 빨강, 갈색, 금색)입니다. GREEN이라고 표기된 부분에 위치해야할 저항은 1/4W 5% 330오옴 저항(오렌지, 오렌지, 갈색, 금색)입니다. 2) 포텐셔미터키트안에는 한개의 10K trim 포텐셔미터가 들어 있습니다. 이 부품은 LCD의 명암을 조절하기 위한 것으로 PCB의 contrast부분에 설치 되게 됩니다. 리셋버튼 옆에 있습니다. 4) i2c Port Expander ChipMCP23017 I2C (16 input/output) port expander chip칩이 키트안에 포함되어 있습니다. 이 칩때문에 단 두개의 아두이노의 핀을 이용하여 전체 LCD와 버튼의 사용이 가능하게 되죠. 칩에 대한 자세한 내용은 다음 링크를 참고 하십시오. Click here for more info on this chip.
조립방법
RGB LCD쉴드 사용하기본 쉴드는 사용하기 쉽게 디자인되었습니다. 쉴드를 아두이노에
연결하고 라이브러리를 github에서 다운 받습니다. 예제는 RGB 백라이트를 어떻게 제어하고 키패드를 어떻게 읽는지를 보여주고
있습니다.
Library 다운로드 하기LCD와 버튼을 제어하기 위해서는 반드시 아래에 언급하는 라이브러리를 사용해야 합니다. 이 라이브러리는 포트 확장기를 통해 명령을 번역하여 줍니다. 다음의 라이브러리를 다운 받고 설치합니다. Download the Adafruit RGB LCD Shield Library
라이브러리를 설치한 후 아두이노 IDE를 다시 실행 시킵니다.
라이브러리를 설치하면 다음 경로에서 File->Examples->Adafruit_RGBLCDShield->HelloWorld 예제를 선택할 수 있습니다. 스케치를 업로드 하면 테스트버튼과 LCD 백라이트 제어를 테스트 할 수 있습니다. 밝기 조절하기쉴드에 장착되어 있는 Character LCD는 포텐셔미터로 밝기를 조절할 수 있습니다. 포텐셔미터를 돌려 보면 글자가 나타났다 흐려졌다 하는 것을 확인 할 수 있습니다. 공유된 핀들I2C핀들은 보통 다른 용도의 핀들과 공유가 됩니다. 본 쉴드를 연결하려면 I2C로 핀을 사용하여야 하므로 I2C핀에 I2C를 지원하지 않는 장치는 사용될 수 없습니다. 각각의 제품별 I2C핀들입니다.
Uno/Duemilanove/Diecimila -
Analog
4 와
Analog
5
스케치 코드 작성하기Adafruit_RGBLCDShield 라이브러리는 LiquidCrystal 라이브러리에서 파생된 라이브러입니다. 만약 사용하던 LiquidCrystal 라이브러리 함수가 있다면 그대로 사용하여도 똑같이 동작합니다. RGB LCD 쉴드 제어를 위해서는 두개의 추가적인 함수가 제공되는데 그중 하나는 lcd.setBacklight(color)함수입니다. 이 함수는 RGB LCD의 백라이트를 제어합니다. 이 함수는 RGB 백라이트에 PWM신호를 주는 것은 아니며 OFF를 포함하여 8개의 다른 색을 선택할 수 있게 합니다. 색을 기억하기 쉽게 하기 위하여 아래와 같은 #define문을 정의하였습니다.
// These #defines make it easy to set the backlight color
#define OFF 0x0
#define RED 0x1
#define YELLOW 0x3
#define GREEN 0x2
#define TEAL 0x6
#define BLUE 0x4
#define VIOLET 0x5
#define WHITE 0x7 다른 하나의 함수는
lcd.readButtons()함수입니다. 이 함수를 호출하면 4개의 방향 키패드와 선택버튼을 한번에 읽어 오게 됩니다. 함수가 리턴하는
변수에는 각각의 버튼에 대한 비트가 설정되어 있습니다. 함수를 호출하고 리턴되는 변수의 비트값을 검사하여 버튼의 상태를 알수
있습니다.
uint8_t buttons = lcd.readButtons();
if (buttons) {
lcd.clear();
lcd.setCursor(0,0);
if (buttons & BUTTON_UP) {
lcd.print("UP ");
lcd.setBacklight(ON);
}
if (buttons & BUTTON_DOWN) {
lcd.print("DOWN ");
lcd.setBacklight(OFF);
} 아두이노에 꼽지 않고 사용하기쉴드는 아두이노에 헤더에 꼽지 않고 패널 등에 고정하여 사용하거나 다른 타입의 마이크로컨트롤러 보드와 연결하여 사용할 수 있습니다. 5V 전원핀에 5V를 연결하고 그라운드를 GND에 연결한 후 SCL핀을 I2C클럭에 SDA를 I2C data라인에 연결합니다.
중요: 아래와 같이 결선 하십시오. GND핀은 5V핀 옆의 것을
사용하지 말고 VIN핀 옆의 GND를 반드시 사용하십시오.
Arduino library code is available here at github 다운로드를 위해서 상단 메뉴바의 ZIP버튼을 클릭하고 이름을 Adafruit_RGBLCDShield 바꾸어 폴더에 압축을 풉니다. Adafruit_RGBLCDShield 폴더에 Adafruit_RGBLCDShield.cpp 와 Adafruit_RGBLCDShield.h 파일이 있는지 확인합니다.
Adafruit_RGBLCDShield library 폴더를 아두이노 IDE의 /libraries/ folder 에 카피합니다. library/folder 폴더가 없으면 생성합니다. IDE를 재시작합니다. PCB FileSchematic and Layout files in Eagle 6 format are here at github
제품정보: http://vctec.co.kr/front/php/product.php?product_no=879&main_cate_no=161&display_group=1 가치창조기술
|