LDR光敏电阻怎么接线?Arduino做光控自动开灯测光照强度的电压分压原理和代码

2026-10-19 09:45:23 36阅读

想让设备“看见”光线——比如天黑自动开灯、天亮自动关,最便宜的就是LDR光敏电阻。它本身是个会随光照变化阻值的元件:亮时电阻小、暗时电阻大,配合一个普通电阻做成分压,就能让Arduino读出光照的强弱。这篇把原理、接线、代码一次讲清。

为什么要用分压电路接LDR

Arduino的模拟脚读的是电压而不是电阻,所以LDR不能直接接到A0上。标准做法是把LDR和一个固定电阻(常用10k)组成电压分压器:LDR一端接5V,另一根脚接到A0,再从A0挂一个10k电阻到地。这样光照一变,LDR阻值变、A0的电压就跟着变,Arduino用analogRead就能读出0到1023的一个数。

LDR光敏电阻电压分压电路接Arduino A0示意图

这张电路图画得特别直观:5V进LDR、LDR另一脚和10k电阻的公共点接A0、电阻另一头到地。光照越强LDR阻值越小,A0电压越高,读数越大——正好和“天黑读数小、天亮读数大”对应,写判断逻辑时思路就清楚了。

光控自动开灯的代码思路

代码也很简单:loop里用analogRead(LDR_PIN)读一次,得到一个0到1023的值,跟一个阈值threshold比:小于阈值(说明暗了)就把LED或继电器打开,大于就关掉。想更稳,可以做一个滞回——比如暗到200才开灯、亮到400才关灯,避免在临界光线下来回闪。实际阈值要按环境先打印几次实际读数来标定。

黄昏时分自动点亮的路灯配合LDR光感模块的场景

真实场景就是这副样子——黄昏光线暗下去,接在系统里的小路灯自己就亮起来了。把这个逻辑里的LED换成继电器,就能控制真正的大功率路灯或家用灯,一个低成本的光控环境到处都是用武之地。

两个使用小提醒

一是LDR对单点光比较敏感,个别角度遮一下读数会跳,做门感应判断可以多读几次取平均,或把LDR头部套个磨砂透光罩让采样更均匀。二是如果想让“暗→读数变大”而不是变小,把LDR和固定电阻的位置对调一下就行,两种接法都存在,写代码前先想清楚自己的接线对应哪个逻辑方向。


作者:菜鸟也想玩
链接:https://www.aiddithome.com/p/c22da8050fdb2.html
本作版权归作者所有,未经允许请勿转载。若存在违规行为,您可以点击 “举报”。


登录 后发表评论
4条评论
学生党玩机
1楼 · 2026-10-19 09:45:24

拿它当自动小夜灯超简单,改继电器还能控大功率

默默点赞的路人
2楼 · 2026-10-19 09:45:24

读数可以先打印几组标定阈值,别瞎猜一个数

周五下班搞一搞
3楼 · 2026-10-19 09:45:23

分压电路懂了就不怕,光照强读数高,天黑读数低

好说好说
4楼 · 2026-10-19 09:45:23

加个滞回就不闪了,不然傍晚光线临界时灯一直跳