DocsTech
/
NONEDISPLAY
/

~ cd hc-sr04 и arduino: схема подключения, библиотеки и скетч

Ультразвуковой датчик HC-SR04 — один из самых популярных модулей для измерения расстояния с помощью микроконтроллеров Arduino. Этот датчик широко используется в проектах робототехники, системах безопасности, а также в автоматизации и IoT-решениях. HC-SR04 использует ультразвуковые волны для определения расстояния до объекта и подходит для измерения расстояний от 2 см до 400 см. В этой статье вы узнаете, как подключить HC-SR04 к Arduino, какие библиотеки использовать для работы с ним, и как написать код для получения данных о расстоянии.

Краткое описание HC-SR04

HC-SR04 — это ультразвуковой датчик, который работает по принципу эхолокации. Он излучает ультразвуковой сигнал, который отражается от препятствий и возвращается к датчику. На основе времени, затраченного сигналом на прохождение туда и обратно, модуль рассчитывает расстояние до объекта.

Основные характеристики HC-SR04:

Этот датчик стал популярным среди любителей Arduino благодаря простоте использования, надежности и доступной цене.

Схема подключения HC-SR04 к Arduino

Подключение ультразвукового датчика HC-SR04 к Arduino достаточно простое и требует всего четырех проводов.

Распиновка HC-SR04:

  1. VCC — Подача питания (обычно 5 В).
  2. GND — Заземление.
  3. Trig — Входной сигнал для запуска ультразвукового импульса.
  4. Echo — Выходной сигнал, указывающий время возврата ультразвукового сигнала.

Для работы с HC-SR04 нам потребуется два цифровых пина Arduino. Один пин будет отправлять сигнал на датчик, а второй — считывать ответный сигнал.

Таблица 1. Подключение HC-SR04 к разным платам Arduino

HC-SR04Arduino NanoArduino UnoArduino Mega
1VCC5V5V5V
2GNDGNDGNDGND
3TrigD9D9D9
4EchoD10D10D10

Необходимые библиотеки для работы с HC-SR04 на Arduino

NewPing — библиотека для Arduino, оптимизированная для работы с ультразвуковыми датчиками, такими как HC-SR04. Она обеспечивает простое управление таймингом сигналов, позволяет точно измерять расстояние до объектов, предотвращает ошибки при высоких скоростях измерений, и поддерживает функцию пингования для нескольких датчиков.

Код для Arduino для работы с HC-SR04 и измерения расстояния

Теперь, когда мы подключили HC-SR04 к Arduino и установили библиотеку NewPing, можно перейти к написанию кода а C/C++. В этом разделе представлен базовый пример кода, который позволяет считывать расстояние, используя наш ультразвуковой датчик.
...
Копировать
#include <NewPing.h>

// Определяем пины для Trig и Echo
#define TRIG_PIN 9
#define ECHO_PIN 10

// Максимальное расстояние (в см), которое мы будем измерять
#define MAX_DISTANCE 400

// Создаем объект NewPing для работы с HC-SR04
NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

void setup() {
  Serial.begin(9600); // Инициализируем последовательное соединение для вывода данных
  Serial.println("Измерение расстояния с HC-SR04");
}

void loop() {
  // Получаем расстояние в сантиметрах
  int distance = sonar.ping_cm();

  // Если объект в пределах видимости
  if (distance > 0) {
    Serial.print("Расстояние до объекта: ");
    Serial.print(distance);
    Serial.println(" см");
  } else {
    Serial.println("Объект не обнаружен в пределах диапазона.");
  }

  delay(1000); // Задержка между измерениями
}

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

  1. Подключение библиотеки: В начале кода мы подключаем библиотеку NewPing.
  2. Определение пинов: Указываем пины для Trig и Echo (D9 и D10).
  3. Создание объекта NewPing: Создаем объект sonar, с помощью которого будет происходить работа с датчиком.
  4. Чтение расстояния: В loop() вызываем метод ping_cm() для получения расстояния в сантиметрах. Если объект находится в пределах диапазона, выводим значение в монитор порта, в противном случае выводим сообщение, что объект не обнаружен.
  5. Задержка: Устанавливаем задержку в 1 секунду между измерениями для удобства восприятия данных.

Заключение

Ультразвуковой датчик HC-SR04 в сочетании с Arduino — это простой и доступный способ измерять расстояние до объектов. Благодаря низкой стоимости и простоте использования, он идеально подходит для создания разнообразных проектов, таких как роботы, системы контроля уровня, системы автоматического открывания дверей и многое другое. В данной статье мы разобрали подключение HC-SR04 к Arduino, установку библиотеки NewPing и привели пример кода для получения данных о расстоянии.

Часто задаваемые вопросы (FAQ)

1. Какой диапазон измерений поддерживает HC-SR04?
HC-SR04 поддерживает измерение расстояния от 2 см до 400 см, однако точность лучше на расстояниях до 200 см.

