TOF10120 Лазерный датчик расстояния (ToF)

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

Расстояние I2C UART

Обзор

TOF10120 — это современный высокопроизводительный лазерный датчик расстояния, использующий технологию Time-of-Flight (ToF) для измерения дистанции с высокой точностью и скоростью. Благодаря поддержке одновременно двух интерфейсов — I2C и UART — он легко интегрируется в любые проекты: от робототехники до систем умного дома.

TOF10120 — это компактный лазерный модуль, способный измерять расстояние до 180 см. Технология ToF позволяет ему работать стабильно независимо от цвета или отражающей способности объекта. В отличие от ИК-датчиков интенсивности, он измеряет время полета фотона, что дает погрешность всего ±2 см.

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

О лазерном датчике TOF10120

TOF10120 — это универсальное решение для измерения расстояния в диапазоне от 10 см до 180 см. Главная “фишка” модуля — наличие двух интерфейсов: вы можете использовать его как устройство на шине I2C вместе с другими датчиками, либо как автономный модуль, передающий данные по UART (Serial).

Ключевые особенности

  • Точное измерение – Стабильные показания независимо от условий освещения (в помещении).
  • Двойной интерфейс – Поддержка I2C и UART для максимальной гибкости.
  • Низкое потребление – Менее 30 мА в режиме работы, подходит для батарейных устройств.
  • Широкое питание – Работает от 3.3В до 5В, полностью совместим с ESP32 и Arduino.

🔗 Идеально подходит для роботов-пылесосов, систем бесконтактного управления и измерения уровня заполнения емкостей.

Где купить

Приобретите TOF10120

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

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

Полные технические параметры датчика TOF10120.

Диапазон
10 см ... 180 см
Точность
±2 см
Интерфейс
I2C / UART
Питание
3.3В ... 5.0В
Скачать datasheet (PDF)
Конфигурация пинов

Распиновка TOF10120

Модуль TOF10120 имеет 6 выводов, поддерживающих как I2C, так и UART.

Схема распиновки
Модуль TOF10120
Распиновка TOF10120
Всего пинов
6
Советы
  • I2C адрес фиксированный: 0x52.
  • Выберите один протокол для работы и надежно закрепите модуль.
Таблица выводов
Пины Название Тип Описание
1 VCC Power Питание (3.3В - 5.0В).
2 GND Power Общий провод.
3 SDA I2C Data Линия данных I2C.
4 SCL I2C Clock Линия синхронизации I2C.
5 TX UART TX Передача данных UART.
6 RX UART RX Прием данных UART.
Схема подключения

Подключение TOF10120 к ESP32

Мы рекомендуем использовать режим I2C для экономии пинов и возможности подключения других устройств на ту же шину.

Подключение TOF10120 к ESP32
Протокол
I2C (Default)
Адрес I2C
0x52
Таблица соединений (I2C)
Вывод TOF10120 Куда Вывод ESP32 Описание
VCC 3V3 Питание модуля.
GND GND Общий минус.
SDA GPIO21 Линия данных I2C.
SCL GPIO22 Такты I2C.
Устранение неполадок

Отладка TOF10120

Основные проблемы и способы их решения.

Нестабильные показания
Проверьте соосность датчика. Он должен быть направлен перпендикулярно цели. Избегайте прямых солнечных лучей.
Датчик не виден по I2C
Проверьте адрес 0x52. Убедитесь, что SDA и SCL подключены правильно.
Примеры программирования

Программирование TOF10120

Arduino IDE (I2C)

C++
#include <Wire.h>

#define TOF10120_ADDR 0x52

void setup() {
  Serial.begin(115200);
  Wire.begin();
  Serial.println("TOF10120 Distance Sensor Example");
}

void loop() {
  uint16_t distance = getDistance();
  if (distance != 0) {
    Serial.print("Distance: ");
    Serial.print(distance);
    Serial.println(" mm");
  } else {
    Serial.println("Sensor error or no object detected.");
  }
  delay(500);
}

uint16_t getDistance() {
  Wire.beginTransmission(TOF10120_ADDR);
  Wire.write(0x00);
  Wire.endTransmission();
  
  Wire.requestFrom(TOF10120_ADDR, 2);
  if (Wire.available() == 2) {
    uint16_t distance = Wire.read() << 8 | Wire.read();
    return distance;
  }
  return 0;
}

ESPHome

YAML
sensor:
  - platform: tof10120
    name: "TOF10120 Distance"
    update_interval: 500ms