본문 바로가기

아두이노

초음파 센서와 LED로 물체의 거리에 따라 LED 색상 변경

반응형

1. 이론 소개:

  • 이 프로젝트에서는 초음파 센서를 사용하여 물체와의 거리를 측정하고, 거리에 따라 RGB LED의 색상을 변경합니다.
  • 초음파 센서는 초음파를 발사하여 반사 시간을 측정하여 물체와의 거리를 계산합니다.

2. 준비물:

  • 아두이노 보드 (예: Arduino Uno)
  • 초음파 센서 (HC-SR04 또는 비슷한 모델)
  • RGB LED
  • 저항 (220옴 x 3)
  • 점퍼 와이어 (메스-메스 및 메스-피스)
  • 브레드보드
  • USB 케이블 (아두이노 보드와 컴퓨터 연결용)

3. 비슷한 센서 모델:

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

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

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

5. 회로 구성:

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

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

 

#define trigPin 9  // 초음파 센서의 Trig 핀
#define echoPin 10 // 초음파 센서의 Echo 핀
#define redPin 11  // RGB LED의 빨간색 핀
#define greenPin 10 // RGB LED의 녹색 핀
#define bluePin 9  // RGB LED의 파란색 핀

void setup() {
  Serial.begin(9600);  // 시리얼 통신 시작
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

void loop() {
  long duration, distance;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration / 2) / 29.1;

  if (distance < 5) { // 거리가 5cm 미만인 경우
    setColor(255, 0, 0); // 빨간색 LED
  } else if (distance < 10) { // 거리가 10cm 미만인 경우
    setColor(0, 255, 0); // 녹색 LED
  } else if (distance < 20) { // 거리가 20cm 미만인 경우
    setColor(0, 0, 255); // 파란색 LED
  } else {
    setColor(0, 0, 0); // 모든 LED 끄기
  }
  
  Serial.print("거리: ");
  Serial.print(distance);
  Serial.println(" cm");
  delay(500);
}

void setColor(int red, int green, int blue) {
  analogWrite(redPin, red);
  analogWrite(greenPin, green);
  analogWrite(bluePin, blue);
}

 

7. 코딩 내용 설명:

  • 초음파 센서를 사용하여 거리를 측정하고, 거리에 따라 RGB LED의 색상을 변경합니다.
  • 거리에 따라 빨간색, 녹색, 파란색 LED가 켜집니다.

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

  • 아두이노 보드를 컴퓨터에 연결하고 위의 코드를 아두이노 IDE에 복사하여 업로드합니다.
  • 초음파 센서를 사용하여 물체와의 거리에 따라 RGB LED의 색상이 변경되는지 확인합니다.

9. 응용 업그레이드:

  • 색상 대신 LED의 밝기를 조절하여 효과를 추가합니다.
  • 다른 센서를 추가하여 확장된 기능을 구현합니다.

10. 전문용어 설명:

- 초음파 센서 (Ultrasonic Sensor): 초음파를 사용하여 물체와의 거리를 측정하는 센서.

- RGB LED: 빨간색, 녹색, 파란색 LED를 조합하여 다양한 색상을 표현할 수 있는 LED.

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

- 아날로그 출력 (analogWrite): 아날로그 신호로 값을 출력하는 함수.

 

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

반응형