본문 바로가기

아두이노

초음파 센서와 가변 저항기를 사용하여 자동 문 제어

반응형

초음파 센서와 가변 저항기를 사용하여 자동 문을 제어하는 아두이노 프로젝트를 구성하는 방법을 설명하겠습니다. 이 프로젝트는 초음파 센서로 거리를 측정하여 일정 거리 이내에 객체가 감지되면 문을 자동으로 여는 시스템입니다. 가변 저항기는 문이 열리는 속도를 조절하는 데 사용됩니다.

1. 이론 소개

  • 초음파 센서(HC-SR04 등): 사운드 웨이브를 이용해 물체와의 거리를 측정합니다.
  • 서보 모터: 문을 여닫는 데 사용되며, 특정 각도로 정밀하게 제어할 수 있습니다.
  • 가변 저항기: 서보 모터의 속도를 조절하는 데 사용됩니다.

2. 준비물

  • 아두이노 보드 (Uno, Mega 등)
  • 초음파 센서 (HC-SR04)
  • 서보 모터
  • 가변 저항기 (10kΩ 권장)
  • 점퍼 와이어
  • 브레드보드

3. 비슷한 센서 모델

  • 다른 초음파 센서 모델 (예: PING)))™ 센서)

4. 추천 보드 및 간단한 설명

  • 아두이노 Uno: 다양한 프로젝트에 적합하며 초보자에게 친숙
  • 아두이노 Mega: 더 많은 I/O 핀을 제공, 복잡한 프로젝트에 적합

5. 회로 구성

  • 초음파 센서의 Trig와 Echo 핀을 아두이노의 디지털 핀에 연결
  • 서보 모터를 아두이노의 PWM 핀에 연결
  • 가변 저항기를 아두이노의 아날로그 핀에 연결

6. 코딩 내용(주석 포함)

#include <Servo.h> 
#include <NewPing.h>

#define TRIG_PIN 10
#define ECHO_PIN 11
#define MAX_DISTANCE 100
#define SERVO_PIN 9

NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);
Servo myservo;
int potPin = A0; // 가변 저항기 핀
int angle = 0; // 서보 모터 각도

void setup() {
  myservo.attach(SERVO_PIN);
}

void loop() {
  int potValue = analogRead(potPin);
  int doorSpeed = map(potValue, 0, 1023, 15, 100); // 문 열림 속도 조절
  unsigned int uS = sonar.ping();
  float distance = uS / US_ROUNDTRIP_CM;

  if (distance < 50) { // 특정 거리 내에 물체가 감지되면
    for(angle = 0; angle < 90; angle += doorSpeed) { // 문 열기
      myservo.write(angle);
      delay(15);
    }
  } else {
    for(angle = 90; angle > 0; angle -= doorSpeed) { // 문 닫기
      myservo.write(angle);
      delay(15);
    }
  }
}

 

7. 코딩 내용 설명

이 코드는 초음파 센서로부터 읽은 거리에 따라 서보 모터를 제어하여 문을 열거나 닫습니다. 가변 저항기 값에 따라 문이 열리고 닫히는 속도가 조절됩니다.

8. 코드 업로드 및 테스트

  1. 아두이노 IDE에 코드를 입력하고 업로드
  2. 초음파 센서 앞에 물체를 두고 문의 반응 확인
  3. 가변 저항기를 조절하면서 문의 열림/닫힘 속도 조절 테스트

9. 응용 업그레이드

  • 외부 인터페이스 (예: 블루투스, 와이파이)를 추가하여 원격 제어 구현
  • 문 열림/닫힘 각도 조절 기능 추가
  • 여러 초음파 센서를 사용하여 다양한 각도에서의 접근 감지

10. 전문용어 및 설명

  • PWM (Pulse Width Modulation): 디지털 신호의 폭을 조절하여 아날로그 신호와 같은 효과를 내는 기술
  • 초음파(Ultrasonic): 인간의 청각 범위를 넘는 소리 주파수

11. 기타

프로젝트 구성시 모터의 전력 요구사항과 초음파 센서의 감지 범위를 고려하는 것이 중요합니다.

 

 

반응형