[34장] 아두이노 진동감지센서 소개와 코드
![[34장] 아두이노 진동감지센서 소개와 코드 [34장] 아두이노 진동감지센서 소개와 코드](https://images.pexels.com/photos/6252095/pexels-photo-6252095.jpeg)
아두이노 진동감지센서 소개와 코드
서론
안녕하세요, IT Insight 블로거 ‘IT Insight’입니다. 오늘은 아두이노의 진동감지센서에 대해 소개하고, 해당 센서를 이용하여 진동을 감지하는 코드를 작성하는 방법에 대해 알아보겠습니다.
진동감지센서란?
아두이노와 함께 사용되는 진동 감지 센서는 물리적 진동을 감지하고, 이를 전기 신호로 변환하는 장치입니다. 이 센서는 주로 충격이나 움직임을 감지하는 데 사용됩니다. 예를 들어, 물리적인 진동이 발생하면 센서가 이를 감지하고 아두이노에 신호를 보내어 특정한 반응을 일으킬 수 있습니다.
진동 감지 센서의 기본 원리
진동 감지 센서는 내부에 작은 금속 볼이나 스프링과 같은 움직이는 부품을 포함하고 있습니다. 이 부품들은 센서가 진동을 감지할 때 움직여 전기적 연결이 단시간 끊기거나 연결되는 현상을 일으킵니다. 이러한 변화를 아두이노가 읽어 들여 진동이 발생했음을 감지합니다.
아두이노와 진동 감지 센서 연결 방법
일반적으로 진동 감지 센서에는 세 개의 핀이 있습니다: VCC, GND, 그리고 DO (Digital Output). 아두이노 보드에 센서를 연결하는 방법은 다음과 같습니다:
- VCC: 센서의 VCC 핀을 아두이노의 5V 또는 3.3V에 연결합니다.
- GND: 센서의 GND 핀을 아두이노의 GND에 연결합니다.
- DO: 센서의 디지털 출력(DO) 핀을 아두이노의 디지털 입력 핀에 연결합니다 (예: D2).
아두이노 코드 예시
진동 감지 센서를 사용하기 위한 아두이노 코드는 다음과 같습니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
const int sensorPin = 2; // 센서 연결 핀 const int ledPin = 13; // LED 연결 핀 void setup() { pinMode(sensorPin, INPUT); // 센서 핀을 입력으로 설정 pinMode(ledPin, OUTPUT); // LED 핀을 출력으로 설정 Serial.begin(9600); // 시리얼 통신 시작 } void loop() { int sensorValue = digitalRead(sensorPin); // 센서로부터 데이터 읽기 if (sensorValue == HIGH) { // 진동이 감지되면 digitalWrite(ledPin, HIGH); // LED 켜기 Serial.println("Vibration detected!"); // 시리얼 모니터에 메시지 출력 } else { digitalWrite(ledPin, LOW); // LED 끄기 } delay(100); // 100ms 대기 } |
이 코드는 진동 감지 센서가 진동을 감지할 때마다 LED를 켜고 시리얼 모니터에 메시지를 출력합니다. sensorPin
변수는 센서가 연결된 아두이노의 핀 번호를, ledPin
변수는 LED가 연결된 핀 번호를 나타냅니다. setup()
함수에서는 이 핀들을 각각 입력 및 출력으로 설정하고, loop()
함수에서는 센서의 상태를 읽고 LED를 제어합니다.
이 코드는 기본적인 예시이며, 실제 사용 시에는 감지하려는 진동의 특성에 따라 코드를 조정할 수 있습니다. 예를 들어, 진동의 강도나 지속 시간을 측정하기 위해 알고리즘을 추가할 수 있습니다.
아두이노 진동감지센서 연결하기
아두이노 진동감지센서를 연결하기 위해서는 다음과 같은 순서로 연결해야 합니다.
-
아두이노 보드에 진동감지센서를 연결합니다. 진동감지센서의 VCC 핀을 5V 핀에, GND 핀을 GND 핀에 연결합니다. 그리고 OUT 핀을 아두이노의 디지털 핀에 연결합니다.
-
아두이노 IDE를 실행하고, 새로운 스케치를 생성합니다.
-
다음 코드를 작성하여 아두이노와 진동감지센서를 연결합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
const int vibrationPin = 2; // 진동감지센서의 OUT 핀은 아두이노 디지털 핀 2에 연결됨 void setup() { pinMode(vibrationPin, INPUT); // 진동감지센서의 OUT 핀을 입력으로 설정 Serial.begin(9600); // 시리얼 통신 시작 } void loop() { int vibrationValue = digitalRead(vibrationPin); // 진동감지센서의 상태를 읽어옴 if (vibrationValue == HIGH) { Serial.println(Vibration Detected!); // 진동이 감지된 경우 시리얼 모니터에 메시지 출력 } delay(100); // 0.1초 딜레이 } |
- 코드를 업로드하고 아두이노와 진동감지센서가 제대로 작동하는지 확인합니다.
마무리
이렇게 진동감지센서를 사용하여 아두이노에서 진동을 감지하는 코드를 작성해보았습니다. 진동감지센서는 다양한 애플리케이션에서 활용될 수 있으며, 예를 들어 도어벨, 보안 시스템, 홈 자동화 등에 사용될 수 있습니다. 추가적인 정보나 질문이 있으시다면 언제든지 댓글을 남겨주세요. 감사합니다.