|
发表于 2009-3-11 21:13:53
|
显示全部楼层
本帖最后由 rainjoe 于 2009-3-11 21:32 编辑
Light Sensor实际上是一个光传感器,有两种采样模式,一种是直接感受环境光强,一种是开启光源后再感受反射光强,但是用来识别颜色是不准确的,通常所看到的物体的颜色,实际上是物体表面吸收了照射到它上面的白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。而之所以能够依靠光传感器来分辨一些颜色的原因是因为每种颜色对光传感器发出光线的反射程度不一致,例如黑色大部分吸收,白色大部分反射,这是两种最极端的情况,其他的颜色就不一定了,如果你需要一些比较精确的数值,可以利用函数set_sensor_mode将光传感器设置为SENSOR_MODE_RAW,它的理论范围是10位二进制数,即0-1023但实际有效范围只有300(很亮)-800(很暗),可以区分出一些颜色,给你个例子程序,用BCC编译后直接下载到NXT可以运行,具体数值显示在液晶屏上
#include "NXCDefs.h"
task main()
{
int light,light2;
SetSensorLight(IN_2);
SetSensorMode(IN_2,SENSOR_MODE_RAW);
while(true)
{
light=Sensor(IN_2);
NumOut(60,LCD_LINE2,light,true);
Wait(2000);
}
}
记得不要搞错端口哦,光传感器接2端口 |
|