Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
faduino:faduino:clcdwithfaduino:index [2026/02/09 16:47] adminfaduino:faduino:clcdwithfaduino:index [2026/02/20 15:34] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== CLCD와 연결 ====== ====== CLCD와 연결 ======
  
-===== FADUINO 18TA 용 소스 =====+CLCD(Character LCD)는 문자 기반 정보를 표시할 수 있는 LCD 모듈로,  \\  
 +FADUINO와 연결하여 **상태 표시, 카운터 출력, 간단한 메시지 표시** 등에 사됩니다.
  
-CLCD는 FADUINO와 연결할 수 있는 캐릭터 LCD 듈입니다. +CLCD는 내부에 제어 로직이 없으며,   
 +FADUINO가 전송하는 **시리얼 또는 I2C 명령에 따라 화면을 표시**하는 구조입니다. 
 + 
 +FADUINO 모델에 따라 CLCD의 **연결 방식과 통신 포트가 다르므로**,   
 +아래에서 해당 모델에 맞는 방법을 선택하여 사용하시기 바랍니다. 
 + 
 +===== FADUINO-18TA 용 ===== 
 + 
 +FADUINO-18TA는 Arduino UNO 기반 델로,   
 +CLCD를 **시리얼 포트(채널 0)** 를 통해 제어합니다. 
 + 
 +이 시리얼 포트는 업로드 포트와 겸용이므로,   
 +프로그램 업로드가 완료된 후 CLCD와 통신이 가능합니다.
  
 {{ :faduino:faduino:clcdwithfaduino:clcd.png?nolink |}} {{ :faduino:faduino:clcdwithfaduino:clcd.png?nolink |}}
Line 9: Line 22:
 {{ :faduino:faduino:clcdwithfaduino:clcd_faduino18ta.mp4?700x400 |}} {{ :faduino:faduino:clcdwithfaduino:clcd_faduino18ta.mp4?700x400 |}}
  
-아래의 소스는 FADUINO-18TA용 으로 보드설정을 Arduino UNO 로 해야 동작됩니다.+아래 예제는 CLCD에 문자열과 카운터 값을 표시하는 **최초 테스트용 샘플 프로그램**입니다.   
 +본 예제를 통해 다음 사항을 확인할 수 있습니다. 
 + 
 +  * CLCD 결선 상태가 정상인지 
 +  * 시리얼 통신이 정상적으로 이루어지는지 
 +  * 문자 위치 지정(locate)이 정상 동작하는지 
 + 
 +보드 설정은 반드시 **Arduino UNO** 로 선택해야 니다. 
 + 
 +++++ [소스코드 보기]|
 <code c> <code c>
 void setup()  void setup() 
 { {
-   Serial.begin(115200); //채널0, 보레이트 115200 설정 (채널0는 업로드포트와 겸용)+   Serial.begin(115200); //채널0, 보레이트 115200 설정 (업로드 포트와 겸용)
    clear(); //전체 화면을 지움    clear(); //전체 화면을 지움
    delay(20);    delay(20);
Line 21: Line 43:
    Serial.print(" FA-DUINO-18TA "); delay(100);    Serial.print(" FA-DUINO-18TA "); delay(100);
 } }
 +
 int cnt = 0; int cnt = 0;
 +
 void loop() void loop()
 { {
Line 30: Line 54:
     locate(13,3);     locate(13,3);
     Serial.print(cnt, DEC); delay(100);     Serial.print(cnt, DEC); delay(100);
-   
 } }
- +
 //전체 화면을 지웁니다. //전체 화면을 지웁니다.
-  
 void clear() void clear()
  
-   Serial.write(0x1b); Serial.write(0x43);+   Serial.write(0x1b); Serial.write(0x43);  
- +
 //표시될 문자의 x축과 y축의 위치를 설정합니다 //표시될 문자의 x축과 y축의 위치를 설정합니다
-  
 void locate(unsigned char x, unsigned char y) void locate(unsigned char x, unsigned char y)
  
-   Serial.write(0x1b);Serial.write(0x4C);Serial.write(x); Serial.write(y); +   Serial.write(0x1b); 
 +   Serial.write(0x4C); 
 +   Serial.write(x); 
 +   Serial.write(y); 
  
 </code> </code>
 +++++
  
-===== FADUINO-12RA24RA 용 소스 =====+===== FADUINO-12RA / FADUINO-24RA 용 =====
  
-아래의 소스는 FADUINO-12RA,-24RA용 으로 보드설정을 Arduino Mega 로 야 동작됩니다.+FADUINO-12RA 및 24RA 모델은 Arduino MEGA 기반으로,   
 +CLCD를 **RS232C(채널 1)** 를 통해 연결합니다.
  
-RS232를 이용해서 CLCD와 연결합니다. 다음 결선도를 보고 연결하십시오. +이 경우 CLCD 모듈의 **DIP 스위치를 모두 ON** 으로 설정하여   
-때 CLCD모듈의 스위치를 모두 ON 위치로 하여보레이트를 115200 으로 맞추어주 +보레이트를 **115200bps** 로 맞추어 주십시오.
-십시오. +
  
 {{ :faduino:faduino:clcdwithfaduino:clcd_back.png?nolink |}} {{ :faduino:faduino:clcdwithfaduino:clcd_back.png?nolink |}}
  
 +아래 예제는 CLCD 기본 출력 동작을 확인하기 위한 샘플입니다.
  
 +++++ [소스코드 보기]|
 <code c> <code c>
 void setup()  void setup() 
