아두이노 SW520D 기울기 센서

SW520D 기울기 센서 모듈(볼 스위치 또는 각도 센서라고도 함)은 기울기 또는 방향 변화를 감지할 수 있습니다. 객체가 이동할 때 트리거되는 경보나 방향에 반응하는 서보 모터와 같이 기울기 반응형 프로젝트를 만드는 데 사용할 수 있습니다.

이 튜토리얼에서는 Arduino와 SW520D 기울기 센서를 사용하여 기울기를 감지하는 방법을 배웁니다. 자세히 다음을 배울 것입니다:

아두이노 sw520d 기울기 센서

이후에는 기울기가 감지될 때 LED나 조명(릴레이를 통해)을 활성화하거나 서보 모터를 회전시키도록 코드를 수정할 수 있습니다.

필요한 하드웨어

1×아두이노 우노 R3 쿠팡 | 아마존
1×USB 2.0 타입 A-to-B 케이블 (USB-A PC용) 쿠팡 | 아마존
1×USB 2.0 타입 C-to-B 케이블 (USB-C PC용) 아마존
1×SW520D Tilt Sensor Module 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) 아두이노 우노용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1×(추천) Sensors/Servo Expansion Shield for Arduino Uno 아마존
1×(추천) 아두이노 우노용 브레드보드 쉴드 쿠팡 | 아마존
1×(추천) 아두이노 우노용 케이스 쿠팡 | 아마존
1×(추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

SW520D 기울기 센서에 대하여

SW520D 기울기 센서 모듈은 주변 환경의 기울기 또는 방향 변화를 감지하는 데 사용할 수 있습니다. 모듈 내부에는 기울기 각도에 따라 두 개의 전기 접점 사이를 구르는 작은 금속 볼이 있습니다. 모듈은 단순한 디지털 신호(ON/OFF)를 출력하므로 Arduino와 인터페이스하기 쉽습니다.

SW520D 기울기 센서 핀아웃

SW520D 기울기 센서에는 세 개의 핀이 있습니다:

  • VCC 핀: VCC(3.3V~5V)에 연결해야 합니다
  • GND 핀: GND(0V)에 연결해야 합니다
  • DO 핀: 출력 핀입니다: 센서가 직립 상태일 때 HIGH, 기울어질 때 LOW. 이 핀은 Arduino의 입력 핀에 연결해야 합니다.
sw520d 기울기 센서 핀아웃
image source: diyables.io

SW520D 기울기 센서 모듈에는 두 개의 LED 표시등도 있습니다:

  • 전원용 LED 표시등
  • 기울기 상태용 LED 표시등: 센서가 직립 상태일 때 켜지고, 기울어질 때 꺼집니다.

작동 원리

  • 센서가 직립 상태일 때, 내부 금속 볼이 접점을 닫아 출력 핀이 HIGH가 됩니다.
  • 센서가 기울어질 때, 내부 금속 볼이 접점을 열어 출력 핀이 LOW가 됩니다.

배선도

아두이노 sw520d 기울기 센서 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

SW520D 기울기 센서를 위한 프로그래밍 방법

  • pinMode() 함수를 사용하여 Arduino 핀을 디지털 입력 모드로 초기화합니다. 예를 들어 핀 5
pinMode(5, INPUT);
  • digitalRead() 함수를 사용하여 Arduino 핀의 상태를 읽습니다.
int tiltState = digitalRead(5);

Arduino 코드 - 기울기 감지

/* * 이 아두이노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-sw520d-tilt-sensor */ // Arduino's pin connected to DO pin of the SW520D tilt sensor #define SENSOR_PIN 5 int lastState = HIGH; // the previous state from the input pin int currentState; // the current reading from the input pin void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the Arduino's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: currentState = digitalRead(SENSOR_PIN); if (lastState == HIGH && currentState == LOW) Serial.println("The tilt has been detected"); else if (lastState == LOW && currentState == HIGH) Serial.println("The tilt has disappeared"); // save the the last state lastState = currentState; }

빠른 단계

  • 위 코드를 복사하여 Arduino IDE에서 엽니다
  • Arduino IDE의 Upload 버튼을 클릭하여 Arduino에 코드를 업로드합니다
  • SW520D 센서를 앞뒤로 기울여봅니다
  • 시리얼 모니터에서 결과를 확인합니다.
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
The tilt has been detected The tilt has disappeared The tilt has been detected The tilt has disappeared
Ln 11, Col 1
Arduino Uno on COM15
2

이제 기울기가 감지될 때 LED나 조명을 활성화하거나 서보 모터를 회전시키도록 코드를 사용자 지정할 수 있습니다. 이 튜토리얼 끝에 제공된 튜토리얼에서 더 많은 정보와 단계별 지침을 찾을 수 있습니다.

문제 해결

SW520D 기울기 센서가 제대로 작동하지 않는 경우 다음 단계를 시도해 보세요:

  • 방향 확인: SW520D는 장착 방향에 민감합니다. 신뢰할 수 있는 감지를 위해 올바른 직립 위치에 설치되어 있는지 확인합니다.
  • 진동 줄이기: 기울기 센서는 기계적 진동도 감지할 수 있습니다. 단단한 표면에 장착하면 오탐을 최소화하는 데 도움이 됩니다.
  • 배선 확인: VCC, GND, DO 핀이 올바르게 연결되어 있는지 확인합니다.
  • 전원 공급 확인: 일관된 판독값을 위해 전원 공급이 안정적인지 확인합니다.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

함수 레퍼런스

댓글

관련 튜토리얼