진동으로 인해 피해를 입는 중요한 기계 나 값 비싼 장비가 여러 개 있습니다. 이 경우 기계 또는 장비가 진동을 생성하는지 여부를 확인하기 위해 진동 센서가 필요합니다. 지속적으로 진동하는 물체를 식별하는 것은 적절한 센서를 사용하여 진동을 감지하는 경우 까다로운 작업이 아닙니다. 진동 센서 에는 여러 유형 이 있습니다.가속도 또는 속도를 감지하여 진동을 감지 할 수 있으며 우수한 결과를 제공 할 수 있습니다. 그러나 이러한 센서는 가속도계를 사용하는 경우 너무 비쌉니다. 가속도계는 매우 민감하며 지진 감지기 회로를 만드는 데 사용할 수 있습니다. 그러나 진동 만 감지하는 데 사용할 수있는 저렴한 전용 센서가 거의 없습니다. 이러한 진동 센서 중 하나는 Arduino Uno와 인터페이스 할 SW-420입니다.
따라서이 프로젝트에서 기본 진동 센서 모듈은 널리 사용되는 Arduino UNO 와 인터페이스되며 진동 센서가 진동이나 저크를 감지 할 때마다 LED가 깜박 이기 시작합니다.
진동 센서 모듈 SW-420
3.3V에서 5V까지 작동 할 수 있는 SW-420 진동 모듈 입니다. 센서는 LM393 비교기를 사용하여 임계점 이상의 진동을 감지하고 디지털 데이터 (Logic Low 또는 Logic High, 0 또는 1)를 제공합니다. 정상 작동 중에 센서는 Logic Low를 제공하고 진동이 감지되면 센서는 Logic High를 제공합니다. 모듈에는 3 개의 주변 장치를 사용할 수 있습니다. 두 개의 LED, 하나는 전원 상태 용이고 다른 하나는 센서 출력용입니다. 또한 진동의 임계점을 제어하는 데 사용할 수있는 전위차계를 사용할 수 있습니다. 이 프로젝트에서는 5V를 사용하여 모듈에 전원을 공급합니다.
ATmega8 마이크로 컨트롤러를 사용하는 도난 방지 경보 시스템에서 동일한 센서를 사용했습니다. 또한 틸트 센서를 사용하여 갑작스러운 사고를 감지 할 수 있습니다.
필요한 구성 요소
- Arduino UNO
- SW-420 진동 센서 모듈
- 5mm LED (모든 색상)
- 점퍼 와이어 (후크 업 와이어)
- 프로그램 업로드 용 USB 케이블
Arduino 진동 센서 회로도
Arduino uno와 진동 센서 를 연결 하는 회로도 는 다음과 같습니다.
LED는 D13 핀에 연결됩니다. 모듈은 Arduino에서 사용 가능한 5V 핀을 사용하여 전원이 공급됩니다. 접지 및 5V 핀은 Arduino에 전원을 공급하는 데 사용되는 반면 A5 핀은 진동 센서에서 데이터를 가져 오는 데 사용됩니다.
SW-420 모듈과 LED가 Arduino Uno와 연결된 회로가 구성됩니다.
Arduino Uno 진동 센서 프로그래밍
Arduino UNO를 진동 센서 인터페이스로 프로그래밍하는 것은 결론을 내리기 위해 입력 핀만 모니터링해야하므로 많은 노력이 필요하지 않습니다. 전체 코드 및 작업 비디오는 끝 부분에 부착되어있다.
처음에는 헤더 파일이 포함되어 있습니다. 이 튜토리얼은 Arduino 확장이있는 Eclipse IDE로 작성되었으므로 arduino 헤더가 포함되어 있습니다. 이 스케치는 Arduino IDE에서도 작동하며 Arduino IDE에서이 스케치를 사용하는 동안 헤더를 포함 할 필요가 없습니다.
#포함
여기서 두 개의 매크로가 ON 및 OFF에 대해 정의됩니다.
# 정의 ON 1 # 정의 OFF 0
아래 설명은 LED와 진동 센서를 통합하는 데 사용됩니다. 진동 센서는 핀 A5에 연결됩니다. 보드에서 핀 13에 직접 연결되는 내장 LED도 사용됩니다. 5mm LED는 핀 13에도 연결됩니다.
/ * * 핀 설명 * / int vibration_Sensor = A5; int LED = 13;
센서가 출력을 표시하고 이전 출력이 저장되는 위치에 두 개의 정수가 선언되어 진동이 발생하는지 여부를 감지하는 데 추가로 사용됩니다.
/ * * 프로그램 흐름 설명 * / int present_condition = 0; int previous_condition = 0;
주변 연결로 선언 된 동일한 핀, 핀의 방향이 구성됩니다. 센서 핀은 입력으로, LED 핀은 출력으로 사용합니다.
/ * * 핀 모드 설정 * / void setup () { pinMode (vibration_Sensor, INPUT); pinMode (LED, OUTPUT); }
LED가 두 번 깜박이도록 하나의 기능이 작성되었습니다. 지연 값을 추적하여 지연을 구성 할 수 있습니다.
void led_blink (void) { digitalWrite (LED, ON); 지연 (250); digitalWrite (LED, 꺼짐); 지연 (250); digitalWrite (LED, ON); 지연 (250); digitalWrite (LED, 꺼짐); 지연 (250); }
루프 기능에서는 현재와 이전 상태를 비교 합니다. 이 둘이 같지 않으면 둘 다 같을 때까지 LED가 깜박이기 시작합니다. 시작시 두 변수는 0을 유지하고 프로그램 시작 중에는 LED가 꺼진 상태로 유지됩니다. 약간의 virbraion이 있으면 present_condition 변수가 1이되고 LED가 깜박이기 시작합니다. 그리고 다시 진동이 멈 추면 두 값 모두 0이되고 LED가 깜박임을 멈 춥니 다.
void loop () { 이전 _ 조건 = 현재 _ 조건; present_condition = digitalRead (A5); // Arduino의 A5 핀에서 디지털 데이터를 읽습니다. if (이전 _ 상태! = 현재 _ 상태) { led_blink (); } else { digitalWrite (LED, OFF); } }
이것으로 진동 센서로 arduino UNO 프로그래밍이 완료됩니다. 마지막 단계는 전체 설정을 테스트하는 것입니다.
Arduino 진동 센서 회로 테스트
회로에는 추가 브레드 보드가 필요하지 않습니다. Arduino UNO 보드를 사용하여 간단히 테스트 할 수 있습니다. LED는 진동 센서에 부딪 히거나 상태가 변경 될 때 모니터링됩니다. 진동이있을 때 Arduino UNO의 13 번 핀에 연결된 LED가 깜박입니다. 진동 센서가 작동하지 않으면 연결 및 전원을 확인하십시오. 센서와 마이크로 컨트롤러 사이의 느슨한 연결을 피하십시오.
이것이 진동 센서가 Arduino UNO와 연결되는 방법입니다. 의심이나 제안이있는 경우 포럼을 통해 당사에 연락하거나 아래에 의견을 남길 수도 있습니다.