- 필요한 재료 :
- 16 × 2 도트 매트릭스 LCD 디스플레이에 대한 간략한 소개 :
- 회로도 및 연결 :
- Energia를 사용하여 LCD 용 MSP430 프로그래밍 :
- MSP430G2가있는 16x2 LCD :
이것은 우리가 Energia IDE를 사용하여 MSP430G2 LaunchPad를 프로그래밍하는 방법을 배우는 일련의 자습서 중 세 번째 자습서입니다. 이전 튜토리얼에서 MSP 보드의 디지털 입력 및 출력 핀을 제어하는 방법을 배웠습니다. 이 튜토리얼에서는 유용한 정보를 표시 할 수 있도록 LCD를 보드와 인터페이스하는 방법을 배웁니다.
이 프로젝트에서 사용하는 LCD는 가장 일반적으로 사용되는 16x2 도트 매트릭스 LCD 디스플레이 인 영숫자 디스플레이입니다. 우리 대부분은 공공 PCO 또는 기타 전자 프로젝트를 통해이 문제를 접했을 것입니다. 이와 같은 디스플레이는 향후 자습서에서 데이터 및 기타 디버깅 정보를 표시하는 데 매우 유용합니다. 이 LCD와 MSP430의 인터페이스 는 사용 가능한 라이브러리 덕분에 매우 쉽습니다. 그러니 뛰어 들자 !!
필요한 재료:
- Texas Instruments의 MSP430G2 LaunchPad
- 16 × 2 도트 매트릭스 LCD 디스플레이
- 전선 연결
- Energia IDE
16 × 2 도트 매트릭스 LCD 디스플레이에 대한 간략한 소개:
앞서 말했듯이 Energia IDE는 인터페이스를 케이크 조각으로 만드는 아름다운 라이브러리를 제공하므로 디스플레이 모듈에 대해 아는 것이 필수가 아닙니다. 하지만 우리가 무엇을 사용하고 있는지 보여주는 것이 흥미롭지 않았을까요 !!
16 × 2라는 이름은 디스플레이에 16 개의 열과 2 개의 행이 있으며 함께 (16 * 2) 32 개의 상자를 형성 함을 의미합니다. 하나의 상자는 아래 그림과 같이 보입니다.
단일 상자에는 5 행과 8 열의 행렬 순서로 40 픽셀 (도트)이 있으며이 40 픽셀은 함께 하나의 문자를 형성합니다. 마찬가지로 모든 상자를 사용하여 32자를 표시 할 수 있습니다. 이제 핀아웃을 살펴 보겠습니다.
LCD에는 위와 같이 총 16 개의 핀이 있으며 다음과 같이 4 개의 그룹으로 나눌 수 있습니다.
소스 핀 (1, 2 및 3): 이 핀은 디스플레이의 전원 및 대비 레벨을 제공합니다.
제어 핀 (4, 5 및 6): 이 핀은 LCD 인터페이스 IC의 레지스터를 설정 / 제어합니다 (자세한 내용은 아래 링크에서 찾을 수 있음).
데이터 / 명령 핀 (7 ~ 14): 이 핀은 LCD에 표시되어야하는 정보에 대한 데이터를 제공합니다.
LED 핀 (15 및 16): 이 핀은 필요한 경우 LCD 백라이트를 비추는 데 사용됩니다 (옵션).
이 모든 16 핀 중에서 LCD 디스플레이에 대해 더 많이 알고 싶다면 LCD의 올바른 작동을 위해 10 개의 핀만 필수로 사용해야합니다.
회로도 및 연결:
MSP430G2와 16x2 도트 매트릭스 LCD 디스플레이 를 인터페이스하는 전체 회로 다이어그램 은 다음과 같습니다.
이 두 가지를 인터페이스하는 데있어 한 가지 주요 제약 사항은 작동 전압입니다. LCD 디스플레이의 작동 전압은 + 5V이고 MSP는 3.6V로만 작동합니다. 다행히도 LCD 인터페이스 IC (HD44780U)의 데이터 핀은 2.7V ~ 5.5V의 넓은 작동 전압을 가지고 있습니다. 따라서 데이터 핀은 3.6V에서도 작동 할 수 있지만 LCD의 Vdd (핀 2) 만 걱정하면됩니다.
기본적으로 MSP430G2 보드는 + 5V 핀을 제공하지 않지만 USB 포트를 사용하여 MSP430에서 + 5V를 얻기 위해 작은 해킹을 할 수 있습니다. USB 포트 근처를 자세히 살펴보면 TP1이라는 터미널을 찾을 수 있습니다.이 터미널은 + 5v를 제공합니다. 우리가해야 할 일은 아래 그림과 같이 작은 수 헤더 핀을 납땜하여 LCD 디스플레이에 연결할 수 있도록하는 것입니다.
참고: 50mA 이상을 소비 할 수있는 부하를이 5V 핀에 연결하지 마십시오. USB 포트가 손상 될 수 있습니다.
납땜에 관심이없는 경우 + 5V 정격 공급 장치를 사용하고 LCD에 전원을 공급합니다.이 경우 전원 공급 장치의 접지를 MSP 보드의 접지에 연결해야합니다.
+ 5V 핀으로 완료되면 다른 핀을 연결하는 것은 매우 간단합니다. 이제 하드웨어가 준비되었으므로 소프트웨어 부분으로 이동하겠습니다.
Energia를 사용하여 LCD 용 MSP430 프로그래밍:
완전한 프로그램 LCD 디스플레이를 가진 MSP430G2553를 인터페이스하는이 페이지의 마지막에 제공됩니다. 코드는 컴파일, 업로드 및 사용할 수 있습니다. 다음 단락에서는 프로그램 작동 방식을 설명합니다.
설명을 진행하기 전에 사용중인 핀을 기록해 두어야합니다. 위의 회로도와 아래의 MSP430 핀아웃 다이어그램을 살펴보면
다음 표에 따라 LCD를 연결했다고 결론을 내릴 수 있습니다.
LCD 핀 이름 |
연결됨 |
대 |
바닥 |
Vdd |
+ 5V USB 핀 |
Rs |
MSP의 핀 2 |
R / W |
바닥 |
활성화 |
MSP의 핀 3 |
D4 |
MSP의 핀 4 |
D5 |
MSP의 핀 5 |
D6 |
MSP의 핀 6 |
D7 |
MSP의 핀 7 |
이를 염두에두고 프로그램에서 사용되는 LCD 핀을 정의 해 보겠습니다. 나중에 쉽게 사용할 수 있도록 각 핀의 이름을보다 의미있는 이름으로 지정하겠습니다.
#define RS 2 #define EN 3 #define D4 4 #define D5 5 #define D6 6 #define D7 7
이것은 단순히 핀 2를 호출하는 대신 이후 6 개 핀 모두에 대해 마찬가지로 RS라고 부를 수 있음을 의미합니다.
다음 단계는 LCD 라이브러리 를 포함하는 것 입니다. 이 라이브러리는 Energia IDE를 설치할 때 자동으로 설치되었습니다. 따라서 다음 줄을 사용하여 추가하십시오.
#포함
다음 단계는 LCD가 연결된 핀 을 언급하는 것입니다. 이미 #define 을 사용하여 이름을 지정 했으므로 이제 간단히 LCD 핀의 이름을 언급 할 수 있습니다. 동일한 순서를 따르십시오.
LiquidCrystal lcd (RS, EN, D4, D5, D6, D7);
이제 void setup () 함수 로 이동하겠습니다. 크기와 특성에 따라 다양한 종류의 LCD 디스플레이가 있습니다. 우리가 사용하는 LCD 디스플레이는 16 * 2이므로 프로그램에서 지정하겠습니다.
lcd.begin (16, 2);
LCD에 무언가를 인쇄하려면 프로그램에서 두 가지를 언급해야합니다. 하나는 lcd.setCursor () 줄을 사용하여 언급 할 수있는 텍스트 의 위치 이고 다른 하나는 lcd.print ()에서 언급 할 수있는 인쇄 할 내용 입니다. 이 줄에서는 커서를 1 번째 행과 1 번째 열로 설정 합니다.
lcd.setCursor (0,0);
마찬가지로 우리는
lcd.setCursor (0, 1); // 커서를 첫 번째 열 두 번째 행으로 설정
글씨를 쓴 후 화이트 보드를 지우는 것과 마찬가지로 LCD도 글씨를 쓰면 지워야 합니다. 아래 줄을 사용하여 수행 할 수 있습니다.
lcd.clear ();
따라서 완전한 void setup () 함수는 다음과 같습니다.
void setup () {lcd.begin (16, 2); // 16 * 2 LCD 디스플레이를 사용하고 있습니다. lcd.setCursor (0,0); // 커서를 첫 번째 행 첫 번째 열에 놓습니다. lcd.print ("MSP430G2553"); // 소개 메시지 표시 lcd.setCursor (0, 1); // 커서를 첫 번째 열 두 번째 행으로 설정 lcd.print ("-CircuitDigest"); // 소개 메시지를 표시합니다. delay (2000); // 디스플레이에 정보가 표시 될 때까지 기다립니다. lcd.clear (); // 그런 다음 정리}
다음으로 void loop () 함수 내에서 500ms마다 숫자를 계속 증가시키고 LCD에 숫자를 표시합니다. 이 숫자는 테스트하고 아래와 같이 1로 초기화됩니다.
int 테스트 = 1;
지연 을 생성 하기 위해 내장 함수 인 delay ()를 사용할 수 있습니다 . 지연이 발생하는 데 얼마나 많은 시간이 필요한지 언급해야합니다. 우리의 경우에는 아래와 같이 500ms를 사용했습니다.
지연 (500);
변수 증가는 test ++로 수행 할 수 있으며 나머지는 모두 이미 설명되어 있습니다. void 루프 내부 의 전체 코드 는 다음과 같습니다.
void loop () {lcd.print ("LCD with MSP"); // 소개 메시지를 표시합니다. lcd.setCursor (0, 1); // 커서를 0 열, 1 행으로 설정 lcd.print (test); // 소개 메시지를 표시합니다. delay (500); lcd.clear (); // 그런 다음 청소 test ++; }
MSP430G2가있는 16x2 LCD:
하드웨어와 코드가 준비되면 보드를 컴퓨터에 연결하고 튜토리얼 1에서했던 것처럼 코드를 업로드하면됩니다. 코드가 업로드되면 다음과 같은 화면이 표시됩니다.
2 초 후 디스플레이 화면이 설정에서 루프로 변경되고 아래 그림과 같이 변수 증가가 시작되고 화면에 표시됩니다.
전체 작업은 비디오에서 찾을 수 있습니다 아래. 계속해서 LCD에 표시되는 내용을 변경하고 함께 재생 해보십시오. 튜토리얼을 이해하고 유용한 것을 배웠기를 바랍니다. 의심스러운 점이 있으면 아래 댓글 섹션에 남겨 두거나 포럼을 사용하십시오. 다른 튜토리얼에서 만나요.