코드 검색

레슨 20/31: 초음파 거리를 LCD1602에 표시하기

레슨 20/31: 초음파 거리를 LCD1602에 표시하기

이 프로젝트는 HC-SR04 초음파 거리 센서와 I2C 지원 LCD1602 디스플레이를 결합하여 실시간 거리 측정 시스템을 만드는 방법을 보여줍니다. 이 가이드를 끝까지 따라 하면 물체까지의 거리를 센티미터 단위로 지속적으로 측정하고 표시하는 작동 장치를 갖게 됩니다. 이는 센서 입력과 시각적 출력을 결합하므로 Arduino 전자공학의 기초 기술입니다.

Sunfounder 20-LCD1602-ultrasonic

이 실용적인 설정은 다음과 같은 다양한 실제 응용 분야에서 사용할 수 있습니다:

  • 벽이나 다른 차량까지의 거리를 측정하는 데 도움이 되는 스마트 주차 보조 장치 만들기.
  • 탱크 상단에서 표면까지의 거리를 측정하여 간단한 액체 레벨 모니터 구축.
  • 물체가 가까이 오면 열리는 자동 손 소독제 디스펜서 또는 비접촉 쓰레기통 개발.
  • 특정 구역에 누군가 들어오면 작동하는 기본 보안 경보 시스템 구축.

하드웨어 및 부품

이 프로젝트를 구축하려면 다음 부품이 필요합니다:

  • Arduino 보드 (예: Uno)
  • I2C 인터페이스 모듈이 있는 LCD1602 디스플레이
  • HC-SR04 초음파 거리 센서
  • 점퍼 와이어
  • 브레드보드 (선택 사항, 연결을 더 쉽게 하기 위해)

LCD1602 및 I2C 이해하기

LCD1602은 두 줄에 각각 16자를 표시할 수 있는 인기 있는 디스플레이입니다. 뒷면의 "I2C" 모듈은 디스플레이 제어에 필요한 핀 수를 6개 이상에서 통신용 2개(SDA 및 SCL)와 전원용 2개(VCC 및 GND)로 줄여주므로 큰 장점입니다. 이 단순화 덕분에 배선이 훨씬 깔끔해지고 이 프로젝트에서 사용하는 초음파 센서와 같은 다른 센서를 위해 Arduino의 귀중한 디지털 핀이 확보됩니다. (비디오 01:30 참조)

I2C 모듈에는 디스플레이의 대비를 조정하는 작은 가변 저항도 있습니다. 디스플레이에 전원을 공급했는데 아무것도 보이지 않으면 텍스트가 보일 때까지 이 나사를 돌려보세요. (비디오 02:47 참조)

배선 가이드

LCD1602_wiring_ultrasonic_bb

부품 연결은 간단합니다. LCD의 I2C 모듈에는 Arduino에 연결해야 하는 4개의 핀이 있습니다. 초음파 센서에도 4개의 핀이 있습니다.

연결에 대한 자세한 설명은 다음과 같습니다:

LCD1602 I2C 모듈을 Arduino에 연결:

  • GND를 Arduino GND에 연결
  • VCC를 Arduino 5V에 연결
  • SDA를 Arduino A4에 연결
  • SCL을 Arduino A5에 연결

HC-SR04 초음파 센서를 Arduino에 연결:

  • VCC를 Arduino 5V에 연결
  • Trig를 Arduino 디지털 핀 12에 연결
  • Echo를 Arduino 디지털 핀 11에 연결
  • GND를 Arduino GND에 연결

이 프로젝트의 배선 다이어그램은 비디오에서 참조됩니다.

필요한 라이브러리 설치

이 프로젝트는 두 가지 중요한 라이브러리에 의존합니다. 첫 번째인 LiquidCrystal_I2C는 LCD를 제어하는 데 필요하며 Arduino IDE에 기본적으로 포함되어 있지 않습니다. 비디오 설명에 제공된 링크나 Robojax 웹사이트에서 다운로드할 수 있습니다. (비디오 06:16 참조)

두 번째 라이브러리인 NewPing은 초음파 센서와 인터페이스하는 데 사용됩니다. 핑을 보내고 에코 시간을 읽는 과정을 단순화합니다. 두 라이브러리 모두 Arduino IDE의 라이브러리 관리자에서 Sketch -> Include Library -> Manage Libraries로 이동하여 이름을 검색하면 설치할 수 있습니다.

