查看: 6439|回复: 10

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

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

先看视频:


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

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

kittenblock中小学创客名师推荐的图形化编程软件

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);//调试输出观察,可以注释掉
}


LED.zip (813 Bytes, 下载次数: 23)
 楼主| 发表于 2013-1-30 16:16 | 显示全部楼层
沙发,占楼备用。
发表于 2013-1-30 16:17 | 显示全部楼层
板凳{:soso_e104:}
 楼主| 发表于 2013-1-30 16:19 | 显示全部楼层

kittenblock中小学创客名师推荐的图形化编程软件

  if(++time>=2500){//检测时间参数(没有效果就修改这个数字,加大直到60000)


建议将这个常数调整到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 | 显示全部楼层
很创意的东西,有一定利用价值,学习了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

Blynk与m5stack basic以及uiflow的交互玩法
Blynk与m5stack basic以及
Blynk与m5stack basic以及uiflow的交互玩法 [准备工作我们假设玩家已经熟悉下面的准备
求大佬帮助
求大佬帮助
有没有大佬能帮我把这个转化成c语言的啊,萌新完全看不懂 顺便弱弱的问一句如何将多个
VSCode写Arduino提示无法打开源文件"avr/pgmspace.h"
VSCode写Arduino提示无法
整个程序就这点内容,只是做个测试。 Ctrl+Alt+U的上传是没有问题。但是这里有个错误
【干货分享】mega2560原理图PCB图纸altium designer18
【干货分享】mega2560原理
分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
【原创】 drawbot平面关节
这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表