레이블이 touch인 게시물을 표시합니다. 모든 게시물 표시
레이블이 touch인 게시물을 표시합니다. 모든 게시물 표시

2015년 6월 4일 목요일

Adafruit의 5채널 터치 센서 모듈 AT42QT1070 간단 소개

 개인 프로젝트에서 사용하려고 주문한 Adafruit 5채널 터치 센서 모듈 AT42QT1070 이라는 모듈이 도착했다.

[그림 1] 센서 모듈 (제품 홈페이지)

사용법은 정말 간단한데 전원(1.8V~5.5V)을 연결한 후 입력 핀에 (전도성) 터치 패드를 연결하면 출력 핀에 터치 여부에 따라서 디지털 출력이 나오게 된다. I2C 통신 같은 기능 없이 이렇게만 사용할 수 있다. 도전 패드의 최소 크기는 6x6mm 이다.

 간단하게 VDD에 3.3V를 인가하고 GND도 연결하고 입력 쪽 핀들을 터치해 보니 출력쪽의 LED가 반응하는 것을 볼 수 있다. 각 출력에 LED가 달려 있어서 디지털 출력 신호를 눈으로도 확인할 수 있었다.

 이 모듈의 치명적인 단점은 한 번에 하나의 입력만 감지한다는 것이다. 즉, 동시에 여러 개의 터치를 처리하지 못한다. 여러 개를 터치해도 오직 하나의 출력만 나온다. 이것은 상당히 치명적인 단점이므로 프로젝트에서 사용할 때 이 부분을 고려해야 한다.


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를 켠다.