2014-08-14 13:52:50
터치센서 중 숫자 키패드센서와 좌표센서를 사용하여 보자.
각자의 역할은 스마트폰이나 휴대폰에서 명확하게 쓰임새를 찾아볼 수 있다. 여기에 쓰인 터치센서는 원초적인 기능만을 보여줄 수 있는 센서들이고
이 센서들을 응용하여 사용하는 예로는 대표적으로 ATM기기를 볼 수 있다. 좌표값에 따라 버튼을 누를 수 있고 키패드센서를 활용하면 터치 영역에 따라 버튼을 클릭하는 효과를 줄 수도 있다.

스마트폰이나 태블릿pc의 터치스크린 또한 이와 같은 원리로 작동한다. 터치센서의 원리는 생활 곳곳에서 쓰이고 있으며 어떻게 하면 터치 감도를 올릴 수 있을지 어떻게 하면 오차를 최소로 줄일 수 있는지 앞으로도 많은 연구과제와 많은 응용 프로젝트들이 넘쳐나는 가능성 있는 센서, 분야라고 볼 수 있다.

| NO | 부품명 | 수량 | 상세정보 |
| 1 | 아두이노 보드 | 1 | |
| 2 | 브레드보드 | 1 | |
| 3 | 키패드 센서 | 1 | |
| 4 | 좌표값 센서 | 1 | |
| 5 | 케이블 | 5 |
| 부품명 | 아두이노 보드 | 브레드보드 | 키패드 센서 | 좌표값 센서 | 케이블 |
| 부품사진 | ![]() |
![]() |
![]() |
![]() |
![]() |

좌표값 센서

키패드 센서

// #
// # Editor : Jiang from DFRobot
// # Data : 19.11.2012
// # E-Mail : jianghao0716@gmail.com
// # Product name : Capacitive touch pad
// # Version : 0.4
// # Power supply: 3.3v
// # Connection:
// # SDA (MPR121) -> PIN A4 (Arduino)
// # SCL (MPR121) -> PIN A5 (Arduino)
// # IRQ (MPR121) -> PIN A2 (Arduino)
#include <Wire.h>
#include <mpr121.h>
int X ; // x좌표값 변수
int Y ; // y좌표값 변수
// ========= setup =========
void setup()
{
// initialize function
Serial.begin(19200);
Wire.begin();
CapaTouch.begin();
delay(500);
Serial.println("START");
}
// ========= loop =========
void loop()
{
X=CapaTouch.getX(); //센서로부터 x좌표의 값을 받는다.
Y=CapaTouch.getY(); //센서로부터 y좌표의 값을 받는다.
if(X>=1&&X<=9&&Y>=1&&Y<=13)
{ // 지정한 범위에 속할 경우만 값을 출력하고 아니면 출력하지 않는다
Serial.print("X=");
Serial.print(X);
Serial.print(" Y=");
Serial.println(Y);
}
delay(200);
}
/*
TouchWheel.pde
MPR121 WhellPad Example Code
by:Waiman Zhao
Mail:Binpower@foxmail.com
created on: 11/2/14
license: CC-SA 3.0
Hardware: 3.3V Arduino Pro Mini
SDA -> A4
SCL -> A5
IRQ -> D2
*/
#include <Wire.h>
#include <mpr121.h>
int key = 0;
// ========= setup =========
void setup()
{
// 통신모드 setting 및 initialize
Serial.begin(19200);
Wire.begin();
CapaTouch.begin();
delay(500);
Serial.println("START");
}
// ========= loop =========
void loop()
{
key=CapaTouch.keyPad(); //키패드로부터 값을 받는다
if (key==11) //11의 값을 받을 경우에는 *기호 출력
{ Serial.print("key:");
Serial.println("*");
}
else if(key==12) //12의 값을 받을 경우에는 #기호 출력
{
Serial.print("key:");
Serial.println("#");
}
else if(key>=0){
Serial.print("key:");
Serial.println(key);
}
delay(200);
}
위 센서의 경우 장점은 사용하기 편하다는 장점이 있다. 두개 다 외부라이브러리를 사용하여 센서를 작동시키는데
라이브러리 내려받기
위 링크로 가면 라이브러리를 받아서 사용할 수 있다. 받은파일을 아두이노가 설치된 폴더의 libraries에 압축해제한다면 사용이 가능하다.
외부라이브러리 사용방법
실질적인 작동은 1문장으로 끝난다.
좌표값 센서의 경우에는 CapaTouch.getX(); CapaTouch.getY();를 통해 X값 Y값을 센서로부터 쉽게 받아올 수 있으며
키패드 같은 경우에는 CapaTouch.keyPad();를 통해 센서로부터 키패드값을 쉽게 받아올 수 있다.
외부라이브러리를 사용하기 때문에 복잡하게 이것저것 할 필요가 없이 구현해 놓은 함수들을 사용하기만 하면 된다.
소스자체만 보면 단일센서나 LED하나 깜빡이기 정도의 수준으로 쉽게 따라할 수 있는 수준이다.
I2C통신과 Serial통신만 할 줄 안다면 다른 센서나 LED, 모터를 달아서 응용또한 쉽게 가능하다.
kocoafabeditor
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!
키패드센서, 좌표값센서, 아두이노