HC-SR505 모션 센서 모듈과 릴레이를 위한 Arduino 코드 및 비디오
이 튜토리얼에서는 HC-SR505 모션 센서와 릴레이 모듈을 사용하여 모션 감지 시스템을 구축합니다. 이 설정을 통해 모션이 감지되면 조명이나 부저와 같은 장치를 켤 수 있습니다. 릴레이는 고전압 장치를 안전하게 제어하는 스위치 역할을 합니다. 이 가이드가 끝나면 움직임 감지에 따라 다양한 가전제품을 활성화할 수 있는 작동하는 모션 센서 설정을 갖추게 됩니다. 더 명확한 이해를 위해 관련 비디오(비디오 0:00 부분)를 확인하세요.

하드웨어 설명
이 프로젝트의 주요 구성 요소는 HC-SR505 모션 센서, 릴레이 모듈 및 Arduino 보드입니다. HC-SR505는 적외선 복사의 변화를 감지하여 움직임을 감지하는 수동 적외선(PIR) 센서입니다. 시야 내 물체에서 방출되는 열을 측정하여 작동합니다. 움직이는 물체가 감지되면 센서는 Arduino에 신호를 보냅니다.
릴레이 모듈은 전구와 같은 고전압 장치를 제어하는 데 사용됩니다. 전기적으로 작동하는 스위치 역할을 하여 Arduino가 장치를 안전하게 켜거나 끌 수 있게 합니다. 릴레이에는 일반적으로 열림(NO)과 일반적으로 닫힘(NC)의 두 가지 주요 구성이 있으며, 이는 릴레이가 활성화되지 않았을 때의 기본 상태를 결정합니다.
데이터시트 세부 정보
| 제조업체 | HC-SR505 |
|---|---|
| 부품 번호 | HC-SR505 |
| 로직/IO 전압 | 3.3V - 20V |
| 공급 전압 | 5V |
| 출력 전류(채널당) | 20 mA |
| 피크 전류(채널당) | 100 mA |
| PWM 주파수 가이드 | 해당 없음 |
| 입력 로직 임계값 | 0.3V(낮음) / 2.5V(높음) |
| 전압 강하 / RDS(on) / 포화 | 0.2V |
| 열 제한 | +70 °C |
| 패키지 | 모듈 |
| 참고 사항 / 변형 | 소형 폼 팩터; 저전력 소비 |
- 고전류 부하에 대해 적절한 방열을 보장하세요.
- 안정적인 전원 공급을 위해 디커플링 커패시터를 사용하세요.
- 고전압 연결에 주의하고 안전을 보장하세요.
- 릴레이에 연결하기 전에 간단한 출력으로 센서를 테스트하세요.
- 최적의 감지를 위해 PIR 센서의 방향을 확인하세요.
배선 지침

HC-SR505 모션 센서를 배선하려면 먼저 전원 핀(+)을 Arduino의 5V 출력에 연결하세요. 다음으로 접지 핀(-)을 Arduino의 접지 핀 중 하나에 연결하세요. 신호 핀(중간 핀)은 Arduino의 디지털 핀 2에 연결해야 합니다.
릴레이 모듈의 경우 VCC 핀을 Arduino의 5V 출력에 연결하고 접지 핀을 Arduino의 접지에 연결하세요. 릴레이의 입력 핀은 Arduino의 디지털 핀 9에 연결해야 합니다. 마지막으로 부저의 양극 단자를 디지털 핀 8에 연결하고 음극 단자를 접지에 연결하세요. 장치를 제어하려면 릴레이의 공통 및 일반적으로 열림 핀을 적절히 연결해야 합니다.
코드 예제 및 설명
이 프로젝트의 코드는 센서, 부저 및 릴레이용 핀을 초기화합니다. digitalRead() 함수를 사용하여 모션을 확인하고 그에 따라 응답합니다. 아래는 설정 함수의 발췌문입니다:
void setup() {
Serial.begin(9600); // 시리얼 모니터 설정
pinMode(PIR, INPUT_PULLUP); // 센서용 입력 핀으로 정의
pinMode(BUZZER, OUTPUT); // 부저용 출력 핀으로 정의
pinMode(RELAY, OUTPUT); // 릴레이용 출력 핀으로 정의
}
이 발췌문에서 핀은 입력 또는 출력 모드로 설정됩니다. Serial.begin(9600)은 디버깅을 위한 시리얼 통신을 초기화합니다.
메인 루프는 모션을 확인하고 모션이 감지되면 부저와 릴레이를 활성화합니다. 다음은 루프 함수의 핵심 발췌문입니다:

