본문 바로가기
IOT 로봇 아두이노/아두이노 기본센서 연결하기

[아두이노 응용] 초음파센서 거리 측정 후 LCD 출력 하기

by Jango_infoinno 2021. 5. 12.

이전에 배웠던 초음파센서를 이용한 거리측정값을 LCD로 출력해 보는것을 배워볼 것 입니다!

 

<이전에 배웠던 초음파센서LCD 를 복습도 할 겸 한번 보고오셔도 좋을것 같습니다!>

[기본센서 연결하기] - 9. 초음파센서 연결하기

 

9. 초음파센서 연결하기

//초음파 센서의 핀번호를 설정한다. int trig = 13; int echo = 8; void setup() { Serial.begin(9600); // trig를 출력모드로 설정, echo를 입력모드로 설정 pinMode(trig, OUTPUT); pinMode(echo, INPUT); } v..

infoinno.tistory.com

 

[기본센서 연결하기] - 12. LCD 글자 출력하기

 

12. LCD 글자 출력하기

LCD 란? LCD 문자 출력 준비(라이브러리 설치) LCD로 문자 출력하기 1. LCD 란? 문가와 기호를 표시할 수 있는 LCD로 보통은 16글자 2줄을 표시 할 수 있는 LCD를 많이 사용합니다. 하지만 LCD는 치명적인

infoinno.tistory.com

 


목차
1) 초기 선언 & setup() 부분 소스코드
2) loop 부분 소스코드
3) 회로도 

 

1) 초기 선언 & setup() 부분 소스코드

왼쪽 소스코드는 초음파센서만 연결했을때의 소스코드이고, 오른쪽 소스코드는 LCD만 연결했을때의 소스코드입니다. 

이제 두개의 센서를 연결시켜서 <초음파센서로 측정한 값을 LCD로 출력> 하는 소스코드를 만들어 보겠습니다. 

좌: 초음파센서 우: LCD 출력
초음파센서로 측정한 거리를 LCD로 출력

 



2) loop() 부분 소스코드

 왼쪽 소스코드는 초음파센서만 연결했을때의  loop()소스코드이고, 오른쪽 소스코드는 LCD만 연결했을때의 loop()부분소스코드입니다.

두 소스코드를 연결해서 <초음파센서로 측정한 값을 LCD로 출력> 하는 loop()부분 소스코드를 만들어 보겠습니다.


3) 회로도

 

초음파센서 

Vcc - 5V
TRIG - 13pin
ECHO - 8pin
GND - GND
LCD 센서

GND - GND
VCC - 5V
SDA - A4
SCL -A5

C


  • 초음파 + LCD 소스코드
#include <Wire.h> 

#include <LiquidCrystal_I2C.h>


LiquidCrystal_I2C lcd(0x27,20,4); 

int trig = 13;

int echo = 8;

void setup()
{

  Serial.begin(9600); //시리얼 포트로 확인
  
  lcd.init(); / LCD초기 설정(LCD 초기화)
  
  lcd.backlight(); // LCD초기 설정(백라이트 켜기)

  // trig를 출력모드로 설정, echo를 입력모드로 설정
  
  pinMode(trig, OUTPUT); 
  
  pinMode(echo, INPUT);  
  
}

void loop()
{
  // digitalWrite LOW 는 0으로 신호를 안보내는 상태이다.(대기상태)
  
  digitalWrite(trig, HIGH);  
  
  delayMicroseconds(10);     //10마이크로초 멈춘다.
                             // 신호를 측정하기 위해서는 10마이크로초 동안 초음파센서를 HIGH로 열어놔야 거리 측정 가능하다.

  
  digitalWrite(trig, LOW);   
  
  // echoPin 이 HIGH를 유지한 시간을 저장 한다.
  
  unsigned long duration = pulseIn(echo, HIGH);    // Echo: HIGH->Low 간격을 측정
  
  // HIGH 였을 때 시간(초음파가 보냈다가 다시 들어온 시간)을 가지고 거리를 계산 한다.
  
  float distance = ((float)(340 * duration) / 10000) / 2;   // 거리(cm)로 변환
  
  lcd.clear(); 
  
  lcd.setCursor(0,0);
  
  lcd.println(distance);
  
  lcd.print("cm");  
  
  delay(200);
  
  Serial.print(distance);
  
  Serial.println("cm");
  
  delay(100);
}

lcd관련 글

LCD 명령어 정리

 

LCD 명령어 정리

lcd.begin(x 좌표 개수, y 좌표개수) LCD 모듈을 초기화 시키는 명령어, 16X2 LCD의 경우 lcd.begin(16,2) lcd.print(값) / lcd.print(값, 옵션) 값 : char, byte, int, long, string / 옵션(선택적 사용) BIN,DEC,OCT,HEX(진법) lcd.Cu

infoinno.info

LCD

 

LCD

16x2 LCD 모듈 16x2 LCD 모듈 16x2 LCD 모듈 핀아웃 핀 구성 데이터시트 components101.com/displays/16x2-lcd-pinout-datasheet 16x2 LCD Module: Pinout, Diagrams, Description & Datasheet 16×2 LCD is named so because it has 16 Columns and 2 Rows

infoinno.info

온도 습도 LCD로 출력하기

 

[아두이노 응용] 온도 습도 LCD로 출력하기

24. 온습도 측정하기 (tistory.com) 24. 온습도 측정하기 온습도센서(DHT11)란? 온습도 센서 이용하여 측정한 온습도 값을 시리얼에 뿌리기 1) 온습도센서(DHT11)란? - DHT11을 쉽게 사용하는 모듈 온습도 센

infoinno.info

참고: https://blog.naver.com/bitelab
반응형

댓글