이전에 배웠던 초음파센서를 이용한 거리측정값을 LCD로 출력해 보는것을 배워볼 것 입니다!
<이전에 배웠던 초음파센서와 LCD 를 복습도 할 겸 한번 보고오셔도 좋을것 같습니다!>
목차
1) 초기 선언 & setup() 부분 소스코드
2) loop 부분 소스코드
3) 회로도
1) 초기 선언 & setup() 부분 소스코드
왼쪽 소스코드는 초음파센서만 연결했을때의 소스코드이고, 오른쪽 소스코드는 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 |
- 초음파 + 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로 출력하기
참고: https://blog.naver.com/bitelab
반응형
'IOT 로봇 아두이노 > 아두이노 기본센서 연결하기' 카테고리의 다른 글
[아두이노 기초] 블루투스 연결하기 (0) | 2021.05.26 |
---|---|
[아두이노 기초] 세븐 세그먼트 (2) | 2021.05.21 |
[아두이노 기초] LCD 글자 출력하기 (0) | 2021.04.26 |
[아두이노 기초] DC모터 사용하기 (0) | 2021.04.19 |
[아두이노 기초] 서보모터 사용하기 (0) | 2021.04.18 |
댓글