안녕하세요. 오늘은 터치 센서의 구동원리에 대하여 간단히 알아보고 아두이노와 활용해보겠습니다.

아두이노에는 다양한 입력기기가 있습니다.

예를들자면 버튼, 조이스틱, 초음파 센서, 물체 감지센서 등이 있습니다.

터치 센서는 스마트폰을 시작으로 다양한 전자기기에서 입력기기로 활용되고 있습니다.

이를 아두이노에 활용한다면 다양한 프로젝트를 만드는데 도움이 될 것 입니다.

차례

1. 정전시 터치 센서의 원리

2. 터치 센서 TTP223

2. 아두이노와 터치 센서

1. 정전식 터치 센서의 원리

터치 센서는 크게 두가지 방식이 있습니다. 정전식과 감압식입니다.

거의 모든 기기에서는 정전식을 사용하고 있습니다.

정전식 터치의 원리는 사람이 가지고있는 정전기를 이용한 방식입니다

스크린에 전류를 흐르게하고 사람이 손을 가져다 되면 정전기에 의해 전자가 끌려가게 되고

전류가 변하게 되어 인식하는 원리입니다.

터치스크린 원리 자세히 알아보기 ! ( 링크입니다. )


2. 터치 센서 TTP223

이번에 사용할 터치 센서 모듈은 TTP223 입니다.

위 그림에서 볼 수 있듯이 터치센서 패드가 있습니다.

VCC와 GND전원을 연결하면 저곳에 전류가 흐로고 위에 설명했듯이 손을 가져다 대면 전류가 변하고 인식을 하게 됩니다.

SIG핀에 데이터를 입력받을 아두이노핀에 연결해주시면 됩니다.


3. 아두이노와 터치 센서

아두이노와 터치 센서를 활용하여 LED밝기를 3단계 조절하는 예제를 해보겠습니다.

다음과 같이 회로를 구성합니다. (회색 판이 터치센서 모듈입니다.)

터치 센서의 SIG핀을 6번핀에 연결했습니다.

그리고 터치 센서가 인식을 했을 때 3번핀으로 전압을 줘서 LED가 밝아지는 방식입니다.

그런데 여기서 터치 1번당 밝기가 1단계씩 올라가서 3단계까지 올라가는 방식으로 코딩해보겠습니다.

sig는 터치센서의 인식 데이터 값을 받을 핀번호 입니다.

마찬가지로 int led = 3; led를 출력할 때 쓸 핀번호를 초기화 시킵니다.

level 은 터치할 때 마다의 단계를 나타내기 위한 정수형 변수입니다.

boolean turnON은 센서가 인식되는 상태인지 아닌지를 구분하기 위한 논리자료형 입니다.

setup()에서 각각 핀모드를 초기화 해줍니다.

먼저 led를 단계별로 인식할 수 있게 만드는 함수 void fuc() 부터 보겠습니다.

void fuc()

state 가 1일 경우는 터치 센서가 인식되고 있는 경우 입니다.

state가 1일 경우 turnON = true 로 초기화 시킵니다.

그리고 turnON이 true고 state = 0 이 된다면 한번 인식되었다가 인식이 끝났다는 것을 뜻하게 됩니다.

그러면 level을 +1 연산 시켜줍니다. 

총 3단계 까지 있으므로 level이 4가되면 0으로 초기화 시켜줍니다.

즉, 계속 터치센서에 인식을 시켜도 시간에 상관없이 단계별로 딱 맞게 구분 지을 수 있습니다.

void loop()

이제 level의 값에 따라서 led의 analogWrite의 출력값을 다르게 설정하면 완성됩니다.

예제 동영상입니다.

감사합니다.

+ Recent posts