1602 캐릭터 LCD(16×2) 사용법, 예제 소스

1. 1602 Character LCD (16×2, LiquidCrystalDisplay 1602 V1) 

1602-character-lcd-display-module-676b3914-356x356

1602 Character LCD는 1줄에 16개의 문자씩 2줄을 보여주는 LCD 모듈입니다. 비슷한 모듈로 2004 Character LCD도 있네요. 이건 20개의 문자를 4줄 보여줍니다. 백라이트는 5V, 가변 저항을 사용하면 폰트의 명암을 조절할 수 있습니다. 그리고 생각보다 가격이 엄청 저렴합니다.

1602 Character LCD 모듈 정보 : http://cafe.naver.com/mpucafe/2862
1602 Character LCD 배선 및 아두이노 연결 : http://cafe.naver.com/mpucafe/2863

 

1PCS-IIC-I2C-Serial-Interface-Board-Module-font-b-Port-b-font-For-1602-LCD-Display이 모듈만 쓰기에는 핀을 너무 많이 차지하고(8개 정도?) 배선도 복잡해져서 LCD Interface Converter 를 사용했습니다. 이걸 사용하면 I2C 인터페이스를 사용해서 LCD를 제어하게 해주며, 단 4개 선으로 LCD를 조작할 수 있습니다. LCD 와 인터페이스 모듈을 땜질해둡니다.

제품사양

1. 공급전압 : DC 2.5-6V

2.. I2C 프로토콜 지원

3.. 점퍼 스위치가 있어서 LCD의 백라이트을 ON/OFF 제어 가능합니다.

4.. 가변저항 있어서 LCD 명암을 조절할수 있습니다. 

5. I2C 주소 초기값 : 0x27
6. 크기: 41.5mm (L) * 19mm (W) * 15.3mm (H)

7. 무게 : 5g

8. PCB 색상: Black

9. I2C 주소 초기값 :  0x27

 

2. 연결방법

LCD Interface Converter Arduino Uno Board
GND GND
VCC 5V
SDA A4 (아날로그 4번핀)
SCL A5 (아날로그 5번핀)

i2c_lcd1602-lcd_display-007-500x500

3. 코드 (스케치)

먼저 LCD 용 라이브러리를 설치해야 합니다. 아래 링크에서 라이브러리 다운로드 받은 뒤 압축을 풀고 두 개의 폴더를 (아두이노 설치경로 / libraries / ) 여기에 복사해 줍니다. 그리고 아두이노 IDE를 다시 시작하고… 파일 > 예제 > LiquidCrystal_I2C1602V1 > HelloWorld 를 여세요.

//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h>                            // I2C control library
#include <LiquidCrystal_I2C.h>          // LCD library

LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x20 for a 16 chars and 2 line display

void setup()
{
  lcd.init();                      // initialize the lcd 
 
  // Print a message to the LCD.
  lcd.backlight();  // turn on backlight
  lcd.print("Hello, world!");

}

void loop()
{
}

 

4. 동작방법

LCD에 Hello, world! 가 보이면 성공입니다.

추가로 LCD를 제어하기 위해 다음과 같은 명령어를 사용할 수 있습니다.

lcd.backlight LCD 백라이트 on
lcd.nobacklight LCD 백라이트 off
lcd.setCursor(3,0) 커서를 0번째 라인 4번째 문자로 이동
lcd.print("xxxxx") 문자열 xxxxx 를 출력
lcd.write(char) 문자 하나를 현재 커서에 출력하고 커서를 다음 위치로 이동
lcd.clear 화면 삭제

아래 링크로 가시면 이 함수들 사용한 예제들을 보실 수 있습니다. 

http://arduino-info.wikispaces.com/LCD-Blue-I2C

 

Post Author: TORTUGA

TORTUGA
궁금하신 점은 새로 개편한 홈페이지의 QnA 게시판을 이용해주세요!!!!!!! http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=qna

15 thoughts on “1602 캐릭터 LCD(16×2) 사용법, 예제 소스

    […] converter를 붙여둬서 4개선만 아래 순서대로 연결하면 됩니다. 상세정보는 [여기를] […]

    […] LCD character 모듈 연결방법 : http://www.hardcopyworld.com/ngine/aduino/index.php/archives/181 […]

    송정훈

    (2015년 5월 22일 - 10:38 오전)

    저기 회로도에 lcd 연결을 하려고하는데 scl sda가없는데 어떻게 연결 해야 할까요??

    아두이노 온도 센서 -> LCD 출력 - ABCD

    (2015년 12월 2일 - 3:35 오후)

    […] 참고 사이트 (라이브러리 다운) : http://www.hardcopyworld.com/ngine/aduino/index.php/archives/181 […]

    남서현

    (2016년 7월 22일 - 11:30 오후)

    안녕하세요? 제가 만들어 주신 튜토리얼을 보고 따라해 봤는 데 LCD에서 Hello World 가 떠야 하는 데 H만 뜨네요. 해결해 주실 수 있을 까요?

      익명

      (2017년 7월 21일 - 9:30 오전)

      void printLCD( LiquidCrystal_I2C lcdm , char *str , int row ){
      for(int i=0 ; i<strlen(str) ; i++){
      lcdm.setCursor(i , row);
      lcdm.print(str[i]);
      }
      }
      이런식으로 함수를 만들어 사용하셔요

    guest

    (2016년 7월 31일 - 7:54 오후)

    다음 경로의 라이브러리를 이용하면 잘 동작합니다.^^
    https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library

    서종원

    (2016년 8월 19일 - 7:25 오후)

    int cnt = 999;

    카운트 변수를 넣어서 변화를 찍어 볼수 있나요

    lcd.print(cnt);

    이렇게 하면 출력이 될까요 ㅠㅠ

    김기범

    (2016년 11월 15일 - 8:22 오후)

    계속해도 lcd에 네모 밖에 안나오는데……

      익명

      (2017년 3월 26일 - 12:53 오후)

      i2c scanner를 사용해서 device address를 검색해보세요. 제껀 0x3F가 나오더군요 예제엔 0x27

    guest

    (2016년 11월 18일 - 10:09 오후)

    저도 계속해서 lcd 네모밖에 안나오는데

    송영택

    (2017년 5월 24일 - 3:21 오후)

    지금 현재 wemos d1 모델을 사용하고 있는 유저 입니다. 위에 언급하신 디스플레이 모듈을 사서 사용하는데 라인을 정확하게 사용하고 제공된 코드도 아래와 같이 사용했는데 문자가 출력이 안되네요 ㄷ.ㄷ 답변해주시면 감사하겠습니다
    #include // I2C control library
    #include // LCD library

    LiquidCrystal_I2C lcd(0x27,16,2);

    void setup() {

    lcd.begin(16,2);
    lcd.init();

    lcd.backlight();

    lcd.setCursor(5, 0);

    lcd.print(“HELLO”);

    lcd.setCursor(5, 1);
    lcd.print(“WORLD”);
    }

    void loop() {
    }

    아두이노 & clcd – 처리의 블로그

    (2017년 5월 25일 - 7:01 오후)

    […] 클릭하삼 […]

    김진

    (2018년 1월 22일 - 9:39 오후)

    ‘class LiquidCrystal_I2C’ has no member named ‘init’ 이렇게 메시지가 뜨는데 어떻게 해결하나요

댓글 남기기

이메일은 공개되지 않습니다.