IT/아두이노

[아두이노기초-3] 적외선 센서로 움직임 감지하기

크몽 '경매하는 개발자' 님의 경매/부동산/IT/사업 채널 2021. 12. 26. 11:25
반응형

[아두이노기초-3] 적외선 센서로 움직임 감지하기

반응형

 


◆ 이번 시간에는 적외선 센서로 빛의 변화에 따른 움직임을 감지하여 LED 전구를 깜빡이게 하는 방법을 알아보자

◆ 실생활 사용 예 : 아파트 복도등

 

<적외선 모션감지센서>

- 적외선 모션감지센서 하단 핀은 각각 (+)전원/OUTPUT단자/(-)전원이다.

- 상단에 왼쪽은 시간조절(딜레이)이고, 오른쪽은 감도조절이다.

   (╋ 레버를 시계방향으로 돌릴수록 길게 지속 / 민감해짐)

- 5V~20V 전원을 먹기때문에 5V파워에 연결해줘야 한다. (3.3V 연결 시 작동 X)

- 외부 캡은 감지 각도를 넓혀준다.

 

<회로도>

- 입력센서인 적외선센서는 (+)5V 전원 / 2번 핀 / (-)GND에 꽂아준다.

- 출력센서인 LED 전구는 (+)3번 핀 / (-)GND에 꽂아준다.

반응형

 

 

<소스코드>

int val = 0;

void setup() {
  // put your setup code here, to run once:
  pinMode(2,INPUT);   //2번핀에 입력모드 설정(적외선센서)
  pinMode(3,OUTPUT);  //3번핀에 출력모드 설정(LED전구)
  Serial.begin(9600); //직렬통신(시리얼통신)속도 9600설정
}

void loop() {
  // put your main code here, to run repeatedly:
 val = digitalRead(2);  //val 변수에 2번핀 값(1또는0) 대입
 if(val == HIGH){       //val = 1 일때
  digitalWrite(3,HIGH); //3번핀(LED전구)에 HIGH 적용
 }
 else{                  //val = 0 일때
  digitalWrite(3,LOW);  //3번핀(LED전구)에 LOW 적용
 }
 Serial.println(val);   //시리얼모니터에 val 출력
}
반응형

 

◆ 코드 설명

 pinMode(2, INPUT) : 보드에서 사용할 디지털핀의 모드(입력, 출력) 설정.

                                   2번 핀을 입력을 위한 모드로 설정 (적외선 센서)

 pinMode(3, OUTPUT) : 보드에서 사용할 디지털핀의 모드(입력, 출력) 설정.

                                   3번 핀을 출력을 위한 모드로 설정 (LED 전구)

 Serial.begin(9600) : 시리얼 통신의 통신속도는 300~115200으로 설정가능하지만, 보통 9600으로 설정함

 digitalRead(2) : 입력모드인 2번 핀에서 나오는 HIGH/LOW(1 또는 0)의 값을 변수 val에 저장

 digitalWrite(3, HIGH) : 3번 핀에 HIGH(1, ON)값을 부여 (전구 켜짐)

 digitalWrite(3, LOW) : 3번 핀에 LOW(0, OFF)값을 부여 (전구 꺼짐)

 

 

 

반응형