Водонепроницаемый ультразвуковой датчик расстояния A02YYUW

Узнайте всё о водонепроницаемом ультразвуковом датчике расстояния A02YYUW: технические характеристики, распиновка, схемы подключения, документация и примеры кода для ESP32, Arduino, Raspberry Pi

Расстояние UART

Обзор

A02YYUW — это высококачественный водонепроницаемый ультразвуковой датчик расстояния, предназначенный для работы в суровых промышленных и уличных условиях. Благодаря степени защиты IP67, он устойчив к воздействию воды и пыли, что делает его идеальным решением для мониторинга уровня жидкости, обнаружения объектов на открытом воздухе и систем предотвращения столкновений. Датчик использует интерфейс UART для передачи данных, обеспечивая высокую точность и стабильность измерений.

A02YYUW — это надежный ультразвуковой модуль с интерфейсом UART, специально разработанный для работы в условиях высокой влажности и загрязнения. Он обеспечивает точные измерения на расстоянии от 3 см до 450 см с разрешением 1 мм, что позволяет использовать его в самых ответственных проектах автоматизации и робототехники.

Датчик A02YYUW
Быстрая навигация
Основные разделы статьи
Примеры кода
Популярные платформы
Где купить

Приобретите A02YYUW

Технические характеристики

Характеристики A02YYUW

Полные технические характеристики водонепроницаемого ультразвукового датчика расстояния A02YYUW.

Интерфейс
UART (9600 бод)
Диапазон
3 см – 450 см
Разрешение
1 мм
Точность
±1 см
Питание
3.3–5.5 В (5 В рек.)
Энергопотребление
<8 мА (средний)
Время отклика
100 мс
Класс защиты
IP67
Скачать полный даташит
Конфигурация пинов

Распиновка A02YYUW

Датчик имеет 4-контактный разъем. Для корректной работы необходимо подключить питание и линии UART TX/RX.

Визуальная диаграмма распиновки
Основная схема
Распиновка A02YYUW
Всего выводов
4
Протокол
UART
Советы
  • Используйте 9600 бод для стабильной связи.
  • Стартовый байт всегда 0xFF.
  • Контрольная сумма в 4-м байте.
Описание выводов
Название Тип Описание Примечание
1 VCC Питание Вход напряжения (3.3–5.5 В) Рекомендуется 5 В
2 GND Земля Общий минус питания Общий GND
3 TX UART TX Передача данных от датчика К RX микроконтроллера
4 RX UART RX Прием данных (опционально) Для настройки или команд
Руководство по подключению

Подключение A02YYUW

Для подключения A02YYUW к ESP32 или Arduino используйте соответствующие пины UART. Не забудьте соединить GND датчика и микроконтроллера.

Схема подключения
Рекомендуемая (UART)
Схема подключения A02YYUW
Подключений
4
Статус
Акспортирует данные
Напряжение
3.3В - 5В (5В лучше)
Таблица соединений (на примере ESP32)
A02YYUW Pin Направление МК Pin (ESP32) Описание
VCC 5V Питание датчика
GND GND Общая земля
TX GPIO16 (RX2) Передача данных от датчика
RX GPIO17 (TX2) Прием данных (не обязателен)
📡 UART: 9600-8N1 💧 Степень защиты: IP67 📏 Диапазон: 3-450 см ⚡ Питание: 3.3-5.5В
Устранение неполадок

Устранение неполадок A02YYUW

Если ваш датчик работает некорректно, проверьте следующие распространенные проблемы.

Датчик возвращает нулевые или случайные данные
Нет стабильных показаний расстояния

Причина: Недостаточное питание или помехи в кабеле.

Решение: Убедитесь, что на датчик подается стабильное питание 5В. Проверьте надежность соединений UART. Если кабель длинный, используйте витую пару или экранированный провод.

Ошибка контрольной суммы (Checksum error)
Данные приходят, но они повреждены

Причина: Проблемы в логике чтения UART или электрические шумы.

Решение: Проверьте код обработки контрольной суммы. Убедитесь, что вы читаете точно 4 байта и начинаете со стартового байта 0xFF. Добавьте фильтрующий конденсатор 100нФ параллельно питанию датчика.

Примеры программирования

Примеры кода A02YYUW

Ниже приведены проверенные примеры кода для работы с датчиком на различных платформах.

Arduino

Arduino / ESP32

Чтение через HardwareSerial

C++
#include <Arduino.h>

// Используем UART2 на ESP32/ESP8266
// Подключение: МК RX (16) <- Датчик TX
#define RXD2 16
#define TXD2 17

HardwareSerial mySerial(2);
unsigned char data[4] = {0};
float distance;

void setup() {
  Serial.begin(115200);
  mySerial.begin(9600, SERIAL_8N1, RXD2, TXD2);
}

void loop() {
  if (mySerial.available()) {
    if (mySerial.read() == 0xff) { // Стартовый байт
      data[0] = 0xff;
      for (int i = 1; i < 4; i++) {
        data[i] = mySerial.read();
      }
      
      // Расчет контрольной суммы
      int sum = (data[0] + data[1] + data[2]) & 0x00FF;
      
      if (sum == data[3]) {
        distance = (data[1] << 8) + data[2];
        Serial.print("Расстояние: ");
        Serial.print(distance / 10); // В см
        Serial.println(" см");
      }
    }
  }
  delay(100);
}

Этот код инициализирует последовательный интерфейс на скорости 9600 бод и считывает пакет из 4 байт. После проверки контрольной суммы значение переводится в сантиметры и выводится в монитор порта.

MicroPython

MicroPython

Универсальный скрипт для ESP32

Python
from machine import UART
import time

# UART на ESP32 (TX=17, RX=16)
uart = UART(2, baudrate=9600, rx=16, tx=17)

while True:
    if uart.any() >= 4:
        data = uart.read(4)
        if data[0] == 0xFF:
            checksum = (data[0] + data[1] + data[2]) & 0xFF
            if checksum == data[3]:
                distance = (data[1] << 8) + data[2]
                print("Расстояние: {} см".format(distance / 10))
            else:
                print("Ошибка CRC")
    time.sleep(0.1)

Скрипт читает входящие байты из буфера UART и выполняет валидацию пакета. Преимущество MicroPython — в простоте отладки “на лету”.

Итоги A02YYUW

Датчик A02YYUW является отличным выбором для проектов умного дома и систем мониторинга, где требуется защита от влаги. Его легко подключить к любому микроконтроллеру с поддержкой UART, а стабильный протокол обмена данными гарантирует точность измерений.

Рекомендации

Используйте питание 5В для обеспечения максимальной дальности измерения (до 4.5 метров). При монтаже убедитесь, что перед сенсором нет препятствий в радиусе 30-40 градусов.

Безопасность

Не погружайте датчик полностью под воду на длительное время. Степень IP67 защищает от брызг и кратковременных погружений, но не гарантирует работу при постоянном давлении воды.