Обзор
TOF10120 — это современный высокопроизводительный лазерный датчик расстояния, использующий технологию Time-of-Flight (ToF) для измерения дистанции с высокой точностью и скоростью. Благодаря поддержке одновременно двух интерфейсов — I2C и UART — он легко интегрируется в любые проекты: от робототехники до систем умного дома.
TOF10120 — это компактный лазерный модуль, способный измерять расстояние до 180 см. Технология ToF позволяет ему работать стабильно независимо от цвета или отражающей способности объекта. В отличие от ИК-датчиков интенсивности, он измеряет время полета фотона, что дает погрешность всего ±2 см.
О лазерном датчике TOF10120
TOF10120 — это универсальное решение для измерения расстояния в диапазоне от 10 см до 180 см. Главная “фишка” модуля — наличие двух интерфейсов: вы можете использовать его как устройство на шине I2C вместе с другими датчиками, либо как автономный модуль, передающий данные по UART (Serial).
⚡ Ключевые особенности
- Точное измерение – Стабильные показания независимо от условий освещения (в помещении).
- Двойной интерфейс – Поддержка I2C и UART для максимальной гибкости.
- Низкое потребление – Менее 30 мА в режиме работы, подходит для батарейных устройств.
- Широкое питание – Работает от 3.3В до 5В, полностью совместим с ESP32 и Arduino.
🔗 Идеально подходит для роботов-пылесосов, систем бесконтактного управления и измерения уровня заполнения емкостей.
Приобретите TOF10120
Характеристики TOF10120
Полные технические параметры датчика TOF10120.
Распиновка TOF10120
Модуль TOF10120 имеет 6 выводов, поддерживающих как I2C, так и UART.
- 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 | Описание |
|---|---|---|---|
| VCC | → | 3V3 | Питание модуля. |
| GND | → | GND | Общий минус. |
| SDA | → | GPIO21 | Линия данных I2C. |
| SCL | → | GPIO22 | Такты I2C. |
Отладка TOF10120
Основные проблемы и способы их решения.
Нестабильные показания
Датчик не виден по I2C
Программирование TOF10120
Arduino IDE (I2C)
C++
Arduino IDE (I2C)
#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
ESPHome
sensor:
- platform: tof10120
name: "TOF10120 Distance"
update_interval: 500ms