====== CLCD와 연결 ======
CLCD(Character LCD)는 문자 기반 정보를 표시할 수 있는 LCD 모듈로, \\
FADUINO와 연결하여 **상태 표시, 카운터 출력, 간단한 메시지 표시** 등에 사용됩니다.
CLCD는 내부에 제어 로직이 없으며,
FADUINO가 전송하는 **시리얼 또는 I2C 명령에 따라 화면을 표시**하는 구조입니다.
FADUINO 모델에 따라 CLCD와의 **연결 방식과 통신 포트가 다르므로**,
아래에서 해당 모델에 맞는 방법을 선택하여 사용하시기 바랍니다.
===== FADUINO-18TA 용 =====
FADUINO-18TA는 Arduino UNO 기반 모델로,
CLCD를 **시리얼 포트(채널 0)** 를 통해 제어합니다.
이 시리얼 포트는 업로드 포트와 겸용이므로,
프로그램 업로드가 완료된 후 CLCD와 통신이 가능합니다.
{{ :faduino:faduino:clcdwithfaduino:clcd.png?nolink |}}
{{ :faduino:faduino:clcdwithfaduino:clcd_faduino18ta.mp4?700x400 |}}
아래 예제는 CLCD에 문자열과 카운터 값을 표시하는 **최초 테스트용 샘플 프로그램**입니다.
본 예제를 통해 다음 사항을 확인할 수 있습니다.
* CLCD 결선 상태가 정상인지
* 시리얼 통신이 정상적으로 이루어지는지
* 문자 위치 지정(locate)이 정상 동작하는지
보드 설정은 반드시 **Arduino UNO** 로 선택해야 합니다.
++++ [소스코드 보기]|
void setup()
{
Serial.begin(115200); //채널0, 보레이트 115200 설정 (업로드 포트와 겸용)
clear(); //전체 화면을 지움
delay(20);
locate(1,0);
Serial.print("=== CLCD_TEST ===");delay(100);
locate(2,1);
Serial.print(" FA-DUINO-18TA "); delay(100);
}
int cnt = 0;
void loop()
{
cnt++;
delay(1000);
locate(4,3);
Serial.print("COUNTER:"); delay(100);
locate(13,3);
Serial.print(cnt, DEC); delay(100);
}
//전체 화면을 지웁니다.
void clear()
{
Serial.write(0x1b); Serial.write(0x43);
}
//표시될 문자의 x축과 y축의 위치를 설정합니다
void locate(unsigned char x, unsigned char y)
{
Serial.write(0x1b);
Serial.write(0x4C);
Serial.write(x);
Serial.write(y);
}
++++
===== FADUINO-12RA / FADUINO-24RA 용 =====
FADUINO-12RA 및 24RA 모델은 Arduino MEGA 기반으로,
CLCD를 **RS232C(채널 1)** 를 통해 연결합니다.
이 경우 CLCD 모듈의 **DIP 스위치를 모두 ON** 으로 설정하여
보레이트를 **115200bps** 로 맞추어 주십시오.
{{ :faduino:faduino:clcdwithfaduino:clcd_back.png?nolink |}}
아래 예제는 CLCD 기본 출력 동작을 확인하기 위한 샘플입니다.
++++ [소스코드 보기]|
void setup()
{
Serial1.begin(115200); //채널1 보레이트 115200 설정
clear(); //전체 화면을 지움
delay(20);
locate(0,0);
Serial1.print("=== CLCD_TEST ===");delay(100);
locate(2,1);
Serial1.print(" FADUINO-12RA "); delay(100);
}
void loop()
{
}
//전체 화면을 지웁니다.
void clear()
{
Serial1.write(0x1b);
Serial1.write(0x43);
}
//표시될 문자의 x축과 y축의 위치를 설정합니다
void locate(unsigned char x, unsigned char y)
{
Serial1.write(0x1b);
Serial1.write(0x4C);
Serial1.write(x);
Serial1.write(y);
}
++++
===== FADUINO-32TA 용 =====
FADUINO-32TA는 CLCD 전용 **I2C 연결 포트**를 제공합니다.
이 방식은 시리얼 방식보다 배선이 간단하며, 안정적인 통신이 가능합니다.
CLCD 모듈의 **DIP 스위치를 모두 OFF** 로 설정하고,
I2C 슬레이브 주소를 **0번** 으로 맞추어 주십시오.
{{ :faduino:faduino:clcdwithfaduino:clcd2.png?nolink |}}
아래 예제는 I2C를 이용하여 CLCD에 문자열을 표시하는 샘플 프로그램입니다.
++++ [소스코드 보기]|
#include
#define ADDR_CLCD 0
unsigned char locate_x;
unsigned char locate_y;
void clcd_clear ();
void clcd_cursor_visible (bool enable);
void clcd_backLight_enable (bool enable);
void clcd_print (String value);
void clcd_locate (unsigned char x, unsigned char y);
void setup() {
Wire.begin(); // 마스터모드로 동작
Wire.setClock(500000); // 500 kHz.
clcd_clear(); // 화면 전채를 지움
clcd_cursor_visible(false); // 커서 설정
clcd_backLight_enable(true); // 백라이트 설정
clcd_locate(0,4); // 문자 표시 위치
clcd_print("COMFILE_TECH"); // 문자 표시
clcd_locate(2,5);
clcd_print("0123456789");
}
void loop() {
}
void clcd_clear(){
unsigned char tmp_buf[] = {0x1b,0x43};
Wire.beginTransmission(ADDR_CLCD);
Wire.write(tmp_buf,2);
Wire.endTransmission();
delay(200);
}
void clcd_cursor_visible(bool enable){
unsigned char tmp_buf[] = {0x1b,enable == true ? 0x53 : 0x73};
Wire.beginTransmission(ADDR_CLCD);
Wire.write(tmp_buf,2);
Wire.endTransmission();
}
void clcd_backLight_enable(bool enable){
unsigned char tmp_buf[] = {0x1b,enable == true ? 0x42 : 0x62};
Wire.beginTransmission(ADDR_CLCD);
Wire.write(tmp_buf,2);
Wire.endTransmission();
}
void clcd_locate(unsigned char x, unsigned char y){
locate_x = x;
locate_y = y;
}
void clcd_print(String value){
unsigned char tmp_buf[] = {0x1b,0x4b,locate_y,locate_x,locate_y,locate_x};
Wire.beginTransmission(ADDR_CLCD);
Wire.write(tmp_buf,6);
Wire.write(value.c_str());
Wire.write(0);
Wire.endTransmission();
}
++++
이 예제는 다음 사항을 확인하기 위한 용도로 사용됩니다.
* I2C 통신이 정상적으로 이루어지는지
* CLCD 백라이트 및 커서 제어가 가능한지
* 문자 위치 지정 및 출력이 정상인지
===== 기술지원 정책 ======
당사에서는 고객께서 작성하신 사용자 소스에 대한 분석 및 수정 서비스는 제공하지 않고 있음을 양해 부탁드립니다.
기술지원은 당사에서 제공한 하드웨어 사양, 결선 방법, 정상 동작 여부에 한하여 지원이 가능합니다. 감사합니다.
본 샘플 소스는 사전에 정상 동작이 확인된 예제입니다.
[[..:index|FADUINO]]