Arduino GY-US42
тел. +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²CSoftwareSerial/Serial— для UARTpulseIn()— для 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);
}
Комментарии и замечания
- Идентификация режима: фактический интерфейс решается конкретной платой-обвязкой. Перед заказом уточняйте у продавца — идут в основном версии V1 (UART/PWM). Чисто I²C-версии встречаются редко.
- Слепая зона <20 см — при измерении близких объектов возможны «0» или ошибки; рекомендуется держать дистанцию >20 см.
- Помехо-защита: не работайте с сенсором рядом с другими ультразвуковыми датчиками (перекрёстные помехи).
- Температурная компенсация в бюджетных клонах может отсутствовать — на открытом воздухе погрешность растёт с температурой.
- Продающиеся под названием GY-US42 клоны иногда прошиты под 115200 бод (Amazon-совместимые версии от ST); библиотеки с этой скоростью бывают нужны.
Если планируете использовать I²C — уточните адрес при покупке; не все клоны подтверждают 0x70.