[아두이노 기초] 전체 글 목록


아두이노는 Character LCD를 지원합니다. 시리얼 방식과 패러럴 방식 2가지가 있는데 패러럴 방식의 LCD모니터를 사용할 경우 데이터송신핀 4개, RS(Register Select), R/W(ReadWrite), Enable등의 제어 핀이 추가로 필요하기 때문에 번거로운 점이 있어 우리는 시리얼 방식의 LCD를 사용하도록 하겠습니다.

시리얼 LCD 디스플레이는 데이터 송시에 1개의 데이터  선만 있으면 되고 Serial.print()명령어로 쉽게 문자표시가 가능합니다. 시리얼 LCD 디스플레이 기능을 지원하기 위해서는 시리얼LCD 제품에 시리얼 통신으로 데이터를 수신해서 LCD에 대신디스플레이를 해주는 별도의 마이크로 프로세서가 필요합니다. 우리가 사용할 시리얼 LCD 디스플레이 제품은 이미 이러한 기능이 포함되어 있는 마이크로 프로세서가 장착 되어 있습니다.


1. 시리얼 LCD 디스플레이 제어하기

회로를 보시면 5v전원, gnd를 각각+,-에 연결하여 lcd의 전원을 공급하고 있습니다. 그리고 LCD왼쪽위를 보시면 Rx라는게 보입니다.

Rx는 수신부, Tx는 송신부로 데이터를 주고 받을때 사용합니다. 아두이노에는 0(Rx),1(Tx)번핀이 바로 그것이죠. 그렇다면 아두이노와 lcd가 서로 데이터를 주고받으려면 어떻게 해야할까요? 아두이노에서는 송신을하고 LCD에서는 수신을 해야 합니다. 그렇기때문에 아두이노의 Tx와 LCD의 Rx가 연결되어 있는 것이죠.

코드는 매우 간단합니다.

void setup()

{

Serial.begin(9600);

}

 

void loop()

{

Serial.print("$CLEAR\r\n");

Serial.print("$GO 1 4\r\n");

Serial.print("$PRINT Welcome to\r\n");

Serial.print("$GO 2 4\r\n");

Serial.print("$PRINT Sizz blog\r\n");

delay(1000);

}

LCD디스플레이를 제어하는데에 Serial.print()함수가 사용됩니다. 이때 시리얼창에 출력할때와 다른점이 있는데 문장의 시작에 $를 붙인뒤 하고싶은 명령을 쓰는 것입니다. 그럼 시리얼프린트로 LCD제어하는 명령어를 좀더 자세히 알아 보도록 합시다.

$CLEAR : LCD디스플레이 초기화

$GO x y : LCD디스플레이에 x축 y축 위치로 커서 이동

$PRINT : print 뒤에 오는 문장을 LCD디스플레이에 출력

펌웨어 업로드 후 실행해보면 LCD에 Welcome to Sizz blog가 잘 출력되는걸 볼수 있을 겁니다.


현재는 고정된 문자열만 출력할수 있습니다. 하지만 변화하는 정보를 출력하고 싶을때는 어떻게 해야 할까요? 다음 장에서는 sprintf를 이용하여 변하는 정보를 출력하는 것에 대해 알아보도록 하겠습니다.


+ Recent posts