리드 스위치는 마그네틱 도어 스위치, 랩톱, 스마트 폰 등과 같은 많은 실제 애플리케이션에서 사용됩니다.이 기사에서는 리드 스위치에 대해 배우고 Arduino와 리드 스위치 인터페이스를 안내합니다.
리드 스위치
리드 스위치는 기본적으로 자기장이 가까이에있을 때 작동 하는 전기 스위치입니다. 1936 년 벨 연구소에서 WB Ellwood 가 발명했습니다. 진공 상태에서 유리관 안에 보관 된 두 개의 작은 금속 조각으로 구성됩니다. 일반적인 리드 스위치에서 두 개의 금속 조각은 강자성 재료로 만들어지고 로듐 또는 루테늄으로 덮여있어 긴 수명을 제공합니다. 자기장의 존재하에있을 때 스위치가 활성화되고 상기 스위치는 주변.
두 금속 조각의 유리 인클로저는 먼지, 먼지 및 기타 입자로부터 보호합니다. 리드 스위치는 가연성 가스가있는 환경이나 부식이 개방 스위치 접점에 영향을 미치는 환경과 같은 모든 환경에서 작동 할 수 있습니다.
리드 스위치 에는 두 가지 유형이 있습니다.
- 일반적으로 열린 리드 스위치
- 일반적으로 닫힌 리드 스위치
일반적 으로 열린 리드 스위치 에서 스위치는 자기장이 없을 때 열리고 자기장이 있으면 닫힙니다. 자기장이 존재하면 유리관 내부의 두 개의 금속 접점이 서로 끌어 당겨 접촉합니다.
일반적 으로 닫힌 리드 스위치 에서 스위치는 자기장이 없을 때 닫히고 자기장이 있으면 열립니다.
리드 스위치의 응용
- 전화 교환에 사용
- 노트북에서 뚜껑이 닫혀 있으면 화면을 절전 모드로 전환
- 도난 경보 시스템의 창문 및 문 센서에 사용
필요한 구성 요소
- Arduino Uno
- 리드 스위치
- 저항기
- LED
- 자석
- 전선 연결
Arduino 리드 스위치 회로도
Arduino와 리드 스위치 작동
Arduino Uno는 ATmega328p 마이크로 컨트롤러를 기반으로하는 오픈 소스 마이크로 컨트롤러 보드입니다. 14 개의 디지털 핀 (6 개의 핀은 PWM 출력으로 사용 가능), 6 개의 아날로그 입력, 온보드 전압 조정기 등이 있습니다. Arduino Uno에는 32KB의 플래시 메모리, 2KB의 SRAM 및 1KB의 EEPROM이 있습니다. 16MHz의 클럭 주파수에서 작동합니다. Arduino Uno는 다른 장치와의 통신을 위해 Serial, I2C, SPI 통신을 지원합니다. 아래 표는 Arduino Uno의 기술 사양을 보여줍니다.
마이크로 컨트롤러 |
ATmega328p |
작동 전압 |
5V |
입력 전압 |
7-12V (권장) |
디지털 I / O 핀 |
14 |
아날로그 핀 |
6 |
플래시 메모리 |
32KB |
SRAM |
2KB |
EEPROM |
1KB |
시계 속도 |
16MHz |
리드 스위치를 Arduino와 인터페이스 하려면 아래 그림과 같이 전압 분배기 회로를 구축해야합니다. Vo는 스위치가 열려있을 때 + 5V이고 스위치가 닫혀있을 때 0V입니다. 이 프로젝트 에서는 일반적으로 열린 리드 스위치 를 사용하고 있습니다. 스위치는 자기장이있을 때 닫히고 자기장이 없을 때는 열린다.
코드 설명
이 Arduino 리드 스위치 프로젝트 의 전체 코드 는이 기사의 끝에 제공됩니다. 코드는 의미있는 작은 청크로 분할되어 아래에 설명되어 있습니다.
코드의이 부분에서는 Arduino에 연결된 Reed와 LED 가 연결된 핀 을 정의 해야합니다. 리드 스위치는 Arduino의 디지털 핀 4에 연결되고 LED는 전류 제한 저항을 통해 Arduino의 디지털 핀 7에 연결됩니다. "reed_status" 변수 는 리드 스위치의 상태를 유지하는 데 사용됩니다.
int LED = 7; int reed_switch = 4; int reed_status;
코드의이 부분에서는 LED와 리드 스위치가 연결된 핀의 상태 를 설정 해야합니다. 핀 번호 4는 입력으로 설정되고 핀 번호 7은 출력으로 설정됩니다.
void setup () { pinMode (LED, OUTPUT); pinMode (리드 스위치, INPUT); }
다음 으로 리드 스위치의 상태 를 읽어야합니다. 1이면 스위치가 열리고 LED가 꺼집니다. 0이면 스위치가 닫히고 LED를 켜야합니다. 이 과정은 매초 반복됩니다. 이 작업은 아래 코드의이 부분으로 수행됩니다.
void loop () {reed_status = digitalRead (reed_switch); if (reed_status == 1) digitalWrite (LED, LOW); 그렇지 않으면 digitalWrite (LED, HIGH); 지연 (1000); }
따라서 Arduino와 함께 사용하기 매우 쉬운 Reed Switch를 보았습니다.