이 프로젝트에서는 아두이노 정전 용량 센싱 라이브러리를 기반으로 동전을 터치 센서로 사용하여 LED를 켜고 끄는 터치 센서를 제작합니다. 정전 용량 센서는 인체나 손처럼 전도성이 있거나 공기와 현저히 다른 유전율을 가진 물체를 감지할 수 있습니다.
정전 용량 센서 라이브러리는 두 개 이상의 아두이노 핀을 정전 용량 센서로 변환하여 인체의 전기 용량을 감지합니다. 센서 설정에는 중간~높은 값의 저항, 와이어 한 조각, 끝부분에 작거나 큰 알루미늄 호일 조각만 있으면 됩니다. 최대 민감도에서는 센서에서 몇 인치 떨어진 손이나 신체도 감지할 수 있습니다.
회로 및 작동 원리
간단한 RC 회로(저항-커패시터)입니다. 한 상태에서 다른 상태로 변하는 데 걸리는 시간을 측정하여 거리(인체의 일반적인 정전 용량, 고저항 값, 센서 재료의 일반적인 정전 용량을 알기 때문에)를 근사치로 구합니다. 고저항은 현저히 낮은 방전 시간을 제공하기 위한 것입니다.
이 프로젝트에서는 동전이나 알루미늄 호일 등 금속 물체를 센서 재료로 사용할 수 있습니다.
소프트웨어 프로그램
터치를 통한 조명 켜기/끄기 기능은 아두이노 보드에 업로드된 소프트웨어 프로그램으로 제어합니다. 코드를 업로드하기 전에 아두이노 웹사이트에서 정전 용량 센서 라이브러리를 설치해야 합니다.
하드웨어 설정
고저항(1MΩ)을 아두이노 2번과 4번 핀 사이에 연결합니다. 프로그램상 4번 핀이 수신 핀이므로 동전(정전 용량 센서 역할)을 수신 핀에 연결합니다. LED는 GND와 8번 핀 사이에 연결합니다.
테스트
센서를 터치할 때마다 이전 상태가 변경되어 LED가 켜거나 꺼집니다. 저항값이 클수록 센서가 더 민감해져 근접 센서처럼 작동합니다.
코드
아두이노 코드 아두이노
정전 용량 센싱 라이브러리가 설치되어 있는지 확인하세요.
#include <CapacitiveSensor.h>
CapacitiveSensor cs_2_4 = CapacitiveSensor(2,4); // 핀 2와 4 사이에 1M 저항, 핀 4가 센서 핀, 와이어 또는 호일 추가
int in = 2;
int out = 4;
int state = HIGH;
int r;
int p = LOW;
long time = 0;
long debounce = 200;
void setup() {
pinMode(4, INPUT);
pinMode(8, OUTPUT);
}
void loop() {
r = digitalRead(4);
if (r == HIGH && p == LOW && millis() - time > debounce) {
if (state == HIGH) state = LOW;
else state = HIGH;
time = millis();
}
digitalWrite(8, state);
p = r;
}