초급 예제

누구나 쉽게 따라해볼 수 있는 쉬운 예제들입니다. 가볍게 도전~!

LCD-문자 출력하기

2015-01-22 09:04:26

개요

 

1) LCD란 무엇인가?


LCD는 Liquid Crystal Display의 약자로 액정표시장치를 말합니다. 여기에서 액정 (Liquid Crystal)이란 액체처럼 유체의 성질을 가지면서 고체처럼 광학적 성질을 가지는 물질입니다. 또한 액정은 고체표면에 액정이 특정 방향으로 정렬할 수 도 있어, 전기적 신호를 가해 원하는 방향으로 배열하여 빛을 투과시키거나 차단시킬 수 있습니다.
 

LCD는 이러한 액정의 성질을 이용합니다. 빛을 내는 백라이트, 백라이트에서 나온 빛을 한 방향으로  투과시키기 위한 편광판, 각 픽셀에 대한 액정 배열을 조절하여 투과하는 빛의 양을 제어하는 TFT, 그 다음으로 액정이 순서대로 위치하여 구성이됩니다. 또한 컬러 지원여부에 따라 컬러 필터가 추가될 수 있습니다.




LCD는 얇고 가벼우며 소비전력이 적은 장점은 있지만, 시야각이 제한적이고 어두운 곳에서는 선명함이 떨어지는 단점이 있습니다. 현재 LCD는 손목시계부터 TV에 이르기까지 광범위하게 활용되고 있습니다.


2) LCD 사용방법

 

이 예제에서 16개의 문자를 2줄로, 총 32개 문자를 표현할 수 있는 LCD를 사용합니다.

LCD는 아래와 같은 핀 배치로 구성되어 있으며, DB0-DB7까지의 핀들을 통해서 문자를 표시 할 수 있습니다.

 

 

부품 목록

NO 부품명 수량 상세설명
1 오렌지 보드 1  
2 LCD 1 mc1602-13
3 가변저항 1  
4 브레드 보드 1  
5 점퍼케이블 15  

 

부품명 오렌지 보드 LCD 가변저항 브레드 보드 점퍼케이블
파트

 

 

 

하드웨어 making

 

브레드 보드

1.오렌지보드의  5V핀을 브레드보드의 +버스에 연결합니다.

2.오렌지보드의 GND핀을 브레드보드의 -버스에 연결합니다.

3.LCD를 그럼과 같이 세로로 꽂습니다.

4.가변저항을 그림과 같이 세로로 꽂습니다.

5.LCD의 16번핀을 -버스에 연결합니다.

6.LCD의 15번핀을 +버스에 연결합니다.

7.LCD의 14번핀을 오렌지보드 13번핀에 연결합니다.

8.LCD의 13번핀을 오렌지보드 12번핀에 연결합니다.

9.LCD의 12번핀을 오렌지보드 11번핀에 연결합니다.

10. LCD의 11번핀을 오렌지보드 10번핀에 연결합니다.

11. LCD의 6번핀을 오렌지보드 4번핀에 연결합니다.

12. LCD의 5번핀을 -버스에 연결합니다.

13. LCD의 4번핀을 오렌지보드 3번핀에 연결합니다.

14. 가변저항의 가운데 단자를 LCD의 3번핀에 연결합니다.

15. LCD의 2번핀을 +버스에 연결합니다.

16. LCD의 1번핀을 -버스에 연결합니다.

17.가변저항의 상단 단자를 +버스에 연결합니다.

18.가변저항의 하단 단자를 -버스에 연결합니다.

 

 

전자회로도



 

 

 

소프트웨어 coding

/*
 제목		: LCD에 문자 출력하기
 내용		: LCD에 원하는 문자를 표시해 봅니다.  
 */

// LCD를 쉽게 제어하기 위한 라이브러리를 추가합니다.
#include <LiquidCrystal.h>

// 오렌지보드의 3, 4, 10, 11, 12, 13번핀을 사용하도록 지정된 lcd객체를 생성합니다.
LiquidCrystal lcd(3, 4, 10, 11, 12, 13);

// 실행시 가장 먼저 호출되는 함수이며, 최초 1회만 실행됩니다.
// 변수를 선언하거나 초기화를 위한 코드를 포함합니다.
void setup() {
	// 16개의 셀과 2줄을 사용하도록 설정합니다.
	lcd.begin(16,2);
	// LCD를 초기화 합니다.
	lcd.clear();
}

// setup() 함수가 호출된 이후, loop() 함수가 호출되며,
// 블록 안의 코드를 무한히 반복 실행됩니다.
void loop() { 
	// random 함수를 사용하여 0부터 2까지의 숫자중 랜덤하게 값을 받습니다.
	int value = random(0, 3);
	// 랜덤 값이 0이라면 아래의 조건을 실행합니다.
	if (value == 0) {
		// 0번째 줄 0번째 셀부터 입력하게 합니다.
		lcd.setCursor(0,0);		    		// 0번째 줄 0번째 셀부터 입력하게 합니다.
		lcd.print("  KocoaFab.cc  ");     	// 문구를 출력합니다.
	}
	// 랜덤 값이 1이라면 아래의 조건을 실행합니다.
	else if (value == 1) {
		lcd.setCursor(0,1);		    		// 1번째 줄 0번째 셀부터 입력하게 합니다.
		lcd.print("  Hello World!!  ");   	// 문구를 출력합니다.
	}
	// 랜덤 값이 2이라면 아래의 조건을 실행합니다.
	else if (value == 2) {
		// 0번째 줄 0번째 셀부터 입력하게 합니다.
		lcd.setCursor(0,0);
		// 아래의 문장을 출력합니다.
		lcd.print("  KocoaFab.cc  ");
		// 1번째 줄 0번째 셀부터 입력하게 합니다.
		lcd.setCursor(0,1);
		// 아래의 문장을 출력합니다.
		lcd.print("  Hello World!!  ");
	}
	// 1초간 대기합니다.
	delay(1000);
	// LCD의 모든 내용을 삭제합니다.
	lcd.clear();
}

 

 

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

LCD, 아두이노, 오렌지보드

이수현 2016-03-04 17:41:23

저기...하라는데로했는데 글자가않나오네요 어떻게된거죠?

kocoafab 2016-03-21 08:19:29

글자가 나오지 않는다면 가변저항을 돌려서 밝기를 조절해 보세요.

차명진 2016-07-16 20:29:30

내가 LCD에 나오는 글을 바꿀수도 있어서 신기했어요ㅋㅋ

승우 2018-11-29 15:15:46

merry christmas happy new year 어떻게 하나요?

kocoafab 2019-01-08 17:33:49

문자의 길이가 길어지면 끝에 잘리게 됩니다.

setCursor(가로위치, 세로위치) 함수를 이용하여 2줄에 메세지가 나오게 해보세요

신화창조 2021-04-16 10:56:25

한글출력도 되나요