본문 바로가기

아두이노

버튼과 초음파 센서를 사용한 물체 감지 시 LED 점등

반응형

버튼과 초음파 센서를 사용하여 물체 감지 시 LED를 점등하는 아두이노 프로젝트를 만들어보겠습니다. 아래는 해당 프로젝트를 순차적으로 설명하는 가이드입니다.

1. 이론 소개:

  • 이 프로젝트에서는 버튼과 초음파 센서를 사용하여 물체를 감지하고, 물체가 감지되면 LED를 점등합니다.
  • 초음파 센서는 초음파를 발사하여 물체와의 거리를 측정합니다.
  • 버튼을 누르면 LED가 점등하고, 버튼을 떼면 LED가 꺼집니다.

2. 준비물:

  • 아두이노 보드 (예: Arduino Uno)
  • 초음파 센서 (HC-SR04 또는 비슷한 모델)
  • 푸시 버튼 스위치
  • LED (빨간색 또는 원하는 색상)
  • 저항 (220옴)
  • 점퍼 와이어 (메스-메스 및 메스-피스)
  • 브레드보드
  • USB 케이블 (아두이노 보드와 컴퓨터 연결용)

3. 비슷한 센서 모델:

  • HC-SR04 이외에도 다양한 초음파 센서 모델이 있으며, 거리 측정 원리는 비슷합니다.

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

  • Arduino Uno: 초보자 및 중급자에게 적합한 아두이노 보드로 다양한 라이브러리와 예제가 있습니다.

5. 회로 구성:

  • 초음파 센서(HC-SR04)와 버튼, LED를 브레드보드에 연결합니다.
  • 초음파 센서의 핀을 아두이노에 연결하고, 버튼과 LED의 핀을 아두이노에 연결합니다.

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

 

#define trigPin 9     // 초음파 센서의 Trig 핀
#define echoPin 10    // 초음파 센서의 Echo 핀
#define buttonPin 2   // 버튼 스위치 핀
#define ledPin 13     // LED 핀

bool isButtonPressed = false;

void setup() {
  Serial.begin(9600);  // 시리얼 통신 시작
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(buttonPin, INPUT_PULLUP); // 풀업 모드로 버튼 스위치 설정
  pinMode(ledPin, OUTPUT);
}

void loop() {
  long duration, distance;

  // 버튼 상태를 확인
  isButtonPressed = digitalRead(buttonPin) == LOW;

  if (isButtonPressed) {
    digitalWrite(trigPin, LOW);
    delayMicroseconds(2);
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);
    duration = pulseIn(echoPin, HIGH);
    distance = (duration / 2) / 29.1;

    // 거리가 10cm 이하인 경우 LED 점등
    if (distance < 10) {
      digitalWrite(ledPin, HIGH);
    } else {
      digitalWrite(ledPin, LOW);
    }

    Serial.print("거리: ");
    Serial.print(distance);
    Serial.println(" cm");
  } else {
    digitalWrite(ledPin, LOW); // 버튼을 누르지 않은 경우 LED 끄기
  }
}

 

7. 코딩 내용 설명:

  • 버튼 스위치를 통해 버튼이 눌려진 상태인지를 확인하고, 초음파 센서를 통해 물체와의 거리를 측정합니다.
  • 거리가 10cm 이하인 경우 LED를 점등하고, 버튼을 뗄 때까지 LED가 계속 켜져 있습니다.

8. 코드 업로드 및 테스트:

  • 아두이노 보드를 컴퓨터에 연결하고 위의 코드를 아두이노 IDE에 복사하여 업로드합니다.
  • 버튼을 누르면 초음파 센서를 통해 거리를 측정하고, 일정 거리 이하에서 LED가 점등되는지 확인합니다.

9. 응용 업그레이드:

  • LED 대신 부저나 다른 출력 장치를 제어하여 효과를 추가합니다.
  • 물체 감지 시에 특정 동작이나 알림을 추가합니다.

10. 전문용어 설명:

- 풀업 모드 (Pull-up Mode): 내장된 풀업 저항을 사용하여 디지털 핀의 입력을 정의하는 모드.

- 펄스인 (pulseIn): 디지털 핀에서 펄스의 길이를 측정하는 함수.

 

11. 기타: - 초음파 센서의 거리 측정 범위와 정확도는 모델에 따라 다를 수 있습니다.

반응형