아두이노 - 문 센서 | Arduino - Door Sensor
문 센서는 보안 영역에서 널리 사용됩니다. 이것은 입구(문, 창문 등)를 감지/모니터링하기 위해 사용됩니다. 문 센서는 또한 "출입 센서", "접촉 센서", "창문 센서"로 알려져 있습니다.
준비물
1 | × | Arduino Uno | Amazon | |
1 | × | USB 2.0 cable type A/B | 쿠팡 | Amazon | |
1 | × | Door Sensor | 쿠팡 | Amazon | |
1 | × | (Optional) 9V Power Adapter for Arduino | Amazon | |
1 | × | (Recommended) Screw Terminal Block Shield for Arduino Uno | 쿠팡 | Amazon | |
1 | × | (Recommended) Breadboard Shield For Arduino Uno | 쿠팡 | Amazon | |
1 | × | (Recommended) Enclosure For Arduino Uno | Amazon |
문 센서에 관하여
핀배열
문 센서는 두 가지 구성 요소를 포함합니다:
- 두 핀이 있는 한 개의 리드 스위치
- 한 개의 자석
일반 스위치/버튼과 마찬가지로, 리드 스위치의 두 핀을 구분할 필요가 없습니다.
작동 원리
자석은 문/창문(움직이는 부분)에 부착되어 있고, 리드 스위치는 문틀(고정된 부분)에 부착되어 있습니다. 문이 닫혔을 때 이 두 구성 요소는 접촉 상태입니다.
- 자석이 리드 스위치에 가까울 때, 리드 스위치 회로가 닫힙니다.
- 자석이 리드 스위치에서 멀어질 때, 리드 스위치 회로가 열립니다.
※ NOTE THAT:
리드 스위치 자체는 핀에 LOW나 HIGH를 출력하지 않습니다. 단지 닫히거나 열린 상태일 뿐입니다. 핀을 아두이노에 어떻게 연결하느냐에 따라 핀의 값은 LOW, HIGH, 또는 부동 값(예측할 수 없는 값)이 될 수 있습니다. 부동 값을 피하려면, 아두이노 핀에 풀업 또는 풀다운 저항을 반드시 사용해야 합니다.
리드 스위치의 한 핀을 GND에 연결하고, 리드 스위치의 다른 핀을 풀업 저항(내부 또는 외부)이 있는 아두이노의 입력 핀에 연결하면:
- 자석이 리드 스위치에 가까워지면 아두이노의 입력 핀 값은 LOW입니다.
- 자석이 리드 스위치에서 멀어지면 아두이노의 입력 핀 값은 HIGH입니다.
그래서:
문이 어떤 상태인지 확인하기 위해서는 아두이노 입력 핀의 상태를 확인하면 됩니다:
- 상태가 LOW이면 문이 닫혀 있습니다
- 상태가 HIGH이면 문이 열려 있습니다
문 열림/문 닫힘 이벤트를 감지하려면 아두이노 입력 핀의 상태 변화를 감지할 수 있습니다:
- 상태가 LOW에서 HIGH로 바뀌면 문 열림 이벤트가 감지됩니다
- 상태가 HIGH에서 LOW로 바뀌면 문 닫힘 이벤트가 감지됩니다
선연결
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
문 센서를 프로그래밍 하는 방법
pinMode() 함수를 사용하여 아두이노 핀을 디지털 입력 모드로 초기화합니다. 예를 들어, 핀 13
digitalRead() 함수를 사용하여 아두이노 핀의 상태를 읽습니다.
아두이노 코드 - 문 열림 및 닫힘 상태 확인
사용 방법
- 위의 코드를 복사하고 Arduino IDE로 열기
- 아두이노 IDE에서 Upload 버튼을 클릭하여 코드를 아두이노에 업로드
- 자석을 리드 스위치에 가깝게 이동한 다음, 리드 스위치에서 멀어지게 이동하세요.
- 시리얼 모니터에서 결과를 확인하세요.
아두이노 코드 - 문 여는 것과 닫는 것 감지하기
- 위의 코드를 복사하고 Arduino IDE로 열기
- 코드를 Arduino에 업로드하려면 Arduino IDE에서 Upload 버튼을 클릭하세요.
- 자석을 리드 스위치에 가깝게 이동시킨 다음, 리드 스위치에서 멀어지게 이동하세요.
- 시리얼 모니터에서 결과를 확인하세요.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.