본 제품은 다음과 같은 방식으로 사용할 수 있도록 고안된 제품입니다.
즉, 상단 빨간색 표시된 버튼으로 카테고리를 이동하고, 해당 카테고리 구성 메뉴 3개중 하나를 선택하는 방식입니다.
다음은 운영 예입니다.
int mode = 0;
void setup() {
Serial1.begin(115200); //보레이트 115200 설정
mode_display_proc();
}
void mode_display_proc()
{
switch(mode) {
case 0:
uif_clear();
uif_light(1); //back light를 on
uif_buzzer(1); //소리 on
uif_locate(0,0);
Serial1.print(" AB CONTROL SYSTEM");
uif_locate(0,3);
Serial1.print("SETUP");
break;
case 1:
uif_clear();
uif_locate(0,0);
Serial1.print("1.MAIN TANK TEMP.>");
uif_locate(9,3);
Serial1.print("+ -");
break;
case 2:
uif_clear();
uif_locate(0,0);
Serial1.print("<2.MAIN TANK MIX>");
uif_locate(0,3);
Serial1.print("AUTO ON OFF");
break;
case 3:
uif_clear();
uif_locate(0,0);
Serial1.print("3.END OF MENU");
uif_locate(0,3);
Serial1.print("EXIT");
break;
}
}
void keyin_proc()
{
char inChar = (char)Serial1.read();
switch(mode) {
case 0:
if (inChar==2) {
mode = 1;
mode_display_proc();
}
break;
case 1:
if (inChar==5) {
mode = 2;
mode_display_proc();
}
break;
case 2:
if (inChar==1) {
mode = 1;
mode_display_proc();
}
if (inChar==5) {
mode = 3;
mode_display_proc();
}
break;
case 3:
if (inChar==1) {
mode = 2;
mode_display_proc();
}
if (inChar==2) {
mode = 0;
mode_display_proc();
}
break;
}
}
void loop() {
while (Serial1.available()>0) {
keyin_proc();
}
}
void uif_clear() //전체 화면을 지웁니다.
{ Serial1.write(0x1b); Serial1.write(0x43); delay(50); }
void uif_light(unsigned char on_off) //back light 설정 인자 값 0 or 1
{ Serial1.write(0x1b);Serial1.write(0x42);Serial1.write(0x4c); Serial1.write(on_off); }
void uif_locate(unsigned char x, unsigned char y) //표시될 문자의 x축과 y축의 위치를 설정합니다
{ Serial1.write(0x1b);Serial1.write(0x4C);Serial1.write(x); Serial1.write(y); delay(50); }
void uif_buzzer(unsigned char on_off) //부저동작 on/off 값 0 or 1
{ Serial1.write(0x1b);Serial1.write(0x5a);Serial1.write(on_off); }