CLCD는 FADUINO와 연결할 수 있는 캐릭터 LCD 모듈입니다.
아래의 소스는 FADUINO-18TA용 으로 보드설정을 Arduino UNO 로 해야 동작됩니다.
void setup() { Serial.begin(115200); //채널0, 보레이트 115200 설정 (채널0는 업로드포트와 겸용) 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,-24RA용 으로 보드설정을 Arduino Mega 로 해야 동작됩니다.
RS232를 이용해서 CLCD와 연결합니다. 다음 결선도를 보고 연결하십시오. 이때 CLCD모듈의 딥스위치를 모두 ON 위치로 하여, 보레이트를 115200 으로 맞추어주 십시오.
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는 CLCD전용 연결포트인 I2C포트가 있습니다. 다음 결선도를 보고 연결하십시오. 이때 CLCD모듈의 딥스위치를 모두 OFF 위치로 하여, 슬레이브 어드레스를 0으로 맞추어주 십시오.
다음 소스로 CLCD에 문자를 표시할 수 있습니다.
#include <Wire.h> #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(); }
저희 회사에서는 유저가 작성하신 소스를 분석/수정해드리는 업무를 하고 있지 않은점 양해바랍니다. 본 제품은 저희가 제작한 하드웨어와 관련된 기술지원만 가능합니다. 감사합니다.
본 샘플 소스는 사전에 동작이 확인된 소스입니다.