본문 바로가기

아두이노

IR 센서와 초음파 센서로 물체 감지 및 위치 추적

반응형

먼저, IR 센서와 초음파 센서를 사용하여 물체 감지 및 위치 추적을 위한 아두이노 프로젝트에 대한 세부 정보를 제공하겠습니다. 각 파트별로 순차적으로 설명하겠습니다.

1. 이론 소개:

  • IR (Infrared) 센서: 적외선을 사용하여 물체의 존재를 감지하는 센서입니다.
  • 초음파 센서: 초음파를 발사하고 반사되는 초음파를 측정하여 물체의 거리를 계산하는 센서입니다.
  • 위치 추적: IR 센서와 초음파 센서를 사용하여 물체의 위치를 추적하고 표시합니다.

2. 준비물:

  • Arduino 보드 (예: Arduino Uno)
  • IR 센서 모듈 (예: TCRT5000 또는 비슷한 모델)
  • 초음파 센서 (예: HC-SR04 또는 비슷한 모델)
  • 서보 모터 (예: SG90 또는 비슷한 모델)
  • 점퍼 와이어
  • 브레드보드
  • 필요한 전원 공급 장치 (Arduino 및 서보 모터를 위한)

3. 비슷한 센서 모델명:

  • TCRT5000, TCRT1000, GP2Y0A21YK (IR 센서)
  • HC-SR04, JSN-SR04T (초음파 센서)

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

  • Arduino Uno: 다양한 센서와 모듈을 연결하기에 적합한 개발 보드입니다.

5. 회로 구성:

회로 구성은 다음과 같습니다.

  • IR 센서의 VCC 핀을 Arduino의 5V 핀에 연결합니다.
  • IR 센서의 GND 핀을 Arduino의 GND 핀에 연결합니다.
  • IR 센서의 출력 핀을 Arduino의 디지털 핀 2에 연결합니다.
  • 초음파 센서의 VCC 핀을 Arduino의 5V 핀에 연결합니다.
  • 초음파 센서의 GND 핀을 Arduino의 GND 핀에 연결합니다.
  • 초음파 센서의 TRIG 핀을 Arduino의 디지털 핀 7에 연결합니다.
  • 초음파 센서의 ECHO 핀을 Arduino의 디지털 핀 8에 연결합니다.
  • 서보 모터의 VCC 핀을 Arduino의 5V 핀에 연결합니다.
  • 서보 모터의 GND 핀을 Arduino의 GND 핀에 연결합니다.
  • 서보 모터의 제어 핀을 Arduino의 디지털 핀 9에 연결합니다.

6. 코딩 내용:

 

#include <Servo.h>

Servo servo;
int irSensorPin = 2; // IR 센서 연결 핀
int trigPin = 7; // 초음파 센서 TRIG 핀
int echoPin = 8; // 초음파 센서 ECHO 핀
long duration;
int distance;

void setup() {
  servo.attach(9); // 서보 모터를 9번 핀에 연결
  pinMode(irSensorPin, INPUT);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600); // 시리얼 통신 시작
}

void loop() {
  int irValue = digitalRead(irSensorPin);

  if (irValue == LOW) {
    // IR 센서가 물체를 감지하면 초음파 센서로 거리 측정
    digitalWrite(trigPin, LOW);
    delayMicroseconds(2);
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);
    duration = pulseIn(echoPin, HIGH);
    distance = duration * 0.0344 / 2; // 거리 계산

    // 거리에 따라 서보 모터 각도 조절
    if (distance <= 10) {
      servo.write(0); // 물체가 가까이 있을 때
    } else if (distance <= 20) {
      servo.write(90); // 물체가 중간 거리에 있을 때
    } else {
      servo.write(180); // 물체가 멀리 있을 때
    }
  } else {
    servo.write(90); // IR 센서가 물체를 감지하지 않으면 서보 모터 중앙으로 돌림
  }

  delay(1000);
}

 

7. 코딩 내용 설명:

  • IR 센서에서 값이 LOW로 읽히면, 초음파 센서로 거리를 측정하고 해당 거리에 따라 서보 모터를 제어합니다.
  • 거리에 따라 서보 모터의 각도를 0, 90 또는 180으로 조절하여 물체의 위치를 추적합니다.

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

  • 코드를 아두이노 IDE에 복사하고 아두이노에 업로드합니다.
  • IR 센서 앞에 손을 움직여서 물체를 감지하고 서보 모터가 물체를 추적하도록 테스트합니다.

9. 응용 업그레이드:

  • 이 프로젝트를 확장하여 물체의 위치 정보를 시리얼 모니터에 출력하거나 다른 동작을 수행하도록 개선할 수 있습니다.

10. 전문용어 및 설명:

  • IR 센서: 적외선을 사용하여 물체의 존재를 감지하는 센서입니다.
  • 초음파 센서: 초음파를 발사하고 반사되는 초음파를 측정하여 물체의 거리를 계산하는 센서입니다.
  • 서보 모터: 지정된 각도로 회전하는 모터입니다.

11. 기타:

  • 이 프로젝트는 물체를 감지하고 위치를 추적하는 간단한 예제입니다. 더 복잡한 응용 프로그램을 개발할 수 있습니다.

 

반응형