===== UIF-5K와 연결 ===== UIF-5K는 LCD 표시부와 5개의 입력 키를 내장한 **유저 인터페이스(UI) 전용 패널**입니다. \\ FADUINO와 연결하여, 별도의 PC 없이도 **상태 표시, 메뉴 출력, 사용자 입력 처리**를 구현할 수 있습니다. UIF-5K는 내부에 제어 로직을 가지지 않으며, FADUINO가 전송하는 **시리얼 통신 명령에 따라 화면 표시와 버튼 입력을 처리**하는 구조입니다. 따라서 UIF-5K는 다음과 같은 용도로 주로 사용됩니다. * 장비 상태 표시 (카운터, 센서 값, 동작 상태) * 간단한 메뉴 또는 설정 화면 구성 * 버튼 입력을 통한 수동 제어 * 현장용 소형 조작 패널 구성 {{ :faduino:faduino:uif5kwithfaduino:uif5k.png?nolink |}} ==== 전면부 ==== 전면부에는 문자 표시용 LCD와 5개의 버튼이 배치되어 있습니다. 이 버튼은 시리얼 통신을 통해 FADUINO로 입력 값이 전달됩니다. {{ :faduino:faduino:uif5kwithfaduino:uif5k1.png?nolink |}} ==== 후면부 ==== 후면부에는 통신용 커넥터와 전원 입력 단자가 위치합니다. UIF-5K는 FADUINO와 **통신선만 연결해서는 동작하지 않으며**, 반드시 **별도의 전원 입력**이 필요합니다. {{ :faduino:faduino:uif5kwithfaduino:uif5k_back.png?nolink |}} ==== FADUINO와 UIF-5K 연결 ==== 다음과 같이 UIF-5K와 FADUINO를 연결하십시오. * 통신 : 시리얼 포트(RS232C) * 전원 : DC 9V ~ 24V (UIF-5K 전용 전원) UIF-5K에는 **9V ~ 24VDC 전원을 반드시 별도로 공급해야 하며**, FADUINO에서 전원이 공급되지 않습니다. {{ :faduino:faduino:uif5kwithfaduino:connection.png?nolink |}} ===== 샘플프로그램 1 ===== 아래 예제는 UIF-5K와의 **기본 통신 및 화면 제어 동작을 확인하기 위한 최초 테스트용 샘플 프로그램**입니다. 이 예제를 통해 다음 사항을 확인할 수 있습니다. * 시리얼 통신 연결이 정상인지 * 화면 출력 명령이 정상적으로 동작하는지 * 부저(buzzer) 제어가 가능한지 {{ :faduino:faduino:uif5kwithfaduino:uif5k_sample1.png?nolink |}} ++++ [ 소스코드 보기]| void setup() { Serial1.begin(115200); //보레이트 115200 설정 uif_clear(); //전체 화면을 지움 delay(20); uif_buzzer(1); delay(20); //부저 소리 on uif_locate(0,0); Serial1.print("=== UIF 5K_TEST ===");delay(100); uif_locate(2,1); Serial1.print(" FA-DUINO-12RA "); delay(100); } void loop(){ } //전체 화면을 지웁니다. void uif_clear() { Serial1.write(0x1b); Serial1.write(0x43); } //표시될 문자의 x축과 y축의 위치를 설정합니다 void uif_locate(unsigned char x, unsigned char y) { Serial1.write(0x1b);Serial1.write(0x4C);Serial1.write(x); Serial1.write(y); } //부저동작 on/off 값 0 or 1 void uif_buzzer(unsigned char on_off) { Serial1.write(0x1b);Serial1.write(0x5a);Serial1.write(on_off); } ++++ 이 샘플은 **버튼 입력이나 반복 동작 없이**, UIF-5K의 **출력 기능만을 단순 확인하는 목적**으로 사용됩니다. ===== 샘플프로그램 2 ===== 아래 예제는 **UIF-5K의 버튼 입력과 화면 갱신을 함께 사용하는 예제**입니다. 이 예제를 통해 다음을 확인할 수 있습니다. * 버튼 입력 값이 시리얼로 정상 수신되는지 * 화면 위치 지정 및 문자열 출력이 가능한지 * 카운터 값이 실시간으로 갱신되는지 * 백라이트, 부저, LED 제어가 정상인지 {{ :faduino:faduino:uif5kwithfaduino:uif5k_sample2.png?nolink |}} ++++ [ 소스코드 보기]| void setup() { Serial1.begin(115200); //보레이트 115200 설정 uif_clear(); //전체 화면을 지움 delay(20); uif_light(1); delay(20); //back light를 on uif_buzzer(1); delay(20); //부처 소리 on delay(100); uif_locate(0,0); Serial1.print("=== UIF 5K_TEST ===");delay(100); uif_locate(2,1); Serial1.print("comfiletech.com"); delay(100); uif_locate(2,2); Serial1.print("COUNTER : "); delay(100); uif_locate(2,3); Serial1.print("BUTTON : "); delay(100); } int cnt = 0; void loop() { cnt++; //카운터 값을 증가 uif_locate(12,2); Serial1.print(cnt, DEC); //카운터 값을 표시 delay(100); serial1Event(); } void serial1Event() { //입력된 버튼 값을 표시 합니다. while (Serial1.available()) { char inChar = (char)Serial1.read(); uif_locate(10,3); Serial1.print(inChar, DEC); } } //커서설정 인자 값 0 or 1 void uif_csron(unsigned char on_off) { if(on_off){Serial1.write(0x1b); Serial1.write(0x53);} else {Serial1.write(0x1b); Serial1.write(0x73);} } //전체 화면을 지웁니다. void uif_clear() { Serial1.write(0x1b); Serial1.write(0x43); } //back light 설정 인자 값 0 or 1 void uif_light(unsigned char on_off) { Serial1.write(0x1b);Serial1.write(0x42);Serial1.write(0x4c); Serial1.write(on_off); } //표시될 문자의 x축과 y축의 위치를 설정합니다 void uif_locate(unsigned char x, unsigned char y) { Serial1.write(0x1b);Serial1.write(0x4C);Serial1.write(x); Serial1.write(y); } //버튼확인 led 설정 인자 값 0 or 1 void uif_swled(unsigned char on_off) { Serial1.write(0x1b);Serial1.write(0x45);Serial1.write(on_off); } //해당 led를 on/off 합니다. void uif_led(unsigned char number, unsigned char on_off) { Serial1.write(0x1b);Serial1.write(0x46);Serial1.write(number); Serial1.write(on_off); } //부저동작 on/off 값 0 or 1 void uif_buzzer(unsigned char on_off) { Serial1.write(0x1b);Serial1.write(0x5a);Serial1.write(on_off); } ++++ 이 예제는 **UIF-5K를 실제 장비 UI처럼 사용하는 전형적인 구조**로, 초기 테스트 이후 **자신의 응용 프로그램으로 확장하기에 적합한 기준 예제**입니다. ===== 기술지원 정책 ====== 당사에서는 고객께서 작성하신 사용자 소스에 대한 분석 및 수정 서비스는 제공하지 않고 있음을 양해 부탁드립니다. 기술지원은 당사에서 제공한 하드웨어 사양, 결선 방법, 정상 동작 여부에 한하여 지원이 가능합니다. 감사합니다. 본 샘플 소스는 사전에 정상 동작이 확인된 예제입니다. [[..:index|FADUINO]]