HC-SR04
사람이 들을 수 있는 소리의 주파수는 약 20 ~ 20만Hz입니다. 20만Hz 보다 높은 음은 초음파라고 합니다. 초음파는 사람이 직접 들을 수 없습니다. 박쥐의 경우는 이 초음파가 반사되는 메아리를 이용하여 장애물을 피한다고 알려져 있습니다.
초음파는 직진성이 강하기 때문에 주변부의 메아리와 잘 혼동되지 않는다는 장점도 있습니다. 즉, 원하는 방향에서만 메아리가 되돌아 옵니다.
가장 대표적인 HC-SR04는 인터넷 몰에서 흔하게 볼 수 있으며, 가격도 많이 저렴합니다.
I2C 모듈
LCD 디스플레이를 작동시키기 위해서는 상당히 많은 케이블을 연결해야 합니다.
LCD용 I2C 모듈은 통신 프로토콜을 변형시켜 적은 수의 케이블로도 LCD를 동작시키게 해 줍니다.
아래 사진의 왼쪽이 일반적인 LCD 디스플레이이고, 오른쪽이 I2C 모듈이 적용된 디스플레이입니다.
라이브러리 설치
I2C 모듈을 쉽게 제어하기 위한 라이브러리를 추가합니다. (이미 설치된 경우 건너뜁니다.)
- https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library에 접속하여 라이브러리 zip 파일을 다운로드 합니다.
- Arduino-LiquidCrystal-I2C-library-master.zip 라이브러리 파일을 아두이노에 추가합니다.
아두이노 > 스케치 > 라이브러리 포함하기 > .ZIP 라이브러리 추가…
연결 방법
소스 코드
#include #include LiquidCrystal_I2C lcd(0x3F, 16, 2); int trigPin = 3; int echoPin = 2; void setup() { lcd.begin(); lcd.backlight(); pinMode(trigPin, OUTPUT); // 센서 Trig 핀 pinMode(echoPin, INPUT); // 센서 Echo 핀 } void loop() { digitalWrite(trigPin, HIGH); // 센서에 Trig 신호 입력 delayMicroseconds(10); // 10us 정도 유지 digitalWrite(trigPin, LOW); // Trig 신호 off long duration = pulseIn(echoPin, HIGH); // Echo pin: HIGH->Low 간격을 측정 long distance = duration / 29 / 2; // 거리(cm)로 변환 char buf[20]; snprintf(buf, sizeof(buf), "Distance %4d cm", distance); lcd.setCursor(0, 0); lcd.println(buf); delay(200); }
만약 디스플레이가 제대로 표시되지 않으면, 소스 파일의 네번째 줄을 다음과 같이 수정합니다. (접속 어드레스 변경 작업)
LiquidCrystal_I2C lcd(0x29, 16, 2);
을 아래와 같이 수정
LiquidCrystal_I2C lcd(0x3F, 16, 2);
목차
- 아두이노 고급키트 무작정 따라하기
- 아두이노 8×8 LED Matrix
- 아두이노 Remote Control Test
- 아두이노 Stepper Speed Control
- 아두이노 RFID Reading Test
- 아두이노 LCD Test
- 아두이노 DHT11 온습도 센서 테스트
- 아두이노 3-Color LED Test
- 아두이노 4×4 Keypad Test
- 아두이노 DS1302 Realtime Clock Test
- 아두이노 시계
- 아두이노 초음파 센서 HC-SR04
- 아두이노 초음파 거리측정기
- 아두이노 LCD Test (I2C 모듈 사용)
- 아두이노 초음파 거리측정기 (I2C LCD 사용)
- 아두이노 LM35 온도계 (with Processing)
- 아두이노 미로게임 (MPU-6050 + 프로세싱)