void loop() {
int motion = digitalRead(PIR); // 센서 읽기
if(motion) {
Serial.println("모션 감지됨");
digitalWrite(BUZZER, HIGH); // 부저 켜기
digitalWrite(RELAY, LOW); // 릴레이 켜기
} else {
Serial.println("===움직임 없음");
digitalWrite(BUZZER, LOW); // 부저 끄기 유지
digitalWrite(RELAY, HIGH); // 릴레이 끄기
}
delay(500);
}
이 발췌문은 PIR 센서의 상태를 읽고 감지된 모션에 따라 부저와 릴레이를 활성화하거나 비활성화합니다. 500밀리초의 지연은 루프가 합리적인 간격으로 센서를 확인하도록 보장합니다.
시연 / 기대 효과
모션이 감지되면 릴레이에 연결된 조명이 켜지고 부저가 울립니다. 모션이 감지되지 않으면 릴레이가 조명을 끄고 부저는 조용합니다. HC-SR505에는 모션 감지 후 출력을 짧은 시간(최대 8초) 동안 활성 상태로 유지하는 내장 지연이 있으며, 이는 조정할 수 없습니다(비디오 5:30 부분).
비디오 타임스탬프
- 00:00 – 프로젝트 소개
- 01:30 – 구성 요소 설명
- 03:15 – 배선 지침
- 05:30 – 코드 설명
- 07:00 – 설정 시연
/*
* This is the Arduino code for HC-SR501 Motion Sensor
* to detect motion of human or objects using Arduino for robotic car and other applications
* Watch HC-SR505 video https://youtu.be/qhThpxiXubI
*
// Written by Ahmad S. for Robojax.com on
// February 10, 2018 at 11:41 in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purposes only.
*
*/
#define PIR 2 // define pin 2 for sensor
#define BUZZER 8 // define pin 8 as for buzzer
#define RELAY 9 // define pin 9 as for relay
void setup() {
// HC-SR505 Motion Sensor Code by Robojax.com 20180210
Serial.begin(9600);// setup Serial Monitor to display information
pinMode(PIR, INPUT_PULLUP);// define pin as Input sensor
pinMode(BUZZER, OUTPUT);// define pin as OUTPUT for buzzer or LED
pinMode(RELAY, OUTPUT);// define pin as OUTPUT for relay
}
void loop() {
// HC-SR505 Motion Sensor Code by Robojax.com 20180210
int motion =digitalRead(PIR);// read the sensor
if(motion){
Serial.println("Motion detected");
digitalWrite(BUZZER,HIGH);// turn the buzzer ON
digitalWrite(RELAY,LOW);// turn the relay ON
}else{
Serial.println("===nothing moves");
digitalWrite(BUZZER,LOW);// keep the buzzer OFF
digitalWrite(RELAY,HIGH);// turn the relay OFF
}
delay(500);
// HC-SR505 Motion Sensor Code by Robojax.com 20180210
}
필요할 수 있는 것들
-
아마존Buy relay shield from Amazonamzn.to
-
아마존
-
알리익스프레스Buy 5V/12V 1, 2, 4, 6, or 8-channel relay modules.click.aliexpress.com
자원 및 참고자료
아직 자원이 없습니다.
파일📁
데이터시트 (pdf)
-
robojax-HC-SR505-manual.pdf
robojax-HC-SR505-manual.pdf0.09 MB
프리징 파일
-
HC-SR501 Body Sensor Module
HC-SR501 Body Sensor Module.fzpz0.01 MB