Урок 20/31: Отображение расстояния ультразвукового датчика на LCD1602
Этот проект демонстрирует, как объединить ультразвуковой датчик расстояния HC-SR04 с дисплеем LCD1602, поддерживающим I2C, для создания системы измерения расстояния в реальном времени. К концу этого руководства у вас будет работающее устройство, которое непрерывно измеряет и отображает расстояние до объекта в сантиметрах. Это базовый навык в электронике на Arduino, поскольку он сочетает ввод данных с датчика с визуальным выводом.
Эта практическая схема может использоваться в различных реальных приложениях, включая:
- Создание интеллектуального помощника при парковке, который помогает оценить расстояние до стены или другого транспортного средства.
- Создание простого монитора уровня жидкости в резервуаре путем измерения расстояния от верха до поверхности.
- Разработка автоматического дозатора дезинфицирующего средства для рук или безконтактной мусорной корзины, которая открывается при приближении объекта.
- Создание базовой охранной сигнализации, которая срабатывает, когда кто-то входит в определенную зону.
Оборудование и компоненты
Для сборки этого проекта вам понадобятся следующие компоненты:
- Плата Arduino (например, Uno)
- Дисплей LCD1602 с модулем интерфейса I2C
- Ультразвуковой датчик расстояния HC-SR04
- Соединительные провода
- Макетная плата (необязательно, для более удобных соединений)
Понимание LCD1602 и I2C
LCD1602 — это популярный дисплей, способный отображать 16 символов в строке на двух строках. Модуль «I2C» на его задней панели является значительным преимуществом, поскольку он уменьшает количество контактов, необходимых для управления дисплеем, с 6 или более до всего 2 для связи (SDA и SCL) и 2 для питания (VCC и GND). Это упрощение делает проводку гораздо чище и освобождает ценные цифровые контакты на вашем Arduino для других датчиков, таких как ультразвуковой, используемый в этом проекте. (на видео в 01:30)
Модуль I2C также имеет небольшой потенциометр для регулировки контрастности дисплея. Если вы включите дисплей и ничего не увидите, попробуйте повернуть этот винт, пока текст не станет видимым. (на видео в 02:47)
Руководство по подключению
Подключение компонентов несложное. Модуль 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() код выполняет следующие шаги:
- Он использует функцию
sonar.ping_cm()для измерения расстояния и сохраняет его в переменнойdistance. - Он очищает LCD и выводит текст "Robojax.com" на первой строке.
- Затем он устанавливает курсор на вторую строку и выводит "Distance: ".
- Наконец, он перемещает курсор на позицию 10 во второй строке, чтобы вывести измеренное значение
distance, за которым следует "cm".
Команда delay(200) в конце цикла управляет тем, как часто датчик снимает новые показания и обновляет дисплей.
Демонстрация кода
После загрузки кода на ваш Arduino LCD загорится и начнет отображать расстояние. Вы можете проверить настройку, приближая и удаляя руку или объект от ультразвукового датчика. Число на экране должно обновляться в реальном времени, показывая расстояние в сантиметрах. (в видео на 38:07)
Связанные проекты из этого видео
- Урок 20/31: Использование LCD1602 с Arduino для вывода текста | Robojax
- Урок 20/31: Отображение температуры и влажности с DHT11 на LCD-экране
- Урок 20/31: Отображение напряжения на LCD1602
Главы
- [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] Демонстрация отображения ультразвукового расстояния
This code has not been parsed yet. Please return to the admin panel to parse it.
Вещи, которые могут вам понадобиться
-
АмазонкаSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Амазонка
-
Амазонка
-
Амазонка
-
Амазонка
Ресурсы и ссылки
-
ДокументацияДокументация для набора 3 в 1 IoT/умный автомобиль/обучающий комплект SunFounderdocs.sunfounder.com
-
Внешний
Файлы📁
Библиотеки Arduino (zip)
-
Исходный код обучающего набора 3-в-1 Smart Car от SunFounder
3in1-kit-main-v2.zip12.80 MB
Руководство пользователя
-
SunFounder 3-in-1 Arduino Smart Car assembly manualThis document shows step by step assembly of SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB