진동 감지 센서(SW-420): 두 판 사이의 차이
잔글 (→사양) |
|||
70번째 줄: | 70번째 줄: | ||
=== 1. 진동을 감지하여 시리얼 모니터로 출력 === | === 1. 진동을 감지하여 시리얼 모니터로 출력 === | ||
<syntaxhighlight lang="c++" line="1"> | |||
const int sensorPin = 2; // SW-420 OUT 핀 연결 | |||
int sensorValue = 0; | |||
void setup() { | |||
Serial.begin(9600); | |||
pinMode(sensorPin, INPUT); | |||
} | |||
void loop() { | |||
sensorValue = digitalRead(sensorPin); | |||
if (sensorValue == HIGH) { | |||
Serial.println("진동 감지!"); | |||
} else { | |||
Serial.println("진동 없음."); | |||
} | |||
delay(500); | |||
} | |||
</syntaxhighlight> | |||
=== 2. LED와 함께 활용 === | === 2. LED와 함께 활용 === | ||
<syntaxhighlight lang="c++" line="1"> | |||
const int sensorPin = 2; // SW-420 OUT 핀 연결 | |||
const int ledPin = 13; // 내장 LED 핀 | |||
int sensorValue = 0; | |||
void setup() { | |||
Serial.begin(9600); | |||
pinMode(sensorPin, INPUT); | |||
pinMode(ledPin, OUTPUT); | |||
} | |||
void loop() { | |||
sensorValue = digitalRead(sensorPin); | |||
if (sensorValue == HIGH) { | |||
Serial.println("진동 감지!"); | |||
digitalWrite(ledPin, HIGH); // LED 켜기 | |||
} else { | |||
Serial.println("진동 없음."); | |||
digitalWrite(ledPin, LOW); // LED 끄기 | |||
} | |||
delay(500); | |||
} | |||
</syntaxhighlight> | |||
=== 3. 진동 감지 카운트 === | === 3. 진동 감지 카운트 === | ||
<syntaxhighlight lang="c++" line="1"> | |||
const int sensorPin = 2; // SW-420 OUT 핀 연결 | |||
int sensorValue = 0; | |||
int count = 0; | |||
void setup() { | |||
Serial.begin(9600); | |||
pinMode(sensorPin, INPUT); | |||
} | |||
void loop() { | |||
sensorValue = digitalRead(sensorPin); | |||
if (sensorValue == HIGH) { | |||
count++; | |||
Serial.print("진동 감지! 카운트: "); | |||
Serial.println(count); | |||
} | |||
} | |||
</syntaxhighlight> | |||
== '''구매 링크''' == | == '''구매 링크''' == | ||
[https://gongzipsa.com/shop/1715255545 공집사몰] | [https://gongzipsa.com/shop/1715255545 공집사몰] |
2024년 7월 26일 (금) 19:29 판
seo
개요
SW-420 센서는 진동 감지 센서로, 주로 진동이나 충격을 감지하는 데 사용됩니다. 이 센서는 아두이노와 같은 마이크로컨트롤러와 함께 사용하여 다양한 프로젝트에 응용할 수 있습니다.
1. 진동 감지 구조
내부에 금속 볼이 포함된 기계적 스위치를 사용합니다. 금속 볼은 센서 내부의 두 전극 사이에 위치해 있으며, 외부에서 진동이나 충격이 가해지면 볼이 이동하여 전극 간의 접촉을 형성하거나 끊습니다.
2. 작동 원리
- 정상 상태: 센서가 안정된 상태일 때, 금속 볼은 전극 사이에 접촉하지 않아 출력 신호는 LOW(0V) 상태입니다.
- 진동 감지: 외부에서 진동이 발생하면 금속 볼이 이동하여 전극과 접촉하게 됩니다. 이때 출력 신호는 HIGH(5V) 상태로 변하게 됩니다. 이 신호는 아두이노와 같은 마이크로컨트롤러에 전달되어 진동이 감지되었음을 알립니다.
3. 민감도 조정
SW-420 센서에는 민감도를 조절할 수 있는 가변 저항이 내장되어 있습니다. 이 저항을 조정함으로써 센서가 감지하는 진동의 강도를 조절할 수 있습니다. 즉, 민감도를 높이면 약한 진동도 감지할 수 있고, 민감도를 낮추면 강한 진동만 감지하게 됩니다.
사양
- 전원 공급: DC 3.3V ~ 5V
- 출력 신호: 디지털 신호 (HIGH/LOW)
SW-420 센서는 다양한 환경에서 진동을 감지하기 위해 설계된 센서로, 다음과 같은 주요 스펙을 가지고 있습니다.
1. 전원 공급
- 전압 범위: DC 3.3V ~ 5V
- 전류 소모: 약 20mA (사용 상황에 따라 다를 수 있음)
2. 출력 신호
- 신호 유형: 디지털 출력 (HIGH/LOW)
- 출력 전압: HIGH 상태에서 약 5V, LOW 상태에서 0V
3. 민감도 조절
- 조정 방식: 내장된 가변 저항을 통해 민감도 조정 가능
- 민감도 범위: 조정된 저항 값에 따라 감지할 수 있는 진동의 강도 조절
4. 작동 범위
- 작동 온도: -10°C ~ 50°C
- 작동 습도: 10% ~ 90% (비응축 상태)
5. 물리적 특성
- 크기: 약 32mm x 20mm (모델에 따라 다를 수 있음)
- 무게: 약 10g
6. 응용 분야
- 보안 시스템: 창문이나 문에 부착하여 침입 감지
- 로봇 공학: 충격을 감지하여 로봇의 경로 수정
- 자동화 시스템: 진동 감지에 기반한 자동화 프로세스 구현
7. 추가 기능
- 디바운싱: 진동 감지 시 발생할 수 있는 잘못된 신호를 방지하기 위한 디바운싱 기능
- 내구성: 일반적인 진동 감지 용도로 설계되어 내구성이 뛰어남
SW-420 센서는 이러한 스펙을 바탕으로 다양한 응용 분야에서 유용하게 사용될 수 있습니다. 간단한 연결과 사용법 덕분에 아두이노와 함께 프로젝트를 진행하는 데 적합한 센서입니다.
활용 예제
회로 구성
1. 진동을 감지하여 시리얼 모니터로 출력
const int sensorPin = 2; // SW-420 OUT 핀 연결
int sensorValue = 0;
void setup() {
Serial.begin(9600);
pinMode(sensorPin, INPUT);
}
void loop() {
sensorValue = digitalRead(sensorPin);
if (sensorValue == HIGH) {
Serial.println("진동 감지!");
} else {
Serial.println("진동 없음.");
}
delay(500);
}
2. LED와 함께 활용
const int sensorPin = 2; // SW-420 OUT 핀 연결
const int ledPin = 13; // 내장 LED 핀
int sensorValue = 0;
void setup() {
Serial.begin(9600);
pinMode(sensorPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
sensorValue = digitalRead(sensorPin);
if (sensorValue == HIGH) {
Serial.println("진동 감지!");
digitalWrite(ledPin, HIGH); // LED 켜기
} else {
Serial.println("진동 없음.");
digitalWrite(ledPin, LOW); // LED 끄기
}
delay(500);
}
3. 진동 감지 카운트
const int sensorPin = 2; // SW-420 OUT 핀 연결
int sensorValue = 0;
int count = 0;
void setup() {
Serial.begin(9600);
pinMode(sensorPin, INPUT);
}
void loop() {
sensorValue = digitalRead(sensorPin);
if (sensorValue == HIGH) {
count++;
Serial.print("진동 감지! 카운트: ");
Serial.println(count);
}
}