对于创客作品,检测环境光线强度应该是一个比较常见的需求。今天我试用了Vishay(威世)公司的TEMT6000传感器,此传感器能够很好的满足这个需求。
TEMT6000是一个贴片元件,我使用的是SparkFun制作生产的一个转接板,非常小巧,有三个引脚,分别是GND、VCC和SIG,支持3-5V电压,SIG输出为模拟电压量,输出电压与环境光线强度成正比,我们可以使用MCU的ADC来进行读取。
转接板的原理图如下:
下面是我的测试电路,主控制器是我司研发生产的Arduino开发板。测试功能是通过光线传感器来控制一个LED的点亮与熄灭。
下面是Arduino程序源码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
void setup() { pinMode(7,OUTPUT); digitalWrite(7,LOW); Serial.begin(9600); } void loop() { int light=analogRead(A0); Serial.println(light); delay(500); if(light < 30) { digitalWrite(7,HIGH); } else { digitalWrite(7,LOW); } } |
TEMT6000传感器的灵敏度很高,从Datasheet数据可以看出其线性也很好。根据我的实践,在办公室开灯的情况下,analogRead读取到的数值大概在20-40左右,当使用高亮LED来近距离直射传感器时,analogRead读取的结果能够搞到1000,当用手完全遮蔽传感器时,analogRead读取的结果是0。
参考资料: