Arduino基础入门篇11—光控灯
本篇介绍光敏电阻,通过模拟输入采集环境光强来控制LED灯亮度,做一个无需人为干预的自动控制设备。
传感器是一种检测装置,能感受并采集到被测量的信息,在当下物联网、智能家居中占据重要地位。一切智能化、自动化设备、各种云计算大数据分析中最基础的就是数据,数据从何而来,绝大多数都来自传感器。其中光敏电阻可算是最简单的传感器之一了。
光敏电阻是一种电阻值随照射光强度增加而下降的电阻,基于其内部光电效应,光照越强电阻值越小,光照越弱,电阻值越大。
1. 实验材料
- Uno R3开发板
- 配套USB数据线
- 面包板及配套连接线
- 1个LED灯
- 1个220Ω限流电阻
- 1个光敏电阻
- 1个1K普通电阻
我们将光敏电阻作为一个电阻跟一个普通电阻串联,根据串联分压的方法,通过analogRead() 读取其电压。
2. 实验步骤
根据原理图搭建电路。
直插LED灯正极连接限流电阻,电阻另一端连接开发板第10引脚,LED灯负极接开发板GND。光敏电阻一端接GND,电阻一端接5V,光敏电阻和普通电阻相接,然后接入A0引脚。
实验原理图如下图所示:
实物连接图如下图所示:
新建sketch,拷贝如下代码替换自动生成的代码并进行保存。
/*AutoLed通过光敏电阻检测环境光,进而控制LED灯亮度
*/int ledPin = 10;int sensorValue = 0; //保存读到的传感器模拟值
int ledValue = 0; //保存LED灯占空比void setup()
{pinMode(ledPin, OUTPUT); //数字口要选择带~号的具有pwm功能的输出口
}void loop()
{sensorValue = analogRead(A0); //读取A0模拟口的数值ledValue = map(sensorValue, 400, 800, 0, 200); //将400到800之间的数据映射成0到200之间的数据analogWrite(ledPin, ledValue); //PWM控制LED灯亮度delay(100);
}
连接开发板,设置好对应端口号和开发板类型,进行程序下载。
3. 实验现象
遮挡光敏电阻,LED灯变亮,无遮挡下,LED灯亮度变暗。
4. 实验分析
通过analogRead()读取光敏电阻与普通电阻串联分压后的电压数据,使用map()函数做重新映射,然后使用analogWrite()函数改变LED灯的亮度。
根据串联分压,光敏电阻上的电压值为R1/(R1+R2) * 5V。
通过测试发现遮挡和不遮挡的情况下,模拟输入的范围大概在400~800之间,所以map()函数里面区间为[400,800],由于电源波动或外界干扰等原因,输出的数据可能也会受到一定的影响,你得到的区间可能有变化,需要多次调整测试来达到理想效果。
更多内容,欢迎关注我的公众号。 微信扫一扫下方二维码即可关注:
Arduino基础入门篇11—光控灯相关推荐
- arduino 光控灯_Arduino基础入门篇11—光控灯
阅读本文大概需要3分钟. 本篇介绍光敏电阻,通过模拟输入采集环境光强来控制LED灯亮度,做一个无需人为干预的自动控制设备. 传感器是一种检测装置,能感受并采集到被测量的信息,在当下物联网.智能家居中占 ...
- Arduino基础入门篇12—火焰报警器
本篇介绍火焰传感器,通过火焰传感器感知周围环境是否存在明火,控制蜂鸣器对环境火焰进行报警提示. 1. 实验材料 Uno R3开发板 配套USB数据线 面包板及配套连接线 1个有源蜂鸣器 1个10KΩ电 ...
- 自学Arduino UNO串口(制造光控灯)
一.Arduino串口介绍 串口用于不同设备间互相传输数据.比如,可以在电脑上实时输入指令,Arduino 板做出相应的反应,Arduino 板正在执行的工作也能实时反应在电脑上. 二.Arduino ...
- Arduino基础入门篇09—会呼吸的灯
本篇使用Arduino模拟输出功能,通过PWM脉宽调制来控制LED灯亮度,使其呈现呼吸灯效果. 1. 模拟信号 数字信号是以0.1表示的电平不连续变化的信号,而模拟信号则是用连续变化的物理量来表示信息 ...
- Arduino基础入门篇06—流动的LED灯
上一篇介绍了Arduino数字I/O引脚及相关函数,并点亮了板载LED灯.本篇将使用面包板搭建电路,多个LED灯配合显示流动效果. 1. 实验材料 Uno R3开发板 配套USB数据线 面包板及配套连 ...
- Arduino基础入门篇10—电位器控制LED灯
本篇介绍Arduino模拟输入功能,通过读取电位器输入的电压值来控制LED灯的亮度. 模拟输入引脚是带有ADC(Analog-to-Digital Converter,模数转换器)功能的引脚.它可以将 ...
- Arduino基础入门篇07—按键控制LED灯
前面介绍了Arduino数字I/O,通过控制数字引脚输出来控制LED灯亮灭.本篇将介绍数字I/O的输入功能,通过检测按键状态来控制LED灯亮灭,把LED的亮灭变成人为可控制的. 1. 实验材料 Uno ...
- Arduino基础入门篇16—数码管库的使用
Arduino官方提供了丰富的驱动库来方便对外设进行操作,很多爱好者也在开源精神下提供了很多第三方库.本篇介绍数码管库的使用,通过读取电位器输入,使用数码管库驱动数码管显示对应数据. SevSeg库是 ...
- Arduino基础入门篇14—跳动的数码管
本篇介绍数码管显示器件,通过控制一位共阴极数码管动态显示数字0到9来了解数码管的使用. 1. 数码管介绍 数码管,又称LED数码管,是常见的用来显示数字的电子器件.通常由八段发光二极管封装在一起组成& ...
最新文章
- Linux 更新vim
- wxpython使窗口重新显示_wxpython刷新窗口按按钮
- 面向 Android 软件开发套件(SDK)的 x86 Android* 系统映像许可协议
- 容器技术Docker K8s 6 阿里云容器服务体系介绍
- 分享一个鼠标宏软件(XMouseButtonControl)用于替换logitech option等软件
- 测试结果OK、POK、NG、NT的意义
- html网页打开慢的解决方法,真实案例讲述导致网站打开速度慢的原因及解决方法...
- 第39级台阶回溯算法c语言,回溯39级台阶
- java中jlaber用法_laber的for属性
- 计算机教程文档,计算机应用基础教程-20210323002444.doc-原创力文档
- R语言 图片识别文字 PNG JPG图片转文字 OCR tesseract包
- 2D前景触发与3D触发结合案例
- 如果你有个程序员男友,那么送这12 款键盘绝对不会错
- 一文了解循环神经网络
- 番茄花园版侵权被禁,用户怎么办?
- Win10无法搜索应用解决
- 设计中的设计-设计的意义
- 【数学】SSL_1335 蛋糕切割
- 《数据结构-李云清版》笔记 - 概论
- python画圣诞老人简笔画_利用Python绘制有趣的万圣节南瓜怪效果