블로그 이미지
조이키트 블로그
아두이노, 라즈베리파이, 반도체 센서/모듈 활용

calendar

1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Notice

250x250
2020. 7. 28. 10:42 아두이노 기초
728x90
반응형

아두이노에 LCD 패널을 연결하여 초음파 센서에서 측정된 거리를 표시하는 프로젝트를 만들어 보겠다.

이 프로젝트에서는 LCD에 거리 값을 표시하고, 초음파 센서를 사용하여 거리를 측정한다.

아래는 이를 위한 간단한 코드입니다.

 

코딩

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

// 초음파센서의 Trig, Echo 핀을 매크로 상수로 선언
#define TRIG 2
#define ECHO 3
// 삼색 LED의 R, G, B에 해당하는 핀들을 매크로 상수로 선언
#define RED 11
#define GREEN 10
#define BLUE 9

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"글자 표시
  delay(200);     // 0.2초간 지연

}

 

준비품 : 아두이노 UNO, LiquidCrystal_I2C, 초음파센서, 3색 LED, 300옴 저항 (3개)

아두이노 UNO
LiquidCrystal_I2C
초음파 센서
3색 LED
300옴 저항
아두이노 우노 R3 LCD 1602 디스플레이 초음파센서 3색 LED 300옴 저항

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

https://link.coupang.com/a/b2vSOT

 

ATmega328P 마이크로 컨트롤러가 있는 아두이노 우노 R3 개발 보드 - 액세서리 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://link.coupang.com/a/b2vTO0

 

아두이노 LCD1602 16x2 4핀 디스플레이 모듈/ Arduino LCD1602 Module - 액세서리 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://link.coupang.com/a/b2FRps

 

HC-SR04 초음파 거리 측정 모듈 - 기타측정도구 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

 

다음과 같이 빵판에 요소들을 연결한다.

 

LCD패널의 VCC는 아두이노의 +5V에 연결하고, GND는 아두이노 GND에 연결한다.

다음 LCD패널의 SDA는 아두이노의 아날로그 핀의 A5에 연결하고, SCL은 A4에 연결한다.

초음파센서의 TRIG는 아두이노의 디지털핀인 D2번, ECHO는 D3에 연결한다.

그리고 초음파센서의 VCC와 GND는 공동으로 LCD패널과 같이 연결한다. 

다음 3색LED의 2번은 +5V에 연결하고 LED의 1, 3, 4번 즉 RED, GREEN, BLUE는 300옴 저항을 거쳐 아두이노 디지털핀인 D11, D10, D9 순으로 연결한다.

 

회로 연결이 전부 끝나면 아두이노IED에서 다음 아래에 있는 파일을 실행하여 아두이노IDE의 시리얼 모니터를 출력하면 address 뒤에 0x00값을 아래 코딩에서 LiquidCrystal_I2C lcd (0x27,16,2);  (예를들면 0x27)을 입력한다.

 

lcd_0x00.txt
0.00MB

 

 

 

코딩이 끝나면 컴파일하고 업로드 시켜주면 다음과 같이 회로의 LCD패널이 초음파센서에서 측정된 거리가 현시됨을 볼수 있다.

 

출력 결과

https://www.youtube.com/watch?v=8AiOaMY7if0

 

 

728x90
반응형
posted by 조이키트 블로그