A PHP Error was encountered

Severity: Notice

Message: Undefined index: HTTP_ACCEPT_LANGUAGE

Filename: core/KF_Controller.php

Line Number: 155

Capacitive Touch Sensor(정전 용량 터치 센서) 구현하기

중급 예제

약간은 익숙하시거나 익숙해지셨나요? 그렇다면 조금더 깊이 다뤄볼까요?

Capacitive Touch Sensor(정전 용량 터치 센서) 구현하기

2015-05-29 14:34:58

 

요즘 가전기기를 보면 정겹던 똑딱이 버튼은 사라지고 있다는 것을 느끼실 겁니다.

대신 터치 버튼이 사용되면서 더욱 편리하고 더욱 고급스러운 가전 제품이 나오고 있습니다.

 

아두이노를 처음 접하신 분들이 '버튼으로 LED 제어하기'를 실습하면서 왠만한 선택형 스위치는

일반 버튼으로 사용하시는 분들이 많습니다. "아두이노는 일반 버튼만 사용할수 있다!!"는 고정관념을

벗겨드리기 위해 오늘은 라이브러리 만으로 정전 용량 터치 센서를 구현 할 수 있는 방법을 알려드리겠습니다.

 

이번 튜토리얼의 가장 핵심은, 저항과 아두이노만으로 할 수 있다는 점이 되겠습니다.^^

 


 

앞서 정전 용량 터치 방식의 원리에 대해서 아주 간단히 살펴보겠습니다.

이름 그대로 정전 용량의 변화를 인식하여 특정 변화 이상일 경우 다른 기능을 수행 할 수 있도록 하는 원리입니다.

 

 

하나의 핀(Send Pin)에서 출력신호를 보내고 다른 한쪽(Receive Pin)에서는 그 신호를 받음으로써 발생한 전하량을 체크합니다.

여기서 신호를 받는 쪽에서 인체(접지역할)가 접촉 할 경우 인체는 전하를 끌어 충전하는 하나의 커패시터 역할을 하게 됩니다.

새롭게 발생한 인체?! 커패시턴스는 Receive Pin쪽의 커패시턴스와 병렬형태가 되고 커패시턴스 병렬 연결 법칙에 따라

정전용량은 더욱 커지게 됩니다. 따라서 커패시터가 갖게되는 저항성분(임피던스)이 증가하여 결과적으로 Receive Pin에 

입력되는 전류량이 감소하게 되어 아두이노가 그 변화를 감지하게 되는 원리입니다.

 

 

 


개요

 

아두이노와 저항으로 정전 용량 터치 센서를 구현해 봅니다.

 

 

 


 

사전 필요 지식

 

라이브러리 사용하기

 

 

 


 

필요한 부품

 

NO PART QTY ETC
1 Orange Board 1  
2 Resistor 2 10K Ohm
3 Resistor 2 229 Ohm
4 LED 2  
5 Bread Board 1 Small Size
6 Jumper Cable -  

 

 


 

동영상 미리 보기

 

 

 

 

 

 


 

사진 미리 보기

 

 

 

앞서 말씀드린 대로 특별한 센서나 모듈은 사용하지 않았습니다. ^^

 

 


 

하드웨어 메이킹

 

 

<튜토리얼 에서는 터치 패드를 따로 사용하지 않고 점퍼 케이블에 접점을 만들어 테스트해 봅니다>

 

 


 

 

아두이노 코드

 

#include <CapacitiveSensor.h>

CapacitiveSensor   cs_8_9 = CapacitiveSensor(8,9);     // 8번이 송신핀, 9번이 수신핀 <1번 터치패드>
CapacitiveSensor   cs_10_11 = CapacitiveSensor(10,11); // 10번이 송신핀, 11번이 수신핀 <2번 터치패드>

void setup() 
{
  Serial.begin(9600);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
}

void loop() 
{
  long SEN1 = cs_8_9.capacitiveSensorRaw(30);    // 1번 터치패드 값 수신 <접촉시 55~60의 정수값 출력>
  long SEN2 = cs_10_11.capacitiveSensorRaw(30);  // 2번 터치패드 값 수신 <접촉시 55~60의 정수값 출력>
  Serial.print( SEN1 );
  Serial.print(" ");
  Serial.println( SEN2 );
  digitalWrite(2,LOW);
  digitalWrite(3,LOW);

  if(SEN1 > 50)    // 1번 터치패드 접촉시 1번 LED 점등
  {
    digitalWrite(2,HIGH);
  }
  if(SEN2 > 50)    // 2번 터치패드 접촉시 2번 LED 점등
  {
    digitalWrite(3,HIGH);
  }
}

 

소스코드는 매우 간단합니다. 일반 버튼 대신 CapacitiveSensor 라이브러리를 사용하시면 됩니다.

CapacitiveSensor 라이브러리는 다음 링크에서 다운로드 하시면 됩니다.

CapacitiveSensor Libarary

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

버튼, 터치센서, 터치, 정전용량, 라이브러리

kocoafabeditor 2015-05-29 15:13:13

CapacitiveSensor 라이브러리 사용시 주의하실 점은 터치 인식부분의 길이 및 외형이 중요합니다. 작은 점퍼 케이블이라도 저항성, 용량성 특성을 가지기 때문에 이를 잘 고려해야 하는데요, Arduino.cc 포럼에서 라이브러리를 검색하시면 이에 대한 저항 소자 값이 명시되어있습니다. 라이브러리 사용하실 때 꼭 참고해주시기 바랍니다.