초급 예제

누구나 쉽게 따라해볼 수 있는 쉬운 예제들입니다. 가볍게 도전~!

노크(Knock) 센서-진동 감지 및 출력

2014-08-06 09:40:16

개요



노크 센서(Knock Sensor) 혹은 탭 센서(Tap Sensor) 라고 불리며,
플라스틱 안의 금속이 충격 및 진동을 감지하여 이를 출력하는 센서입니다.

구체적으로 어떻게 쓰일수 있을지 프로젝트를 통해 살펴 봅시다.



이름하여 비밀 노크 감지 도어 락 프로젝트인데요 , 노크의 패턴을 만들어 조건이 충족될때 문을 열어주는 장치로
문을 열고 닫는게 지겨우신 분들은 따라해보세요.

그에 앞서 기본적인 노크 센서 사용법부터 익혀 봅시다.


 

 

미리보기 동영상

 

 

 

 

부품목록

본 학습에는 총 4종류의 부품이 필요합니다.

NO    

부품명                                                                         

수량     

상세설명

1

아두이노 우노

1

아두이노

2

노크(Knock) 센서

1

Brand: Keyes

- Knock sensor  module

- 구동 전압: 3~5V

3

점퍼 케이블

3

저항

4

브레드보드

1

브레드보드

 

부품명 브레드보드 아두이노 UNO 점퍼케이블 노크 센서
파트 X 1  X 1  X 3 X 1

 

 

하드웨어 Making

 

회로도

브레드보드 레이아웃

 

 

 

소프트웨어 Coding

아래의 코드를 아두이노에 업로드 합니다.
 

/* 출처 : www.kocoafab.cc */
int Led = 13;// 13번핀에 LED를 사용합니다.
int Shock = 3;// 3번핀에 진동센서를 사용합니다.
int val;// val은 입력핀에 값을 저장하기 위해 사용합니다.

void setup()
{
pinMode(Led,OUTPUT);// LED를 출력으로 설정합니다.
pinMode(Shock,INPUT);// 진동센서를 입력으로 설정합니다.
}
void loop()
{
val = digitalRead(Shock);// 진동센서의 값을 읽어들입니다.
if(val == HIGH)// 만약 센서 값이 High 라면
{
digitalWrite(Led,LOW); //LED가 꺼져있고
}
else
{
digitalWrite(Led,HIGH);// 그 반대의 경우 LED를 켭니다.
}
}

소프트웨어 & 하드웨어 설명

int Shock = 3;// 3번핀에 진동센서를 사용합니다.
int val;// val은 입력핀에 값을 저장하기 위해 사용합니다.

 
본 예제에서는 아날로그 입력이 아닌 디지털 입력값으로 센서값을 받았기 때문에 노크센서를 디지털 3번핀에 연결하였습니다.
 

void setup()
{
pinMode(Led,OUTPUT);// LED를 출력으로 설정합니다.
pinMode(Shock,INPUT);// 진동센서를 입력으로 설정합니다.
}
void loop()
{
val = digitalRead(Shock);// 진동센서의 값을 읽어들입니다.
if(val == HIGH);// 만약 센서 값이 High 라면
{
digitalWrite(Led,LOW); //LED가 꺼져있고
}
else
{
digitalWrite(Led,HIGH);// 그 반대의 경우 LED를 켭니다.
}
}


진동센서를 입력, LED를 출력으로 설정하여 진동 센서의 충격을 줍니다.
센서 안에 금속이 흔들림을 감지하여, HIGH상태가 될때(아무런 진동을 감지 하지 않을때, LED를 끄고
그 반대의 경우, LED를 켜게 됩니다.

 

 

 

kocoafabeditor

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

노크센서, 아두이노

송덕원 2015-10-17 01:42:21

노크 센서라는 것도 있군요. 처음 알았네요. 좋은 정보 감사합니다.