你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

[Nucleo] F072RB测环境光强

[复制链接]
shaoziyang 发布时间:2015-1-29 23:48
本帖最后由 shaoziyang 于 2015-1-30 00:05 编辑
  i# f" C: Z4 ?& F9 V0 @
$ u  I" W5 B9 w* `LED除了可以发光,其实也可以测试光强,因为LED也是二极管。当环境光强变化时,LED上的结电压会发生变化,因此可以通过这个方法测量光强。虽然这种方法精度不是太高,但在有些情况下还是有用的。
9 k- a3 L8 u6 E- s5 F. m
$ {- u) H; x; f+ G, qST Nucleo F072RB上只有一个用户LED,它接在PA_5,它也是ADC_IN5。利用F072带有的12位ADC,可以很灵敏的测出光强变化。下面程序就演示这个方法,程序很简单,但是效果还不错。6 O8 K4 D' G3 m' u3 v* I* A% ]

: ~0 ^( }! e6 I9 T
  1. #include "mbed.h"; D: `! n% Q$ B3 K

  2. + a! n7 \0 E$ u# Z- c
  3. DigitalOut myled(LED1);( a, _' ?) B5 A( ]
  4. 1 U+ f; y5 D4 B( i: Z
  5. AnalogIn Light(LED1);/ t3 q! k# }$ a* \0 r
  6. # R( `. Q/ X3 @! O; R+ g9 E9 W
  7. Serial pc(USBTX,USBRX);0 Y3 o. h. q/ `8 a& L

  8. ; a9 E! B  C) q8 E3 R2 w0 {
  9. int main() {
    * d4 c" O2 b7 X! j, L% }
  10.     myled = 0;
    + g2 |( F1 M5 E- j' K
  11.     while(1) {
    3 H5 h7 M- x3 U1 J  W! k9 g% t4 d
  12.         wait(0.5);, d7 |1 C- v3 u/ T2 m
  13.         pc.printf("%d\r\n", Light.read_u16()>>4);
    & Q! v) i5 S" N4 \
  14.     }
    6 U7 n  \- A4 K' x7 N$ X3 p5 p& @" r/ H
  15. }
复制代码
4 o3 `1 |" {, {# r: U- l$ m  O5 b

: f# ?4 _/ O1 d: _( s  n, ~* z. v8 [1 w) B+ H/ ]$ f% D) |5 @
测试效果- S# U2 O9 v( R
; _# K, ^0 ^/ ?& _* @/ P5 h5 d: H# H' y
4.jpg   U9 W$ f9 k' }- V2 }1 _

7 V) Q4 |# B  w/ ^ ST_Nucleo_F072_TEST.zip (671.1 KB, 下载次数: 8)
收藏 评论8 发布时间:2015-1-29 23:48

举报

8个回答
xyc2690 回答时间:2015-1-30 00:03:32
原理不明白。。。能解释一下吗?
shaoziyang 回答时间:2015-1-30 00:08:35
本帖最后由 shaoziyang 于 2015-1-30 00:11 编辑
; h. ^$ a7 K( B# T; |) l
xyc2690 发表于 2015-1-30 00:03
/ v/ {" D. K  D( ^原理不明白。。。能解释一下吗?
4 o  M& T2 I; ]* O% q  f6 e
当环境光强变化时,LED上的结电压会发生变化,它们存在一个对应关系(非线性),所以可以测光强。
+ g. }8 u, J) `* z' v$ w2 K缺点是变化范围较小,一致性不是特别好,所以不适合测光强具体数值,但是测光强变化,或者测大概光强还是不错的,不用增加任何硬件成本。
! L4 Y# a3 D1 {- |" W
! i+ F; V( y( E! i7 f5 N) k) D1 J$ P( P! r你试试就清楚了,很容易的。+ r( m* y+ ^, I0 n1 m. s
kqh1120 回答时间:2015-1-30 00:23:07
意义何在呢??
shaoziyang 回答时间:2015-1-30 00:26:47
zfz0122 发表于 2015-1-30 00:23
% `% h4 x4 w, @6 E( A6 `意义何在呢??
: n/ ^# c: A7 [% i0 Z+ A3 {" q& s1 t
在要求不高,或者IO不够时,这个方法还是有用的,又不增加任何硬件成本啊。一个LED完成两个功能。
xyc2690 回答时间:2015-1-30 00:27:53
shaoziyang 发表于 2015-1-30 00:086 z/ `, A, P4 v2 ~2 k( a; n3 e
当环境光强变化时,LED上的结电压会发生变化,它们存在一个对应关系(非线性),所以可以测光强。) Y" Q. ?, ]: i! \* j( n
缺点是 ...
( y, G* `+ V! t1 i5 Z2 s, \( L( b
多谢,刚刚去复习了一下PN结
lkl0305 回答时间:2015-1-30 09:38:25
不错啊!
埃斯提爱慕 回答时间:2015-1-30 11:48:28
提示: 作者被禁止或删除 内容自动屏蔽
abb200628 回答时间:2015-2-2 12:55:18
不错,赞一个

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版