2015년 4월 19일 일요일

[00018] 아두이노와 터치 센서를 이용한 디지털 포트 실험

 여기에서는 터치센서를 이용하여 디지털 입력 값을 받는 실험을 진행해보도록 하겠다. 시중에서 구할 수 있는 터치센서 모듈의 외형은 다음 그림과 같다.

[그림 1]  터치센서 모듈

터치센서의 금속판을 터치할 때 출력 신호가 바뀐다. 즉, 터치시에 HIGH를 아닐 때는 LOW 신호를 내보낸다.

 이 모듈은 선이 세 가닥이 있다. 두 가닥은 전원선이고 나머지 하나는 신호선이다. 이 신호선을 아두이노의 디지털 핀에 연결하면 되는데 예를 들어서 3번 핀에 연결한다면 다음과 같다.
[그림 2] 터치센서 모듈을 우노의 3번 핀에 에 연결한 모양

 이 모듈의 동작은 간단하다. 터치가 안 되어 있다면 신호선으로 LOW 신호가 나오고 터치가 되었다면 HIGH 신호가 나온다. 따라서 이 디지털 신호를 읽으면 터치 패널에 터치가 되었는지 아닌 지를 판별할 수 있다.

 단순하게 터치가 된 상태라면 LED가 켜진 상태를 유지하고 아니라면 LED도 꺼진 상태를 유지하는 매우 간단한 프로그램을 작성해 보도록 하겠다.

#define TS 3 // 터치센서에 연결된 핀 번호
void setup() {
   pinMode(LED_BUILTIN, OUTPUT);
   pinMode(TS, INPUT);
}
void loop() {
   int iTouched = digitalRead(TS);
   digitalWrite(LED_BUILTIN, iTouched);
}

이것을 더 간단하게 줄이면 다음과 같이 iTouched 변수를 생략할 수 있다.

#define TS 3 // 터치센서에 연결된 핀 번호
void setup() {
   pinMode(LED_BUILTIN, OUTPUT);
   pinMode(TS, INPUT);
}
void loop() {
   digitalWrite(LED_BUILTIN, digitalRead(TS));
}

이 프로그램이 실행되면 터치 상태를 계속 읽어들여서 터치되었다면 LED를 켠다.


댓글 없음:

댓글 쓰기