光线

光线传感器用于检测光亮度,返回 100 以内的数值,代表检测到光线的强度,默认情况下,传感器不亮灯,直接调用 Get_Light_Value 检测环境中光线到传感器的强度。由于白色比黑色的反射光更强,传感器点亮灯光 Set_Operate_Mode ,照射物体后检测光线强度,可以分辨出黑白 或者 其他反射光强度不同的情况。根据这个原理,光线传感器可以应用于巡线、光源跟踪等等场景。

注意:使用发射光模式时,可以根据实际情况调整传感器安装距离,安装距离不一样,照射出来的光斑不同,一般使用距离是5mm ~ 20mm。

常用的 API

/**
 * @brief: 获取光电传感器相对数值(0~100)
 * 
 * @param channel: 传感器接口编号
 * @return float : 返回值
 */
float SENSOR_LIGHT::Get_Light_Value(unsigned char channel )

/* 
 * 设置光电传感器的模式
 * 
 * @parameters: 
 *      LED亮灯可设置等级为 0 ~ 100,可以设置对应的LED亮度等级,用于不同模式
 * @return: 
 *      0 写数据正常
 *      非0 写数据出错
 */
byte SENSOR_LIGHT::Set_Operate_Mode(byte optMode,unsigned char channel)

/**
 * @brief: 设置光电传感器的最大值或最小值
 * 
 * @param mode: 0 设置值为最大值,1 设置值为最小值
 * @param value: 新设置的数值(0~100)
 * @param sensorChannel: 传感器接口编号
 */
void SENSOR_LIGHT::Set_Extremum(int mode, float value, uint8_t sensorChannel)

/**
 * @brief 设置光线检测的最大值和最小值
 * 
 * @param max_value 最大值
 * @param min_value 最小值
 * @param sensorChannel 
 */
void SENSOR_LIGHT::SetDetectRange(unsigned char max_value, unsigned char min_value, unsigned char sensorChannel)


Tbot I 系统编程示范

    Sensor_Light.Set_Operate_Mode(100, 1);
    Sensor_Light.Set_Extremum(0, 25, 1); // 设置最大值

    int light_value;
    light_value = Sensor_Light.Get_Light_Value(1);
    Serial.printf("light: %d\n", light_value);


示例程序: DoubleTask.ino

results matching ""

    No results matching ""