====== 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]]