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