Код для поиска

Урок 20/31: Отображение расстояния ультразвукового датчика на LCD1602

Урок 20/31: Отображение расстояния ультразвукового датчика на LCD1602

Этот проект демонстрирует, как объединить ультразвуковой датчик расстояния HC-SR04 с дисплеем LCD1602, поддерживающим I2C, для создания системы измерения расстояния в реальном времени. К концу этого руководства у вас будет работающее устройство, которое непрерывно измеряет и отображает расстояние до объекта в сантиметрах. Это базовый навык в электронике на Arduino, поскольку он сочетает ввод данных с датчика с визуальным выводом.

Sunfounder 20-LCD1602-ultrasonic

Эта практическая схема может использоваться в различных реальных приложениях, включая:

  • Создание интеллектуального помощника при парковке, который помогает оценить расстояние до стены или другого транспортного средства.
  • Создание простого монитора уровня жидкости в резервуаре путем измерения расстояния от верха до поверхности.
  • Разработка автоматического дозатора дезинфицирующего средства для рук или безконтактной мусорной корзины, которая открывается при приближении объекта.
  • Создание базовой охранной сигнализации, которая срабатывает, когда кто-то входит в определенную зону.

Оборудование и компоненты

Для сборки этого проекта вам понадобятся следующие компоненты:

  • Плата Arduino (например, Uno)
  • Дисплей LCD1602 с модулем интерфейса I2C
  • Ультразвуковой датчик расстояния HC-SR04
  • Соединительные провода
  • Макетная плата (необязательно, для более удобных соединений)

Понимание LCD1602 и I2C

LCD1602 — это популярный дисплей, способный отображать 16 символов в строке на двух строках. Модуль «I2C» на его задней панели является значительным преимуществом, поскольку он уменьшает количество контактов, необходимых для управления дисплеем, с 6 или более до всего 2 для связи (SDA и SCL) и 2 для питания (VCC и GND). Это упрощение делает проводку гораздо чище и освобождает ценные цифровые контакты на вашем Arduino для других датчиков, таких как ультразвуковой, используемый в этом проекте. (на видео в 01:30)

Модуль I2C также имеет небольшой потенциометр для регулировки контрастности дисплея. Если вы включите дисплей и ничего не увидите, попробуйте повернуть этот винт, пока текст не станет видимым. (на видео в 02:47)

Руководство по подключению

LCD1602_wiring_ultrasonic_bb

Подключение компонентов несложное. Модуль I2C на LCD имеет четыре контакта, которые необходимо подключить к Arduino. Ультразвуковой датчик также имеет четыре контакта.

Вот разбивка соединений:

Модуль I2C LCD1602 к Arduino:

  • GND к GND на Arduino
  • VCC к 5V на Arduino
  • SDA к A4 на Arduino
  • SCL к A5 на Arduino

Ультразвуковой датчик HC-SR04 к Arduino:

  • VCC к 5V на Arduino
  • Trig к цифровому контакту 12 на Arduino
  • Echo к цифровому контакту 11 на Arduino
  • GND к GND на Arduino

Схема подключения для этого проекта показана в видео.

Установка необходимых библиотек

Этот проект использует две важные библиотеки. Первая, LiquidCrystal_I2C, необходима для управления ЖК-дисплеем и не входит в состав Arduino IDE по умолчанию. Вы можете загрузить ее по ссылке, указанной в описании видео, или с веб-сайта Robojax. (на видео в 06:16)

Вторая библиотека, NewPing, используется для взаимодействия с ультразвуковым датчиком. Она упрощает процесс отправки сигнала и чтения времени эха. Обе библиотеки можно установить через Менеджер библиотек Arduino IDE, перейдя в Скетч -> Подключить библиотеку -> Управление библиотеками и выполнив поиск по их названиям.

Объяснение кода

Этот скетч объединяет функциональность ЖК-дисплея и ультразвукового датчика. Код структурирован так, чтобы его можно было легко настроить под вашу конкретную схему.

В верхней части кода вы найдете ключевые переменные, которые могут потребовать настройки:

// Установите адрес LCD 0x27 для дисплея 16 символов и 2 строк
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);

#define TRIGGER_PIN  12  // Контакт Arduino, подключенный к контакту trigger на ультразвуковом датчике.
#define ECHO_PIN     11  // Контакт Arduino, подключенный к контакту echo на ультразвуковом датчике.
#define MAX_DISTANCE 190 // Максимальное расстояние, которое мы хотим измерить (в сантиметрах).
  • Адрес LCD (0x27): Это I2C-адрес вашего ЖК-модуля. Большинство модулей используют 0x27, но некоторые могут использовать 0x3F. Если на вашем дисплее ничего не отображается, возможно, вам потребуется запустить скетч сканера I2C, чтобы найти правильный адрес и обновить это значение. (на видео в 08:11)
  • TRIGGER_PIN и ECHO_PIN: Они определяют цифровые контакты Arduino, подключенные к контактам Trig и Echo ультразвукового датчика. Если вы используете другие контакты, измените эти определения.
  • MAX_DISTANCE: Это устанавливает максимальное расстояние в сантиметрах, которое будет измерять датчик. HC-SR04 может измерять до 400-500 см, но установка более низкого значения может повысить точность и надежность показаний, особенно для коротких расстояний.

В функции 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] Поиск I2C-адреса вашего LCD
  • [11:10] Примеры LCD: мигающий курсор и пользовательские символы
  • [18:51] Пример LCD: последовательный вывод и прокрутка текста
  • [24:36] Отображение температуры и влажности DHT11 на LCD
  • [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.

Вещи, которые могут вам понадобиться

Файлы📁

Библиотеки Arduino (zip)

Руководство пользователя