极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14120|回复: 3

OCROBOT入门教程010--光控LED

[复制链接]
发表于 2014-4-25 16:08:42 | 显示全部楼层 |阅读模式
本帖最后由 董董soul 于 2016-10-27 10:58 编辑

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

光敏电阻

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

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

下图就是一个光敏电阻




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



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


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

  7. void loop() {
  8.   val = analogRead(photocellPin);    //从传感器读取值
  9.   if(val<=512){      //512=2.5V,想让传感器敏感一些的时候,把数值调高,想让传感器迟钝的时候把数值调低。
  10.     digitalWrite(ledPin, HIGH); //当val小于512(2.5V)的时候,led亮。
  11.   }
  12.   else{
  13.     digitalWrite(ledPin, LOW);
  14.   }
  15. }
复制代码

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2014-6-3 10:22:13 | 显示全部楼层
为什么这里读取模拟2#引脚直接用2就可以了,而不用A2? 这样不会和数字2#引脚混淆吗?

还是因为analogRead本身默认就是模拟引脚?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-3 23:52:04 | 显示全部楼层
kevin0512cn 发表于 2014-6-3 10:22
为什么这里读取模拟2#引脚直接用2就可以了,而不用A2? 这样不会和数字2#引脚混淆吗?

还是因为analogRe ...

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 03:33 , Processed in 0.042996 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表