진동 감지 센서(SW-420): 두 판 사이의 차이

아두위키 : Arduwiki
잔글 (→‎사양)
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);
    }
}


구매 링크

공집사몰