Features
Range: 2 to 50 cm
Dead zone: 0 to 2 cm
Interface: I2C
I2C address: 0x29
Viewing Angle (FOV): 25°
The ability to detect gestures
Protective cover
Two M2 mounting holes
Power supply: 3 to 5 V
Current consumption: 40 mA
Working temperature: -20 to 70°C
Dimensions: 20 x 11 mm
Kit contains
Module with sensor VL6180X
Straight male 6-pin goldpin connector
Male goldpin connector 6-pin angled
Overview
โมดูลเซ็นเซอร์วัดระยะทางแบบ ToF ที่ใช้ชิปรุ่น VL6180X โดยใช้เทคโนโลยี FlightSense ที่สามารถวัดระยะทางแบบสัมบูรณ์ได้โดยไม่ขึ้นกับสีและพื้นผิวของวัตถุที่ตรวจจับ เซ็นเซอร์สามารถวัดระยะทางของวัตถุได้ไกลถึง 50 ซม. โดยมีพื้นที่อับ (dead zone) ในช่วง 0 ถึง 2 ซม. และมีมุมการตรวจจับ 25 องศา นอกจากนี้โมดูลยังมีความสามารถในการตรวจจับท่าทาง (gesture) ด้วย
VL6180 สื่อสารผ่านอินเตอร์เฟซ I2C และผู้ใช้งานสามารถใช้ API (Application Programming Interface) ที่เป็นมิตรและใช้งานง่ายในภาษา C ได้ สามารถนำไปใช้ในแอปพลิเคชันเพื่อตรวจจับการมีอยู่ของวัตถุและสิ่งกีดขวางได้ทั้งในหุ่นยนต์อุตสาหกรรมและโครงสร้างเคลื่อนที่
Arduino Code Example
#include <Wire.h>
// Define TOF050C I2C Address (default is 0x52)
#define TOF050C_ADDR 0x52
void setup() {
Wire.begin(); // Initialize I2C communication
Serial.begin(9600); // Start serial monitor
// Initialize sensor
initTOF050C();
Serial.println("TOF050C Sensor Ready!");
}
void loop() {
uint16_t distance = readDistance();
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" mm");
delay(100); // Read every 100ms
}
void initTOF050C() {
// Send initialization commands
Wire.beginTransmission(TOF050C_ADDR);
Wire.write(0x00); // Register address for configuration
Wire.write(0x01); // Start continuous measurement mode
Wire.endTransmission();
delay(100); // Wait for sensor to initialize
}
uint16_t readDistance() {
uint16_t distance = 0;
uint8_t data[2];
// Request 2 bytes from the sensor
Wire.beginTransmission(TOF050C_ADDR);
Wire.write(0x04); // Distance data register
Wire.endTransmission(false);
Wire.requestFrom(TOF050C_ADDR, 2);
if (Wire.available() >= 2) {
data[0] = Wire.read(); // High byte
data[1] = Wire.read(); // Low byte
// Combine bytes into distance value
distance = (data[0] << 8) | data[1];
}
return distance;
}