mBlock & Arduino(8)光敏电阻、亮度感应器与光线追踪器

光敏电阻(Photo-sensitive resistor)的电阻值与光线有关,照射于感光面的光线亮度增加时,电阻值会变小,亮度减少时电阻值会加大,其原理是光线照射于半导体,原本稳定的电子受到激发而成为自由电子,常见的材料为硫化镉(Cds)或硒化镉(CdSe),因而常用 Cds 代表光敏电阻。

mBlock & Arduino(8)光敏电阻、亮度感应器与光线追踪器_第1张图片

亮度感应器

由于光敏电阻会因为光照而使得电阻发生改变,若对光敏电阻施以电压,两端的电压就会因为光照发生的电阻值改变,使得压降也跟着变化,我们可以利用这个特性来制作亮度感应器,

mBlock & Arduino(8)光敏电阻、亮度感应器与光线追踪器_第2张图片

如上图的电路设计,输出脚位的电压值会是5 * R2/(R1 + R2),一般光敏电阻的电阻变化,大概是在 10M Ω(黑暗)到 1K Ω(置于阳光下)左右(如果直接以强光接近照射,电阻值还会更低一些),如果要精确地量测照度与电阻的关系,可以用专用照度计来量得照度与电阻之间的关系。


在这边就简单一点,我在目前室内合适的亮度下,量得的光敏电阻值约为 3K Ω 上下,按照上图的话,输出脚位的电压值会是在 3.8 V 左右,接到 Ardunio 的类比输入脚位,应当可以量得 800 左右的数值,你可以如下设计电路:

mBlock & Arduino(8)光敏电阻、亮度感应器与光线追踪器_第3张图片

只要设计一个简单的小程式,就是阳春的照度计了 … XD

mBlock & Arduino(8)光敏电阻、亮度感应器与光线追踪器_第4张图片

当然,这边的照度值不是公定的照度单位,只是从类比输入脚位量得的值,仅供亮度的相对参考,试着增强或遮挡至光敏电阻的光线,你就会看到数值会有不同的变化:

mBlock & Arduino(8)光敏电阻、亮度感应器与光线追踪器_第5张图片

如果亮度感应器的敏感度设计的好一些,搭配自走车,就可以做个简单的循迹车了。

简易光线追踪器

如果会实作简单的亮度感应器,那么就可以用多个亮度感应器,来实作简单的光线追踪了,例如,可使用两个亮度感应器,侦测左右两边的亮度差异,如果两边亮度差异在一定范围内,例如 50 以内,两边 LED 就同时亮,表示亮度差不多,若左边比右边的亮度高 50 以上,就亮左边,反之就是亮右边的 LED,你可以如下设计电路:

mBlock & Arduino(8)光敏电阻、亮度感应器与光线追踪器_第6张图片

程式的撰写则可以如下:

mBlock & Arduino(8)光敏电阻、亮度感应器与光线追踪器_第7张图片

因为我手边仅有的两个光敏电阻规格不同,同样的光源下,测出来的值不太一样,左边那颗比右边那颗约少了 150 左右,因此,在程式中我做了些修正 … XD

感谢CodeData用户:caterpillar的贡献 著作权归作者所有

整理:宁波家电物联网云平台,中科极动云

你可能感兴趣的:(mBlock & Arduino(8)光敏电阻、亮度感应器与光线追踪器)