![]() |
![]() |
SW-420 모션센서 모듈은 진동 및 충격을 감지하는데 사용된다.
사용범위는 경보 시스템, 보안시스템, 진동감지 등 다양한 분야에 사용되며, 흔들림이나 충격이 발생했을 때 진동 신호를 출력한다.
모듈 구성 요소
1. 내부에 작은 스프링이 있어 진동이나 충격이 발생하면 아날로그 신호를 발생시킨다.
2. 모듈에는 LM393 비교기가 있는데 센서에서 발생하는 아날로그 신호를 디지털 신호로 변환한다. 비교기는 설정된 기준 전압과 센서의 출력 전압을 비교하여 진동이 감지되면 디지털 신호를 출력한다.
3. 모듈에 감도조절 가변저항이 있는데 이를 통해 사용자가 감지 기준을 설정할 수 있다.
작동 원리
1. 모듈에 전원이 공급되면 센서가 대기 상태에 들어간다.
2. 진동이나 충격이 발생하면 센서 내부의 스프링이 움직이면서 아날로그 신호를 발생한다.
3. 발생된 아날로그 신호가 LM393 비교기로 전달되며, 비교기는 이 신호를 미리 설정된 기준 전압과 비교하여 디지털 신호로 변환한다.
4. 디지털 출력 핀에서 HIGH 신호가 발생하여 진동이나 충격이 감지되었음을 알려준다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
https://link.coupang.com/a/b2Fgl0
아두이노용 SW-420 모션센서 모듈 - 기타측정도구 | 쿠팡
쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.
www.coupang.com
https://link.coupang.com/a/b2vSOT
ATmega328P 마이크로 컨트롤러가 있는 아두이노 우노 R3 개발 보드 - 액세서리 | 쿠팡
쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.
www.coupang.com
https://link.coupang.com/a/b2vTO0
아두이노 LCD1602 16x2 4핀 디스플레이 모듈/ Arduino LCD1602 Module - 액세서리 | 쿠팡
쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.
www.coupang.com
https://link.coupang.com/a/b2E5Xq
액티브/패시브 버저 모듈 - 기타전기설비부자재 | 쿠팡
쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.
www.coupang.com
실습 예제
다음은 SW-420 모션센서 모듈을 사용한 진동감지기를 만들어 보도록 하겠다.
모션센서 감지기의 동작원리는 아두이노 우노 R3을 사용하여 센서의 진동이나 충격이 가해지면 부저모듈에 경고음이 울리는과 동시에 경고 신호등이 켜지면서 LCD 디스플레이에 진동이 감지되었음을 현시하여 준다.
구성품 :
![]() |
![]() |
![]() |
![]() |
아두이노 우노 R3 | SW-420 모션센서 | LCD1602 | 부저 모듈 |
준비품으로는 아두이노 우노 R3(아두이노는 용도에 맞게 아무거나 사용해도 됨), SW-420모션센서, LCD1602 디스플레이, 부저모듈, led 다이오드, led에 연결할 300옴 저항 등이 필요하다.
준비가 전부 완료되면 아래와 같이 센서, 모듈들을 아두이노에 연결한다.
회로 연결 :
아두이노 우노 R3 | SW-420 모션 센서 | LCD1602 | 부저 모듈 | LED 다이오 |
+5V | V | VCC | ||
GND | G | GND | G | G |
D7 | DO | |||
D13 | +핀 | |||
A4 | SDA | |||
A5 | SCL | |||
D9 | S |
위와 같이 회로를 연결하고 다음과 같이 코딩한다.
코딩에 대해 간단히 설명하자면 모션센서의 디지털 출력핀 DO는 아두이노 D7번으로 설정하였고, LED경고신호는 D13번, 부저모듈의 신호핀은 D9번으로 설정하였다.
다음 센서핀은 입력(INPUT), led핀은 출력(OUTPUT) 으로 설정하였다.
감지 기능은 센서값(sensorValue)가 HIGH일 때 ledPin은 HIGH가 되고, 부저핀(buzzerPin)을 1000으로 설정하여 경고음이 울리게 하였고, 동시에 시리얼 모니터와 LCD1602 디스플레이에 모션감지(Motion Detected)라고 현시되게 하였다.
그리고 센서 값이 LOW인 경우에는 LED 다이오드, 부저모듈은 출력되지 않게 하였고, LCD1602에는 감지없음(No Detected)이라고 출력되게 하였다.
코드 :
#include <LiquidCrystal_I2C.h>
const int sensorPin = 7; // 모션센서의 디지털 핀을 7번 핀에 연결
const int ledPin = 13; // LED를 13번 핀에 연결
const int buzzerPin = 9; // 부저 모듈이 연결된 디지털 핀
LiquidCrystal_I2C lcd (0x27,16,2); // LCD1602 hexa값, 2행 16열 설정
void setup() {
lcd.init(); // LCD 초기화
lcd.backlight(); // LCD 백라이트 켬
pinMode(sensorPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
int sensorValue = digitalRead(sensorPin);
if (sensorValue == HIGH) {
digitalWrite(ledPin, HIGH);
tone(buzzerPin, 1000); // 부저를 1kHz로 설정하여 소리 출력
Serial.println("Motion Detected!");
lcd.setCursor(0,1); // LCD 1행 2열에 출력
lcd.print("Detected!"); // LCD에 센서값 출력
} else {
digitalWrite(ledPin, LOW);
noTone(buzzerPin); // 부저 소리를 끔
lcd.setCursor(0,1); // LCD 1행 2열에 출력
lcd.print("NO Detected!"); // LCD에 센서값 출력
}
lcd.setCursor(0,0); // LCD 1행 1열에 출력
lcd.print("Motion:"); // LCD에 센서값 출력
delay(1000);
lcd.clear(); // LCD 클리어
}
코딩을 전부 작성하고 파일을 아두이노에 업로드 하면 다음과 같이 출력됨을 보게 될것이다.
출력 결과 :
https://www.youtube.com/watch?v=wwHeBGqORLw
참고 사항
감도 조절 : 포텐셔미터를 사용하여 감도를 조절할 수 있다. 민감하게 설정하면 작은 진동도 감지할 수 있으며, 둔감하게 설정하면 큰 진동만 감지할 수 있다.
'아두이노 센서 모듈 활용' 카테고리의 다른 글
0.91Inch 128X32 OLED 디스플레이 모듈 사용법 (0) | 2024.05.28 |
---|---|
비 감지 센서를 사용한 "아두이노 자동 와이퍼" (0) | 2024.05.25 |
아두이노 압전진동 타진센서 측정기 (0) | 2024.05.15 |
탁도 감지센서를 사용한 "아두이노 탁도감지 측정기" (0) | 2024.05.13 |
액체감지 센서를 사용한 아두이노 액체감지 시스템 (0) | 2024.05.12 |