极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 93439|回复: 37

arduino学习笔记9 - 光控LED实验

  [复制链接]
发表于 2011-7-15 20:45:29 | 显示全部楼层 |阅读模式
本帖最后由 董董soul 于 2016-12-12 11:44 编辑

光敏电阻

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

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

下图就是一个光敏电阻




本次实验设计的效果是,当光照正常的时候led灯是灭的,当周围变暗时led灯变亮。

因为光敏电阻受不同光照影响变化很大,所以本次实验的参数是在60W三基色节能灯照射下实验(无日光照射),同样亮度的日光下光敏电阻的阻值会比日光灯下低不少,估计和不同光的波段有关系。不同环境下实验使用的参数不同,大家根据原理进行调整。

实验前先测量一下当前环境下光敏电阻的亮阻值与暗阻值

下图是测出来的LED亮阻值,为9.1KΩ



下图是测出来的LED暗阻值,为32.4KΩ


硬件连接图如下





根据测出来的亮阻9.1KΩ,暗阻32.4KΩ。选定分压电阻为10KΩ。因为当有遮挡物的后,阻值会变大。假设亮阻为10KΩ(对于光敏电阻来说,与测量出来的9.1KΩ差别不大,计算起来更加方便了),分压阻值为10K欧姆。模拟2号口所测量的触发电压为10KΩ分压电阻的,在5V电源供电下,亮与暗转换的触发电压为5×10÷(10+10)=2.5V。当光线越暗,光敏电阻的阻值也就越大,分压两端电压也就越小。所以触发条件就为≤2.5V。(不同光照条件下触发电压不同,请根据实验环境进行调整。

程序代码如下

  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
回复

使用道具 举报

发表于 2011-7-20 11:54:24 | 显示全部楼层
太简单,没意思,不好玩
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-7-20 12:13:50 | 显示全部楼层
偶是谁 发表于 2011-7-20 11:54
太简单,没意思,不好玩

嘿嘿,现在我正在写arduino驱动1602液晶的,今天应该可以发出来初稿~~~比这个复杂很多~~蛮好玩的
回复 支持 反对

使用道具 举报

发表于 2011-11-27 00:11:40 | 显示全部楼层
呵呵。高手说话就是不一样哈。但是也要考虑下我们这些初学者哈。我感觉 这个很神奇呢。见笑了。感谢楼主发表此文!
回复 支持 反对

使用道具 举报

发表于 2011-12-15 10:02:37 | 显示全部楼层
亮阻值为9.1kΩ<分压电阻10kΩ,那么就算光敏电阻达到最大值,也不会比分压电阻分得的电压大,那分压电阻分得的电压应该始终>2.5V才对啊
回复 支持 反对

使用道具 举报

发表于 2012-1-12 16:00:09 | 显示全部楼层
暗阻32.4KΩ吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-1-12 16:48:55 | 显示全部楼层
bzzdzc 发表于 2012-1-12 16:00
暗阻32.4KΩ吧

改正过来了
回复 支持 反对

使用道具 举报

发表于 2012-1-16 23:31:18 | 显示全部楼层
亮阻值为9.1kΩ<分压电阻10kΩ,那么就算光敏电阻达到最大值,也不会比分压电阻分得的电压大,那分压电阻分得的电压应该始终>2.5V才对啊


本实验是光线暗的时候触发LED发光  暗阻32.4KΩ >>分压电阻10KΩ 根据串联电路分压原理 阻值越大分得的电压也越大 分压电阻上的电压越小  所以利用检测到的电压<2.5V判断触发LED 没有错啊
回复 支持 反对

使用道具 举报

发表于 2012-2-3 19:27:07 | 显示全部楼层
本帖最后由 iamted 于 2012-2-3 19:48 编辑

好玩!!

謝謝您了
回复 支持 反对

使用道具 举报

发表于 2012-3-22 22:25:18 | 显示全部楼层
这么简单我都弄不出来,
回复 支持 反对

使用道具 举报

发表于 2012-4-14 17:14:33 | 显示全部楼层
不错,小白学习了~
回复 支持 反对

使用道具 举报

发表于 2012-4-21 12:31:19 | 显示全部楼层
  val = analogRead(photocellPin);    //从传感器读取值
为什么是从传感器取值,读取的不是模拟2引脚的值吗?
val=anlogRead(2);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-4-21 14:06:28 | 显示全部楼层
正_初 发表于 2012-4-21 12:31
val = analogRead(photocellPin);    //从传感器读取值
为什么是从传感器取值,读取的不是模拟2引脚的值 ...

模拟2读取光敏电阻的分压值
回复 支持 反对

使用道具 举报

发表于 2012-4-21 22:12:56 | 显示全部楼层
弘毅 发表于 2012-4-21 14:06
模拟2读取光敏电阻的分压值

明白了 谢谢老师  电路看错了 嘿嘿  还以为2口读的是固定电阻两端的电压呢  !!
回复 支持 反对

使用道具 举报

发表于 2012-5-25 21:55:00 | 显示全部楼层
把开关值换个方向,就是达文西的经典“这个手电筒有光的时候就亮,没光的时候呢?绝对不亮!!!”
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 20:51 , Processed in 0.054963 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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