아두이노 이용 키보드만들기 관련 질문 드립니다.

https://www.kbdmania.net/xe/tipandtech/8794285
이전 댓글 1
탈퇴자 2018-12-17 17:02
매트릭스는 일단 젖혀두고, 디지털 인풋 하나만 쓰는 걸로 단순하게 생각해봅시다. 키 하나의 입력만 보죠 우선.  컴퓨터 키보드의 스위치는 구조상 오픈-클로즈만 지원합니다. 추가 회로를 구성하지 않는한 PULLUP 입력방식이 강제되어 있고 이러면 로직이 뒤집어집니다. 즉, 0일때가 릴리즈, 1일때가 오픈으로 판정하는 방식을 쓸수밖에 없습니다. (여기서 풀업은 단자가 오픈일때 하이 임피던스 상태로 대충 놔두지 않고 내부 풀업저항을 사용하여 High신호로 읽겠다는 의미입니다. 더 이상의 자세한 설명은 생략) 자 보죠, 말씀하신대로 스위치단 입력을 high로 놓고 스위치를 눌렀을때 high가 들어오면 감지로 쳐보겠습니다.  스위치 눌렀을때 - 눌렀으니까 입력전압이 그대로 전달되어 high 스위치 안눌렀을때 - 안눌렀으니까 pullup이 작동하여 high (???) 결국 이 방식으로는 입력감지를 할 수 없다는 의미입니다.  이걸 뒤집어서, 스위치단 입력을 LOW(0)로 해봅시다. 스위치 눌렀을때 - 눌렀으니까 입력전압이 그대로 전달되어 0 스위치 안눌렀을때 - 안눌렀으니까 pullup이 작동하여 1  이제 제대로 작동하는군요. 이게 "왜 귀찮게 로직을 전부 뒤집어놨느냐"에 대한 대답입니다. 풀다운 모드가 있다면 해결할 수 있겠지만 찾아보니 아두이노에는 그런게 없군요. 둘 중 하나만 지원하면 대개 충분하기도 해서요. 
← 질문답변 목록으로