Arduino GY-US42

Arduino GY-US42
Артикул: 2504505

производитель: Arduino
Требуется установка или ремонт?

сервисный центр Kypidetali!

тел. +7(499)347-04-82

Описание Arduino GY-US42

Arduino GY-US42 — Ультразвуковой дальномер

Описание

GY-US42 — это компактный ультразвуковой модуль измерения расстояния, построенный на базе сенсора MB1240 (MaxBotix) или его аналога. Модуль работает по принципу эхолокации: излучает ультразвуковой импульс и измеряет время до возврата отражённого сигнала.

Особенность GY-US42 — три режима вывода данных, выбираемых перемычкой или подпайкой на плате:

  • UART (TTL, 9600 бит/с) — читается как серийные данные
  • PWM — ширина импульса пропорциональна расстоянию
  • I²C — адресуемый интерфейс (адрес по умолчанию 0x70)

Модуль часто используется вDIY-проектах: роботы, квадрокоптеры (высота), парктроники, системы автонавигации. Имеет встроенную температурную компенсацию (в зависимости от ревизии).


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

| Параметр | Значение | |---|---| | Напряжение питания | 3.3 – 5.5 В (типично 5 В) | | Потребляемый ток | ~3.4 мА (средний), 11 мА (пик) | | Диапазон измерений | 20 см — 765 см (0.2 – 7.65 м) | | Точность | ±1 см (типовая) | | Разрешение | 1 см | | Частота обновления | до 20 Гц (I²C в slow mode: ~10 Гц) | | Интерфейсы | UART, PWM, I²C | | Частота ультразвука | 42 кГц | | Угол обзора | ~15° (эффективный) | | Рабочая температура | 0…+65 °C | | Размеры | ~22 × 20 × 17 мм | | Дальность слепой зоны | < 20 см |


Парт-номера и маркировки

| Парт-номер / маркировка | Примечание | |---|---| | GY-US42 | Основная маркировка модуля (плата) | | MB1240 | Оригинальный чип MaxBotix (XL-EZ0) внутри | | MB1240-000 | Базовая ревизия MaxBotix | | GY-US42-V1 / V2 | Ревизии платы (V2 чаще с I²C расширением) | | SEN-US42 | Альтернативная маркировка некоторых поставщиков |

⚠️ V1 официально работала только в UART/PWM. Ревизия с полноценным I²C существует, но требует проверки у продавца — на али-клонах интерфейс может отличаться.


Совместимые модели и платформы

  • Arduino — Uno, Nano, Mega 2560, Leonardo, Micro (через SoftwareSerial или Wire)
  • ESP8266 / ESP32 — работа через UART или I²C
  • Raspberry Pi — через UART/GPIO
  • STM32 (Blue Pill, Black Pill)
  • Teensy 3.x / 4.x
  • Micro:bit — с расширением I²C
  • Jetson Nano / Orange Pi

Совместимо с библиотеками:

  • Wire.h (I²C) — для ревизий с I²C
  • SoftwareSerial / Serial — для UART
  • pulseIn() — для PWM-режима

Пример кода (UART режим)

#include <SoftwareSerial.h>

SoftwareSerial sonar(10, 11); // RX, TX
char buf[4];
uint8_t idx = 0;
int distance_cm = 0;

void setup() {
  Serial.begin(9600);
  sonar.begin(9600);
}

void loop() {
  while (sonar.available()) {
    char c = sonar.read();
    if (c == 'R') {           // начало пакета
      idx = 0;
    } else if (idx < 3) {
      buf[idx++] = c;
      if (idx == 3 && buf[2] == '\r') {
        buf[2] = '\0';
        distance_cm = atoi(buf);
        Serial.print("Distance: ");
        Serial.print(distance_cm);
        Serial.println(" cm");
      }
    }
  }
}

Пример кода (PWM режим)

const int sonarPin = 7;

void setup() {
  Serial.begin(9600);
}

void loop() {
  // pulseIn вернёт длительность в мкс: 147 мкс = 1 см
  unsigned long us = pulseIn(sonarPin, HIGH, 30000);
  int distance_cm = us / 147;
  Serial.print(distance_cm);
  Serial.println(" cm");
  delay(100);
}

Комментарии и замечания

  1. Идентификация режима: фактический интерфейс решается конкретной платой-обвязкой. Перед заказом уточняйте у продавца — идут в основном версии V1 (UART/PWM). Чисто I²C-версии встречаются редко.
  2. Слепая зона <20 см — при измерении близких объектов возможны «0» или ошибки; рекомендуется держать дистанцию >20 см.
  3. Помехо-защита: не работайте с сенсором рядом с другими ультразвуковыми датчиками (перекрёстные помехи).
  4. Температурная компенсация в бюджетных клонах может отсутствовать — на открытом воздухе погрешность растёт с температурой.
  5. Продающиеся под названием GY-US42 клоны иногда прошиты под 115200 бод (Amazon-совместимые версии от ST); библиотеки с этой скоростью бывают нужны.

Если планируете использовать I²C — уточните адрес при покупке; не все клоны подтверждают 0x70.

Совместимые модели для Arduino GY-US42

Arduino GY-US42