Differences
This shows you the differences between two versions of the page.
| faduino:modularfaduino:uif5k2:index [2026/02/14 06:13] – created - external edit 127.0.0.1 | faduino:modularfaduino:uif5k2:index [2026/02/14 18:48] (current) – removed admin | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== 심플 유저 인터페이스 UIF-5K-2 ====== | ||
| - | |||
| - | 본 제품은 간단한 유저 인터페이스를 위한 제품입니다. 20 by 4 영문 LCD와 5개의 키가 내장되어 있습니다. | ||
| - | |||
| - | * RS232C 인터페이스 | ||
| - | * 통신방식(고정) : 보레이트 115200, 8비트, NONE 패리티, 1 스톱비트 | ||
| - | * 전원 전압 : 9~24VDC | ||
| - | * 소비전류 : 1.2W | ||
| - | * 동작 환경 : 0~50C | ||
| - | * 사용습도 : 35~85% (단 결로없는 환경) | ||
| - | * 맴브레인 내구도 : 100,000회 (Force 250gf) | ||
| - | * 최대 통신거리 : 2미터 | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | ===== 연결 방법 ===== | ||
| - | |||
| - | 본 제품은 RS232C를 사용해서 연결합니다. CFMEGA2의 CH1, CH2중 하나를 사용하세요. RX, TX가 서로 교차되도록 연결하고, | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | ===== 표시 방법 ===== | ||
| - | |||
| - | RS232C로 문자열을 보내면 LCD에 표시됩니다. | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | |||
| - | ===== 제어 명령 설명 ===== | ||
| - | |||
| - | LCD 제어 명령은 ESC코드 (HEX 1B)를 선두로, 1개의 영문자를 보내 동작을 지시한 뒤, 그에 필요한 각종 인수를 보내는 형식으로 되어 있습니다. | ||
| - | |||
| - | ^ 특수명령 | ||
| - | ^ 캐릭터 커서 On | ESC S | 커서를 On 합니다. | ||
| - | ^ 캐릭터 커서 Off | ESC s | 커서를 Off 합니다. | ||
| - | ^ LCD 지우기 | ||
| - | ^ 백라이트 ON/OFF | ESC BL # | 백라이트를 ON또는 OFF합니다. #위치에 0이면 OFF, 1이면 ON | 1B 42 4C 01 | | ||
| - | ^ 좌표 설정 | ||
| - | ^ 부저 ON / OFF 설정 | ||
| - | |||
| - | |||
| - | ===== 키 입력 ====== | ||
| - | |||
| - | 키를 누르면, 해당 키코드 1바이트가 수신됩니다. 키코드는 왼쪽에서부터 차례대로 1~5입니다. | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | |||
| - | ===== 샘플 프로그램 ===== | ||
| - | |||
| - | <code c> | ||
| - | void setup() { | ||
| - | Serial1.begin(115200); | ||
| - | uif_clear(); | ||
| - | uif_light(1); | ||
| - | uif_buzzer(1); | ||
| - | uif_locate(0, | ||
| - | Serial1.print(" | ||
| - | uif_locate(0, | ||
| - | Serial1.print(" | ||
| - | } | ||
| - | |||
| - | int cnt = 0; | ||
| - | |||
| - | void loop() { | ||
| - | | ||
| - | | ||
| - | | ||
| - | |||
| - | while (Serial1.available()> | ||
| - | char inChar = (char)Serial1.read(); | ||
| - | uif_locate(12, | ||
| - | Serial1.print(inChar, | ||
| - | } | ||
| - | | ||
| - | } | ||
| - | |||
| - | |||
| - | void uif_clear() //전체 화면을 지웁니다. | ||
| - | { Serial1.write(0x1b); | ||
| - | |||
| - | void uif_light(unsigned char on_off) //back light 설정 인자 값 0 or 1 | ||
| - | { Serial1.write(0x1b); | ||
| - | |||
| - | void uif_locate(unsigned char x, unsigned char y) //표시될 문자의 x축과 y축의 위치를 설정합니다 | ||
| - | { Serial1.write(0x1b); | ||
| - | |||
| - | void uif_buzzer(unsigned char on_off) // | ||
| - | { Serial1.write(0x1b); | ||
| - | |||
| - | </ | ||
| - | |||
| - | ===== 제안 ====== | ||
| - | |||
| - | 본 제품은 다음과 같은 방식으로 사용할 수 있도록 고안된 제품입니다. | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | 즉, 상단 빨간색 표시된 버튼으로 카테고리를 이동하고, | ||
| - | |||
| - | 다음은 운영 예입니다. | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | <code c> | ||
| - | int mode = 0; | ||
| - | |||
| - | void setup() { | ||
| - | Serial1.begin(115200); | ||
| - | mode_display_proc(); | ||
| - | } | ||
| - | |||
| - | void mode_display_proc() | ||
| - | { | ||
| - | switch(mode) { | ||
| - | case 0: | ||
| - | uif_clear(); | ||
| - | uif_light(1); | ||
| - | uif_buzzer(1); | ||
| - | uif_locate(0, | ||
| - | Serial1.print(" | ||
| - | uif_locate(0, | ||
| - | Serial1.print(" | ||
| - | break; | ||
| - | case 1: | ||
| - | uif_clear(); | ||
| - | uif_locate(0, | ||
| - | Serial1.print(" | ||
| - | uif_locate(9, | ||
| - | Serial1.print(" | ||
| - | break; | ||
| - | case 2: | ||
| - | uif_clear(); | ||
| - | uif_locate(0, | ||
| - | Serial1.print("< | ||
| - | uif_locate(0, | ||
| - | Serial1.print(" | ||
| - | break; | ||
| - | case 3: | ||
| - | uif_clear(); | ||
| - | uif_locate(0, | ||
| - | Serial1.print(" | ||
| - | uif_locate(0, | ||
| - | Serial1.print(" | ||
| - | 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()> | ||
| - | keyin_proc(); | ||
| - | } | ||
| - | } | ||
| - | |||
| - | |||
| - | void uif_clear() //전체 화면을 지웁니다. | ||
| - | { Serial1.write(0x1b); | ||
| - | |||
| - | void uif_light(unsigned char on_off) //back light 설정 인자 값 0 or 1 | ||
| - | { Serial1.write(0x1b); | ||
| - | |||
| - | void uif_locate(unsigned char x, unsigned char y) //표시될 문자의 x축과 y축의 위치를 설정합니다 | ||
| - | { Serial1.write(0x1b); | ||
| - | |||
| - | void uif_buzzer(unsigned char on_off) // | ||
| - | { Serial1.write(0x1b); | ||
| - | |||
| - | </ | ||
| - | |||
| - | ==== 동영상 ==== | ||
| - | |||
| - | < | ||
| - | <iframe width=" | ||
| - | </ | ||
| - | |||
| - | ===== 응용 분야 ====== | ||
| - | |||
| - | 아래 사진처럼 다수의 스위치및 램프가 필요한 콘트롤 박스에 활용할 수 있습니다. | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | {{ : | ||
| - | ===== 판넬 컷 ===== | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | ===== 외형 칫수 ====== | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | ===== 연결 부 설명 ====== | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | |||
| - | |||
| - | [[modularfaduino: | ||