Line 75: Line 103:
  
 //전체 화면을 지웁니다. //전체 화면을 지웁니다.
- 
 void clear() void clear()
  
-   Serial1.write(0x1b); Serial1.write(0x43); } +   Serial1.write(0x1b);  
-    +   Serial1.write(0x43);  
-//표시될 문자의 x축과 y축의 위치를 설정합니다+}
  
 +//표시될 문자의 x축과 y축의 위치를 설정합니다
 void locate(unsigned char x, unsigned char y) void locate(unsigned char x, unsigned char y)
  
-   Serial1.write(0x1b);Serial1.write(0x4C);Serial1.write(x); Serial1.write(y); +   Serial1.write(0x1b); 
 +   Serial1.write(0x4C); 
 +   Serial1.write(x); 
 +   Serial1.write(y); 
  
 </code> </code>
 +++++
  
 +===== FADUINO-32TA 용 =====
  
-===== FADUINO-32TA 용 소스 =====+FADUINO-32TA는 CLCD 전용 **I2C 연결 포트**를 제공합니다.   
 +이 방식은 시리얼 방식보다 배선이 간단하며, 안정적인 통신이 가능합니다.
  
-FADUINO-32TA는 CLCD전용 연결포트인 I2C포트가 있습니다. 다음 결선도를 보고 연결하십시오. +CLCD 모듈의 **DIP 스위치를 모두 OFF** 로 설정  
-이때 CLCD모듈의 스위치를 모두 OFF 위치로 하, 슬레이브 어드레스를 0으로 맞추어주 십시오. +I2C 슬레이브 주소를 **0번** 으로 맞추어 주십시오.
  
 {{ :faduino:faduino:clcdwithfaduino:clcd2.png?nolink |}} {{ :faduino:faduino:clcdwithfaduino:clcd2.png?nolink |}}
  
-다음 소스로 CLCD에 문자를 표시할 수 있습니다. +아래 예제는 I2C를 이용하여 CLCD에 문자열을 표시하는 샘플 프로그램입니다.
  
 +++++ [소스코드 보기]|
 <code c> <code c>
 #include    <Wire.h> #include    <Wire.h>
 #define     ADDR_CLCD             0 #define     ADDR_CLCD             0
 + 
 unsigned char   locate_x; unsigned char   locate_x;
 unsigned char   locate_y; unsigned char   locate_y;
 + 
 void clcd_clear             (); void clcd_clear             ();
 void clcd_cursor_visible    (bool enable); void clcd_cursor_visible    (bool enable);
Line 110: Line 145:
 void clcd_print             (String value); void clcd_print             (String value);
 void clcd_locate            (unsigned char x, unsigned char y); void clcd_locate            (unsigned char x, unsigned char y);
 + 
 void setup() { void setup() {
   Wire.begin();                     // 마스터모드로 동작   Wire.begin();                     // 마스터모드로 동작
Line 122: Line 157:
   clcd_print("0123456789");   clcd_print("0123456789");
 } }
 + 
 void loop() { void loop() {
 } }
 + 
 void clcd_clear(){ void clcd_clear(){
   unsigned char tmp_buf[] = {0x1b,0x43};   unsigned char tmp_buf[] = {0x1b,0x43};
Line 133: Line 168:
   delay(200);   delay(200);
 } }
 + 
 void clcd_cursor_visible(bool enable){ void clcd_cursor_visible(bool enable){
   unsigned char tmp_buf[] = {0x1b,enable == true ? 0x53 : 0x73};   unsigned char tmp_buf[] = {0x1b,enable == true ? 0x53 : 0x73};
Line 146: Line 181:
   Wire.endTransmission();   Wire.endTransmission();
 } }
 + 
 void clcd_locate(unsigned char x, unsigned char y){ void clcd_locate(unsigned char x, unsigned char y){
   locate_x = x;   locate_x = x;
   locate_y = y;   locate_y = y;
 } }
 + 
 void clcd_print(String value){ void clcd_print(String value){
   unsigned char tmp_buf[] = {0x1b,0x4b,locate_y,locate_x,locate_y,locate_x};   unsigned char tmp_buf[] = {0x1b,0x4b,locate_y,locate_x,locate_y,locate_x};
Line 160: Line 195:
   Wire.endTransmission();   Wire.endTransmission();
 } }
- 
 </code> </code>
 +++++
 +
 +이 예제는 다음 사항을 확인하기 위한 용도로 사용됩니다.
 +
 +  * I2C 통신이 정상적으로 이루어지는지
 +  * CLCD 백라이트 및 커서 제어가 가능한지
 +  * 문자 위치 지정 및 출력이 정상인지
  
 ===== 기술지원 정책 ====== ===== 기술지원 정책 ======
-당사에서는 고객께서 작성하신 사용자 소스에 대한 분석 및 수정 서비스는 제공하지 않고 있음을 양해 부탁드립니다. + 
-기술지원은 당사에서 제공한 하드웨어와 관련된 에 한하여 지원이 가능합니다. 감사합니다.+당사에서는 고객께서 작성하신 사용자 소스에 대한 분석 및 수정 서비스는 제공하지 않고 있음을 양해 부탁드립니다.   
 +기술지원은 당사에서 제공한 하드웨어 사양, 결선 방법, 정상 동작 여부에 한하여 지원이 가능합니다. 감사합니다.
  
 본 샘플 소스는 사전에 정상 동작이 확인된 예제입니다. 본 샘플 소스는 사전에 정상 동작이 확인된 예제입니다.
  
 [[..:index|FADUINO]] [[..:index|FADUINO]]