요즘 PC튜닝 사이트에서 LCD인디케이터들을 많이 팔죠..
대부분 시리얼컨트롤러를 붙여서 제어하는데요.. 이 방법은 별도의 컨트롤러를 만들거나 구입해야 하는 문제가 있어서 패러럴 포트를 이용한 직접 제어 방식도 많이 사용되고 있습니다.
출처: 파코즈 하드웨어
http://parkoz.pe.kr/zboard/view.php?id=mainreview&page=1&category=&sn=off&ss=on&sc=off&keyword=&select_arrange=headnum&desc=asc&no=46
여기 접속해 보시면 패러럴 포트에 직접 LCD 인디케이터를 붙이는 방법이 있죠.
재밌는건, 패러럴이나 시리얼이나 별도의 전원공급라인을 끌어와야 하기 때문에 USB포트나 PS/2포트에서 전원만 끌어오게 만든다는거죠..
근데 여길 보시면 Serial-USB 컨버터를 이용해서 USB로 직접 데이터까지 전송하게 만든 것도 있습니다.
출처: 파코즈 하드웨어
http://parkoz.pe.kr/zboard/view.php?id=mainreview&page=1&category=&sn=off&ss=on&sc=off&keyword=&select_arrange=headnum&desc=asc&no=81
이걸 보다보니 궁금증이 생기더군요. 패러럴-USB 컨버터도 판매되고 있는데 그걸 쓰면 별도의 컨트롤러 없이 LCD 인디케이터와 USB를 연결할 수 있지 않을까?
그래서 질문을 올렸더니만 LCD 컨트롤 프로그램들이 LPT1 이런 식으로 물리적 포트만을 제어할 수 있다는 답변이 올라왔더군요.
제 생각에는
HANDLE hFile = ::CreateFile("COM1",
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
이런식으로 COM포트를 열어서 WriteFile/ReadFile로 데이터를 주고받는 것 처럼 가상으로 생긴 프린터포트를 똑같이 열어서 통신하면 얼마든지 구현할 수 있지 않을까.. 하는 생각이 들었습니다.
사실 전 하드웨어에 대해서는 몇년전에 시리얼제어를 해 봤던거 빼고는 일자무식이거든요. 그때는 그나마 이렇게 직접 오픈하는 방식을 쓴게 아니고 컴포넌트를 구해다가 뚝딱뚝딱 만든거라서요..
한번 네트워크 프린터에 대해 테스트 해 볼까 하고..
HANDLE hFile = ::CreateFile("IP_203.236.238.28",
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
이렇게 해서 WriteFile로 텍스트 정보를 전송해 봤는데.. 핸들은 얻어지지만 실제 전송은 안되더군요.. (실수였슴다.. ㅠ ㅠ.. 핸들이 아예 안얻어지는거였군요. if (hFile)이렇게 검사해서 이런 실수를.. 쩝.. if (hFile != INVALID_HANDLE_VALUE) 이렇게 해야하는데..)
아무튼 이런 아이디어로 LCD 인디케이터를 제어하게 만들 수 있을까요?
만약 가능하다는 판단이 서면 당장 용산가서 20x2짜리 LCD랑 USB-패러럴 컨버터 하나 사 와서 시도해 볼까 하는데요..
뭐, LCD제어에 좀 익숙해 진다면 그래픽 LCD 달아서 Windows의 TrueType을 랜더링해서 한글로 디스플레이 되는 LCD패널 컨트롤 소프트웨어를 하나 만드는 것도 재밌을 것 같구요.
혹시 좋은 정보 가지고 계시거나 경험 있으신 분들 제게도 좀 나눠주시면 고맙겠습니다. ^^
PS. 아참.. "\\\\?\\IP_203.236.238.28" 이렇게 해도 마찬가지더라구요.. ㅠ ㅠ