#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // LCD 설정: 주소 0x27, 16칸, 2줄

const int trigPin = 2; //Trig 핀 할당
const int echoPin = 3; //Echo 핀 할당
void setup()
{
Serial.begin(115200); //시리얼 초기화
Serial.println("Distance Measure (Ultrasonic Sensor)");
pinMode(trigPin, OUTPUT); //Trig 핀 output으로 세팅
pinMode(echoPin, INPUT); //Echo 핀 input으로 세팅

lcd.init(); // LCD 초기화
lcd.backlight(); // backlight 켜기

}
void loop()
{
unsigned long duration, distance; //기본 변수 선언
//Trig 핀으로 10us의 pulse 발생
digitalWrite(trigPin, LOW); //Trig 핀 Low
delayMicroseconds(2); //2us 유지
digitalWrite(trigPin, HIGH); //Trig 핀 High
delayMicroseconds(10); //10us 유지
digitalWrite(trigPin, LOW); //Trig 핀 Low
//Echo 핀으로 들어오는 펄스의 시간 측정
//pulseIn함수가 호출되고 펄스가 입력될 때까지의 시간. us단위로 값을 리턴
duration = pulseIn(echoPin, HIGH); 
//음파가 반사된 시간을 거리로 환산
//음파의 속도는 340m/s 이므로 1cm를 이동하는데 약 29us
//따라서, 물체와의 거리 = 왕복시간 * 음속(0.034) / 2
//또는 물체와의 거리 = 왕복시간 / 음파이동시간(29) / 2
distance = duration * 0.034 / 2; //센치미터로 환산
//distance = duration / 58.8; //센치미터로 환산
Serial.print(distance);
Serial.println("cm");
lcd.setCursor(5,1);
lcd.print(duration);
lcd.println("cm   ");
delay(100);
}
$abcdeabcde151015202530fghijfghij