弘毅 发表于 2014-4-25 16:08:42

OCROBOT入门教程010--光控LED

本帖最后由 董董soul 于 2016-10-27 10:58 编辑

光强度感应会在很多场合用到,感光元件中光敏电阻使用是最多的我们这节课就来做一个光控LED。

光敏电阻

光敏电阻又称光导管,常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。这些制作材料具有在特定波长的光照下,其阻值迅速减小的特性。这是由于光照产生的载流子都参与导电,在外加电场的作用下漂移运动,从而使光敏电阻的阻值迅速下降。

光敏电阻的工作原理基于内光电效应。在半导体光敏材料的两端装上电极引线,将其封装在带有透明窗的管壳里就构成光敏电阻,为了增加灵敏度,两电极常做成梳状。在有光照射时,射入的光强,电阻减小,射入的光弱,电阻增大。

下图就是一个光敏电阻



电路方面,我们用一颗10K电阻与光敏电阻相连,串联的两头接5V和GND,两个原件的连接处接A2端口,然后在D12端口加一颗LED作为指示灯。



int photocellPin = 2;    //定义变量photocellsh=2,为电压读取端口。
int ledPin = 12;   //定义变量ledPin=12,为led电平输出端口
int val = 0;       //定义val变量的起始值


void setup() {
pinMode(ledPin, OUTPUT);//使ledPin为输出模式
}

void loop() {
val = analogRead(photocellPin);    //从传感器读取值
if(val<=512){      //512=2.5V,想让传感器敏感一些的时候,把数值调高,想让传感器迟钝的时候把数值调低。
    digitalWrite(ledPin, HIGH); //当val小于512(2.5V)的时候,led亮。
}
else{
    digitalWrite(ledPin, LOW);
}
}

最后我们通过视频看一下效果

http://player.youku.com/player.php/sid/XNzEyNzk5NjQw/v.swf

kevin0512cn 发表于 2014-6-3 10:22:13

为什么这里读取模拟2#引脚直接用2就可以了,而不用A2? 这样不会和数字2#引脚混淆吗?

还是因为analogRead本身默认就是模拟引脚?

弘毅 发表于 2014-6-3 23:52:04

kevin0512cn 发表于 2014-6-3 10:22 static/image/common/back.gif
为什么这里读取模拟2#引脚直接用2就可以了,而不用A2? 这样不会和数字2#引脚混淆吗?

还是因为analogRe ...

analogRead()默认就只有模拟引脚,所以写A2与2都是可以使用的。数字引脚上无法使用analogRead。

mlyl 发表于 2017-2-13 08:38:04

:):(:):):):):):):):)
页: [1]
查看完整版本: OCROBOT入门教程010--光控LED