一起DIY——LED的应用《测光》-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8852|回复: 10

一起DIY——LED的应用《测光》

[复制链接]
发表于 2013-1-30 16:13 | 显示全部楼层 |阅读模式
本帖最后由 珜羽 于 2013-1-30 16:15 编辑

先看视频:


硬件准备:
你需要arduino的板子一张。红色LED一只。导线两根。以及日光灯。(成都阴霾天光照不足)
QQ截图20130130160841.jpg

源代码如下,也可以下载附件的方式获得:

[mw_shl_code=c,true]char led1 = 2;//定义连接到LED的负极的引脚
char led2 = 3;//定义连接到LED的正极的引脚
unsigned int time;
void setup() {
  pinMode(led2, OUTPUT);
  Serial.begin(9600);
}
void loop() {
  time=0;
  digitalWrite(led2, LOW);
  pinMode(led1, OUTPUT);
  digitalWrite(led1, HIGH);
  delayMicroseconds(10);//反向给LED结电容充电10us
  pinMode(led1, INPUT);//设置为高阻检测结电容放电时间
  while(digitalRead(led1)==1){
    if(++time>=2500){//检测时间参数(没有效果就修改这个数字,加大直到60000)
      pinMode(led1, OUTPUT);
      digitalWrite(led1, LOW);
      digitalWrite(led2, HIGH);
      delay(5);//闪速严重的话减小这个值,但是亮度会降低
      break;
    }
  }
  Serial.println(time);//调试输出观察,可以注释掉
}[/mw_shl_code]

LED.zip (813 Bytes, 下载次数: 23)

编译下载后你就能看到视频中的效果了。

有光照的样子:


手遮挡光线的样子:
QQ截图20130130161135.jpg

串口调试器看到的数据:
QQ截图20130130153344.gif


如果你看不到,请修改代码中的参数。
原理,LED在制造的时候有一个叫做结电容的东西,还有一个叫内阻,或者叫光电阻的东西,环境光越两,这个电阻越小。
当我们给结电容充电到5V后,IO切换到高阻态去检测这个电容上的电压。电容的电荷通过内阻泄放,电压下降,降低到IO的低电平感应阙值的时间与外界光照有关系(和温度也有关系)。
更多的原理请点击这里

PS:没有效果的时候请按照下面的步骤检查:
1.检查硬件连接对了没,或者LED是否接反了。
2.看看你的LED是否为红色,我测试过暖白需要检测的时间较长,效果不好,其他颜色的没有测试。因为最近天气原因光照不好,没法测试日光下效果如何,所以开了灯补光。
3.其他原因请大家交流。

 楼主| 发表于 2013-1-30 16:16 | 显示全部楼层
沙发,占楼备用。
发表于 2013-1-30 16:17 | 显示全部楼层
板凳{:soso_e104:}
 楼主| 发表于 2013-1-30 16:19 | 显示全部楼层
[mw_shl_code=c,true]  if(++time>=2500){//检测时间参数(没有效果就修改这个数字,加大直到60000)[/mw_shl_code]

建议将这个常数调整到65535,然后观察串口调试器的输出,来看看环境光照情况,然后调整合适的阙值。
发表于 2013-1-30 21:11 | 显示全部楼层
裸奔的LED要加个电阻吧
发表于 2013-1-30 21:53 | 显示全部楼层
有意思哈,变成反达文西之等
 楼主| 发表于 2013-1-30 23:50 | 显示全部楼层
yyy_zc 发表于 2013-1-30 21:11
裸奔的LED要加个电阻吧

有条件加上最好,没条件的话问题也不会很大,占空比很小的。
 楼主| 发表于 2013-2-1 17:27 | 显示全部楼层
测试了,在LED两端并联5M的电阻,放电的时间明显变短了。不能检测详细的值,但是做开关的话速度快多了。从2000减少到32.
发表于 2013-2-1 22:32 来自手机 | 显示全部楼层
手机党看不到视频啊呜呜呜
发表于 2013-2-22 14:51 | 显示全部楼层
很创意的东西,有一定利用价值,学习了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2025-1-1 20:40 , Processed in 0.088336 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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