아두이노 센서모듈

HC-SR04 초음파 센서 사용법 | 아두이노에 LCD1602와 3색 LED 다이오드 적용

HC-SR04 초음파 센서는 거리 측정에 사용되는 센서입니다. 이 센서는 초음파를 이용해 물체와의 거리를 측정하며, 아두이노와 같은 마이크로컨트롤러와 연결하여 사용할 수 있습니다.

HC-SR04 초음파 센서 특징:

작동 전압 : DC 5V

최대 측정거리 : 약 4m

측정 각도 : 15도

정확도 : 3m

HC-SR04 동작 원리:

  1. 초음파 발사 : 트리거 핀에 짧은 신호(10us)를 주면 초음파가 발사됩니다.
  2. 초음파 반사 : 발사된 초음파가 물체에 반사되어 돌아옵니다.
  3. 에코 신호 수신핀 : 반사된 초음파가 수신될 때까지의 시간을 에코 핀에서 측정합니다.
  4. 거리 계산 : 수신된 시간에 소리의 속도(340m/s)를 곱해 물체까지의 거리를 계산합니다.

거리 계산 공식:

D = (t x v/2)

t : 에코핀에서 측정된 시간(초)

v : 소리의 속도(340m/s)

2 : 신호가 물체에 도달했다가 다시 되돌아오는 시간

HC-SR04 핀 기능:

VCC : DC5V

GND : 접지

Trig : 초음파 신호 발사

Echo : 초음파 신호 수신

이번 프로젝트는 아두이노에 초음파 센서를 사용하여 측정된 거리를 LCD1602 디스플레이에 현시하여 주고, 측정된 값에 따라 3색 LED 다이오드를 제어하는 방법을 설명해보도록 하겠습니다.

준비 부품:

준비품으로는 아두이노 우노 R3, HC-SR04 초음파센서, LCD1602 디스플레이, 3색 RGB LED 다이오드 등이 사용됩니다.

구성 부품들이 준비되면 아래 회로도를 참고하여 회로연결을 합니다.

회로 연결:

아두이노 우노 R3HC-SR04RGB LED 다이오드LCD1602 디스플레이
+5VVCCVCC
GNDGNDCommonGND
D4Trig
D5Echo
D6R
D7G
D8B
A4SDA
A5SCL

회로 연결이 끝나면 아두이노 IDE에 다음과 같이 코드를 작성합니다.

전체 코드:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>  // LCE패널 함수 선언

// 초음파센서의 Trig, Echo 핀을 매크로 상수로 선언
#define TRIG 4
#define ECHO 5
// 삼색 LED의 R, G, B에 해당하는 핀들을 매크로 상수로 선언
#define RED 6
#define GREEN 7
#define BLUE 8

LiquidCrystal_I2C lcd (0x27,16,2);   

void setup() {
// 초음파센서의 Trig를 출력모드, Echo를 입력 모드로 설정

  pinMode(TRIG, OUTPUT);
  pinMode(ECHO, INPUT);
  lcd.init();           // LCD 초기화
  lcd.backlight();      // LCD 뒷 전등 켬

}

void loop() {
// 초음파센서의 Trig에서 초음파를 발사하는 코드
  digitalWrite(TRIG, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);

// pulseIn 명령어를 통해 Echo핀에 초음파가 들어오는 시간 계산
// 반환된 값에 58.2를 나누어 시간을 cm로 변경
  long distance = pulseIn(ECHO, HIGH)/58.2;

// 3색 LED의 R, G, B를 모두 255로 설정하여 LED를 끔
  analogWrite(RED, 255);
  analogWrite(GREEN, 255);
  analogWrite(BLUE, 255);

    if(distance < 10){
    // 거리가 10cm 이내이면 빨간색으로 표시   
    analogWrite(RED, 0);
  }else if(distance < 20){
    // 거리가 10 ~ 20 이내이면 초록색으로 표시
    analogWrite(GREEN, 0);
  }else if(distance < 30){
    // 거리가 20 ~ 30 이내이면 파란색으로 표시
    analogWrite(BLUE, 0);    
  }

// LCD에서 한번 현시되고 측정된 값이 바뀌면 지우고 다시 현시 
 lcd.clear();
// LCD의 커서를 첫번째 열에 두번째행으로 설정     
  lcd.setCursor(0, 0);
// 측정된 거리값을 LCD에현시
  lcd.print(distance);
  lcd.print("cm");     // 측정 값 뒤에 "cm"글자 표시
  lcd.setCursor(0, 1);
  lcd.print("COLOR : "); 
  if(distance<10){
    lcd.print("RED");
    }else if(distance<20){
    lcd.print("GREEN");
    }else if(distance<30){
    lcd.print("BLUE");  
    }
  
  delay(200);     // 0.2초간 지연

}

코드 작성 후 컴파일한 다음 아두이노 우노 R3에 업로드하여줍니다.

그러면 다음과 같은 출력 결과를 볼 수 있습니다.

출력 영상:

HC-SR04 초음파 센서 사용법 | 아두이노에 LCD1602와 3색 LED 다이오드 적용”에 대한 10개의 생각

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다