Arduino Uno 로 HC-SR04 초음파센서를 사용해서 I2C 1602 캐릭터 LCD에 거리측정값을 출력해 보는 프로젝트 입니다
HC-SR04 초음파 센서는 VCC, Trig, Echo, GND 4핀으로 구성된 초음파 원리를 이용해
거리를 측정 할 수 있는 센서입니다
측정거리는 20~5000mm 이며, 측정 유효 각도는 15도 이내 입니다
5V전원 공급후 Trig 핀을 통해 10us 의 펄스를 인가하면 센서는 8개의 40KHz 펄스를 발생시키고,
측정된 거리에 따라 150us~25ms의 펄스를 Echo 핀을 통해 출력하는 방식 입니다
사용된 부품
Arduino Uno R3 (Italy)
브래드 보드
HC-SR04 초음파센서 모듈
점퍼케이블
구성 배선도
사용된 라이브러리
사용된 예제소스
주의사항
기본적으로 LiquidCrystal_I2C 라이브러리 설치가 필요합니다
라이브러리 설치 방법은 하단링크 포스팅을 참조해 주세요
Arduino IDE 설치하기
(하단 프로젝트 동영상에서는 HC-SR04 와 I2C 1602 캐릭터 LCD를 브래드보드를 사용해서
5V로 같이 배선하였습니다)
배선도에서는 HC-SR04를 3.3V 전원으로 따로 배선하였습니다
(I2C 1602 캐릭터 LCD가 전류를 많이 소모하기 때문에
센서와 동일한 전원으로 연결하면 화면출력이 제대로 되지 않을 수 있기 때문입니다)
자신의 개발환경의 전원에 따라서 적절히 선택해서 테스트 하면 됩니다
예제코드를 살펴보면
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C.h 라이브러를 사용합니다
LiquidCrystal_I2C lcd(0x27, 16, 2);
I2C 1602 캐릭터 LCD 의 I2C 주소는 0x27 입니다
I2C 주소가 틀리다면 I2C 1602 캐릭터 LCD의 백라이트만 들어오고 글씨가 출력되지 않을수 있습니다
꼭 I2C 주소를 확인한 다음 테스트 합니다
I2C 1602 캐릭터 LCD의 I2C 주소 확인하는 방법
int trigPin = 9; // TRIG pin
int echoPin = 8; // ECHO pin
trig핀은 아두이노 9번핀에 , echo핀은 아두이노 8번핀에 연결합니다
void setup() {
lcd.init(); // initialize the lcd
lcd.backlight(); // open the backlight
pinMode(trigPin, OUTPUT); // config trigger pin to output mode
pinMode(echoPin, INPUT); // config echo pin to input mode
}
셋업에서 trig 출력값과 echo의 입력값을 받아서
void loop() {
// generate 10-microsecond pulse to TRIG pin
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// measure duration of pulse from ECHO pin
duration_us = pulseIn(echoPin, HIGH);
// calculate the distance
distance_cm = 0.017 * duration_us;
lcd.clear();
lcd.setCursor(0, 0); // start to print at the first row
lcd.print("Distance: ");
lcd.print(distance_cm);
delay(500);
}
루프에서 cm로 측정값을 변환해서 거리를 lcd.print("Distance: "); lcd.print(distance_cm);
cm로 I2C 1602 캐릭터 LCD에 출력해 줍니다
delayMicroseconds(10);
측정값이 보정되는 딜레이 타임을 확인할 수 있습니다
프로젝트 동영상
'Arduino(아두이노) 활용 강좌' 카테고리의 다른 글
Arduino Uno 로 CDS 조도센서 모듈을 사용해서 LED와 Buzzer를 제어해 보기 (0) | 2022.11.04 |
---|---|
Arduino Uno 로 Photo Interrupter 포토인터럽터 센서를 사용해서 LED와 Buzzer 제어해 보기 (0) | 2022.10.25 |
Arduino Uno 로 버튼(스위치)과 TTP223B 터치센서를 사용해서 3색 RGB LED 제어해 보기 (0) | 2022.09.26 |
Arduino Uno 로 BH1750 조도센서를 사용해서 Light Meter 만들어 보기 (1) | 2022.09.22 |
Arduino Uno 로 조이스틱 모듈(Joystick Module)을 사용해 SG90 마이크로 서보모터 제어해 보기 (0) | 2022.08.26 |
댓글