컴공생 누르지 마세요! 컴공생 울어요.
[아두이노 실습] 초음파 센서로 거리를 측정하여 LCD에 출력하기 본문
틴커캐드에서 아두이노를 이용하여 초음파 센서로 거리를 측정 후, 거리 값을 LCD에 출력하는 실습을 진행하였습니다.
보드 & 센서 연결
다음과 같이 아두이노 보드, 브레드보드, LCD, 초음파 센서를 연결하였습니다.
코드 작성
readUltrasonicDistance()
- 초음파 거리 센서의 거리를 읽습니다.
- 초음파 모듈이 트리거 펄스를 입력받음 ➡ 초음파 발생 & echo 출력이 low에서 high로 변경 ➡ echo 출력이 low로 변경될때까지의 구간 측정
- pulseIn() 함수를 통해 펄스가 low에서 high로 변하는 순간부터 시작하여 다시 high에서 low로 변하는 순간까지의 구간을 측정합니다,
#include <LiquidCrystal.h> // lcd 제어 라이브러리
LiquidCrystal lcd(12, 11, 7, 6, 5, 4); // lcd 핀 번호 설정
int distance = 0; // 거리 변수
// 초음파 거리 센서 읽기
long readUltrasonicDistance(int triggerPin, int echoPin)
{
pinMode(triggerPin, OUTPUT); // 출력 모드로 설정
digitalWrite(triggerPin, LOW); // triggerPin 0V로 설정
delayMicroseconds(2);
// Sets the trigger pin to HIGH state for 10 microseconds
digitalWrite(triggerPin, HIGH); // triggerPin 5V로 설정
delayMicroseconds(10);
digitalWrite(triggerPin, LOW); // triggerPin 0V로 설정
pinMode(echoPin, INPUT); // 입력 모드로 설정
// Reads the echo pin, and returns the sound wave travel time in microseconds
return pulseIn(echoPin, HIGH); // 펄스의 HIGH 구간 시간 측정
}
void setup()
{
lcd.begin(16, 2); // lcd 크기 (가로 16글자 x 세로 2줄)
lcd.print("distance = ");
}
void loop()
{
distance = 0.01723 * readUltrasonicDistance(3, 2);
lcd.setCursor(0, 1); // LCD의 2번째 줄로 커서 이동
lcd.print(distance); // 거리 출력
delay(10); // Delay a little bit to improve simulation performance
}
시뮬레이션 실행
시뮬레이션을 실행하면 다음과 같이 초음파 센서로부터 측정한 거리가 LCD에 출력되는 것을 확인할 수 있습니다.
이때, 가변저항을 돌리면 LCD에 출력되는 글씨의 선명도가 달라집니다.
'PROJECT > [임베디드] 아두이노 실습' 카테고리의 다른 글
[아두이노 실습] 초음파 센서와 PIR 센서를 이용한 자동화 경보 시스템 (0) | 2023.03.24 |
---|---|
[아두이노 실습] 3색 RGB LED 제어하기 (0) | 2023.03.24 |
Comments