코드 설명

이 스케치는 LCD와 초음파 센서의 기능을 결합합니다. 코드는 특정 설정에 맞게 쉽게 구성할 수 있도록 구조화되어 있습니다.

코드 상단에서 조정해야 할 주요 변수를 찾을 수 있습니다:

// 16자 2줄 디스플레이용 LCD 주소를 0x27로 설정
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);

#define TRIGGER_PIN  12  // 초음파 센서의 트리거 핀에 연결된 Arduino 핀.
#define ECHO_PIN     11  // 초음파 센서의 에코 핀에 연결된 Arduino 핀.
#define MAX_DISTANCE 190 // 핑을 보낼 최대 거리(센티미터).
  • LCD 주소 (0x27): 이는 LCD 모듈의 I2C 주소입니다. 대부분의 모듈은 0x27을 사용하지만 일부는 0x3F를 사용할 수 있습니다. 디스플레이에 아무것도 표시되지 않으면 I2C 스캐너 스케치를 실행하여 올바른 주소를 찾고 이 값을 업데이트해야 할 수 있습니다. (비디오 08:11 참조)
  • TRIGGER_PIN 및 ECHO_PIN: 이는 초음파 센서의 Trig 및 Echo 핀에 연결된 Arduino 디지털 핀을 정의합니다. 다른 핀을 사용하는 경우 이러한 정의를 변경하세요.
  • MAX_DISTANCE: 이는 센서가 측정할 최대 거리를 센티미터 단위로 설정합니다. HC-SR04는 최대 400-500cm까지 측정할 수 있지만 더 낮은 값을 설정하면 특히 짧은 거리에서 측정의 정확성과 신뢰성이 향상될 수 있습니다.

loop() 함수에서 코드는 다음 단계를 수행합니다:

  1. sonar.ping_cm() 함수를 사용하여 거리를 측정하고 이를 distance 변수에 저장합니다.
  2. LCD를 지우고 첫 번째 줄에 "Robojax.com" 텍스트를 출력합니다.
  3. 그런 다음 커서를 두 번째 줄로 이동하고 "Distance: "를 출력합니다.
  4. 마지막으로 두 번째 줄의 10번째 위치로 커서를 이동하여 측정된 distance 값을 출력한 다음 "cm"을 출력합니다.

루프 끝에 있는 delay(200)은 센서가 새 측정값을 읽고 디스플레이를 업데이트하는 빈도를 제어합니다.

코드 시연

코드가 Arduino에 업로드되면 LCD가 켜지고 거리 표시를 시작합니다. 손이나 물체를 초음파 센서에 가까이 또는 멀리 움직여 설정을 테스트할 수 있습니다. 화면의 숫자는 실시간으로 업데이트되어 거리를 센티미터 단위로 표시해야 합니다. (영상 38:07에서)

이 비디오의 관련 프로젝트

챕터

  • [00:00] LCD1602 소개 및 프로젝트 개요
  • [01:30] LCD1602 하드웨어 및 I2C 모듈 설명
  • [03:14] LCD 핀 배치 및 I2C 주소 구성
  • [05:28] LCD1602 배선도
  • [06:16] 필요한 LCD 라이브러리 설치
  • [07:24] LCD에 텍스트를 출력하는 기본 코드
  • [08:11] LCD의 I2C 주소 찾기
  • [11:10] LCD 예제: 깜빡이는 커서 및 사용자 정의 문자
  • [18:51] LCD 예제: 시리얼 표시 및 스크롤 텍스트
  • [24:36] LCD에 DHT11 온도 및 습도 표시
  • [33:00] LCD에 가변 저항의 전압 표시
  • [35:56] 초음파 센서 코드와 LCD 결합
  • [38:07] 초음파 거리 표시 시연

이미지

Sunfounder car assembled
Sunfounder car assembled
Sunfounder 20-LCD1602-ultrasonic
Sunfounder 20-LCD1602-ultrasonic
LCD1602_wiring_ultrasonic_bb
LCD1602_wiring_ultrasonic_bb
921-Lesson 20/31: Displaying distance from ultrasonic sensor on LCD1602
언어: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

자원 및 참고자료

파일📁

아두이노 라이브러리 (zip)

사용자 매뉴얼