코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
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
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!