반응형

【 아두이노 센서#33】 인체감지 센서( HC-SR501) Sensor 다루기 



  오늘은 인체를 감지해서 신호를 내보낼 수 있는 센서에 대해 다루려고 한다.

모델 번호가 HC-SR501 인 센서는 아파트나 회사등 각종 건물 천정에 많이 부착되어 있어서 주변에서 많이 볼 수 있는 센서이기도 하다. 

 아파트 현관문이나 복도, 베란다 등에 사람이 감지되면 전등을 잠시 동안 켜주거나, 문이 닫힌 사무실 내의 움직임을 감지하는 방법용 등으로 많이 사용된다. 




▶ 선수 학습 :

 없음. 


▶ 충격 감지 센서 사양 및 동작 특성





▶ 실습 목표 :  


1. 인체 감지 센서의 작동원리에 대해 이해 할 수 있다. 


2. 센서에 부착된 가변저항과 점퍼선의 기능에 대해 이해 할 수 있다. 



▶ 실습 회로도면 :
  (이미지 클릭하면 확대 가능)







▶ 실습 절차  : 


1.    위 회로 연결도를 참고하여 부품들을 연결한다
2.    센서에 있는 두 개의 가변저항을 조절하여, 센싱되는 민감도와 출력값의 출력 시간을 조절 해본다.   
3.   트리거 모드 점퍼를 변경해서 실험해 본다.
( - Single Trig 모드 : 센서 출력이 HIGH가 되고, Delay Time이 끝나면 자동적으로 LOW가 되는 모드.
 - Repeat Trig 모드 : 센서 출력이 HIGH가 되고 Delay Time이 끝나도 만약 계속 인체 신호가 감지 된다면 LOW를 출력하지 않고 계속 HIGH를 출력하는 모드.)  

▶ 프로그램 코드 및 설명 : 

/* 인체 감지 센서(Shock Sensor) 실험   */


int Led = 8;

int SensorOut = 7;

int val;



void setup( )  {

  pinMode(Led, OUTPUT);

  pinMode(SensorOut, INPUT);

}


void loop() {


val = digitalRead(SensorOut);  // 적외선 센서값 읽어 저장

  if (val == HIGH)  {

    digitalWrite(Led, HIGH);

  }  

  else  {

    digitalWrite(Led, LOW);

  }

  delay(100);  

}



▶ 실행영상 :  

(전체화면 보기로 보세요)





▶ 아두이노 파일다운 :

HC-SR501.zip



반응형
반응형

【 아두이노 센서#31】 쇼크 센서( 충격감지) Shock Sensor 다루기 

  오늘은 쇼크센서라고 하는 충격 감지 센서에 대해 다루어 보려고 한다. 

틸트센서는 정해놓은 위치에 기울기가 바뀌면 스위치 기능 처럼 On / Off 할 수 있었다면, 쇼크센서는 외부 충격(흔들림, 떨어뜨림, 부딪힘)에 모두 반응 하는 센서이다.  다만, 충격의 강도나 크기 자체를 특정 할 수 없기 때문에 실험을 통해 반응하는 정도를 확인해보고, 필요하다면 다른 센서와 함께 보완적으로 사용하면 좋을 것이다.



▶ 선수 학습 :

 없음. 


▶ 충격 감지 센서 사양 및 동작 특성



▶ 실습 목표 :  


1. 외부 충격에 따라 센서가 반응 하는 정도를 살펴 볼 수 있다. 


2. 흔듬, 충격, 기울임 등 센서가 반을 할 수 있는 다양한 형태에 대해 실험 해 볼 수 있다. 



▶ 실습 회로도면 :
  (이미지 클릭하면 확대 가능)




▶ 실습 절차  : 


1.    위 회로 연결도를 참고하여 부품들을 연결한다
2.    외부 충격이나 흔듬, 기울이기 등 다양한 형태로 센서의 반응을 살펴 본다. 
3.   외부 충격이 있을 때 LED를 켜는 동작으로 프로그래밍 한다. (현재는 LED를 사용하지만 릴레이 등을 연결하여 더 큰 부품이나 회로를 제어 할 수 있다는 것을 이해한다.)

▶ 프로그램 코드 및 설명 : 

/* 충격 센서(Shock Sensor)의 동작을 LED로 확인해보기   */


int Shock = 3;

int ShockLED = 7;


void setup( )  {

  pinMode(Shock, INPUT);

  pinMode(ShockLED, OUTPUT);

}


void loop() {


  if (digitalRead(Shock) == HIGH)    {

      digitalWrite(ShockLED, HIGH);

delay(30);

  }


  else   {

      digitalWrite(ShockLED, LOW);      

      delay(100);  

  }

}



▶ 실행영상 :  

(전체화면 보기로 보세요)




▶ 아두이노 파일다운 :

ShockDetected.ino

반응형