2. Можно ли использовать HC-SR04 на улице?
Нет, ультразвуковой датчик HC-SR04 не предназначен для использования на улице, так как погодные условия могут повлиять на его работу. Лучше использовать его в помещении.

3. Можно ли подключить несколько HC-SR04 к одному Arduino?
Да, можно подключить несколько HC-SR04 к одному Arduino, но для каждого потребуется отдельный набор пинов Trig и Echo.

4. Какая точность у HC-SR04?
HC-SR04 имеет точность ±3 мм, что позволяет использовать его в проектах, требующих высокой точности.

5. Что делать, если датчик не отображает корректное расстояние?
Убедитесь, что все подключения сделаны правильно и что нет препятствий, которые могут искажать сигнал. Также можно проверить код и отладить его, используя Serial Monitor.

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

Главная
Курсы
Вебинары
Анализ рынка вакансий в сфере RTL-дизайна в России: тренды, спрос и перспективы
LinuxCNC: Преимущества и применение в станкостроении и автоматизации
Алгоритм Хаффмана: Теория, методология и практическая реализация для эффективного сжатия данных
Chisel vs. SystemVerilog: Новый взгляд на проектирование цифровых схем
Подключение датчика ZMPT101B к Arduino: схема, настройка и пример кода
Подключение MAX6675 к Arduino: схема, библиотеки и примеры кода
Подключение и настройка MPU6050 к Arduino: схема, библиотеки и скетч
Подключение VL53L0X к Arduino: полное руководство по лазерному датчику расстояния
Подключение компас HMC5883L к Arduino: схема, библиотеки и пример кода
Подключение ACS712 к Arduino: схема, библиотеки и скетчи
Подключение ADXL345 к Arduino: схема, библиотеки и код
Подключение датчика INA219 к Arduino: схема, библиотеки и примеры кода
HC-SR04 и Arduino: схема подключения, библиотеки и скетч
Assertion-Based Verification(ABV): основные понятия, принцип работы и примеры
Подключение HX711 к Arduino: схема, библиотеки и код
Подключение DHT22 к Arduino: схема, код и необходимые библиотеки
Как подключить RCWL-0516 к Arduino: схема, библиотеки и скетч
Универсальная Методология Верификации (UVM): Описание, Особенности и Пример Использования
DS18B20: Подключение к Arduino, Библиотеки и Скетч
Методологии верификации HDL-кода: Основы, Преимущества и Популярные Подходы
Роль ПЛИС в Алготрейдинге и Высокочастотной Торговле
Lint, CDC, RDC, LEC, Power Analyzer, STA и DFT для HDL
Пиратство плохо! Мне так сказали…
Применение Icarus Verilog для тестирования с входными данными
Ключевые параметры для выбора цифроаналогового преобразователя (ЦАП)
Все о КНФ и ДНФ: Понятие, Примеры и Применение
Импликация: Что Это, Таблица Истинности и Применение в Информатике
Стрелка Пирса: Что Это за Логическая Операция и Таблица Истинности
Штрих Шеффера: Полное Руководство
STM32F103 с использованием HAL и I2C: Подробная конфигурация и пример кода
Подключение DHT11 к ESP32: Схема, Библиотеки и Пример Кода
ESP8266 I2C: настройка для master и slave
Подключение DHT11 к Arduino и Вывод на LCD 1602 I2C: Схема и Скетч
Подключение DHT11 к Arduino: Схема, Библиотеки и Скетч
ESP32 I2C: Настройка кода под master и slave
TM1637 Подключение к Arduino: Полное Руководство
Подключение часов DS3231 к Arduino и LCD 1602 I2C
Arduino: Часы Реального Времени DS1302 на LCD 1602 I2C
ESP32 SPI: Объявление SPI на ESP32 с Примером Кода
ESP8266 SPI: полная инструкция SPI на ESP8266
Протокол SPI: Регистровая Логика, Передача Данных и Режимы
Демультиплексор: принцип работы, схема и основы
Счетчики с синхронным и асинхронным сбросом на Verilog
Знаковость signed в Verilog: примеры, синтаксис, оптимизация
Директива Define в Verilog: Синтаксис, Примеры и Применение
Таблицы истинности триггеров: JK, RS, D и T
Fork и begin в Verilog: обзор и различия
Posedge и Negedge в Verilog: Синтаксис и Функциональность
Verilog always: Синтаксис, Примеры и Применение
Wire в Verilog: Основы использования, синтаксис и примеры кода
Блокирующие и неблокирующие присваивания в Verilog
Verilog Assign: что делает этот оператор?
Verilog Parameter: Ключевой Инструмент Оптимизации
Многомерные массивы в Verilog
Case Verilog
Дешифратор. Принцип работы и Примеры
Модули в Verilog
Описание FIFO. Примеры на Verilog и С++
Закрыть