阅读本文大概需要3分钟。

本篇介绍光敏电阻,通过模拟输入采集环境光强来控制LED灯亮度,做一个无需人为干预的自动控制设备。

传感器是一种检测装置,能感受并采集到被测量的信息,在当下物联网、智能家居中占据重要地位。一切智能化、自动化设备、各种云计算大数据分析中最基础的就是数据,数据从何而来,绝大多数都来自传感器。其中光敏电阻可算是最简单的传感器之一了。

光敏电阻是一种电阻值随照射光强度增加而下降的电阻,基于其内部光电效应,光照越强电阻值越小,光照越弱,电阻值越大。

光敏电阻

1. 实验材料

Uno R3开发板

配套USB数据线

面包板及配套连接线

1个LED灯

1个220Ω限流电阻

1个光敏电阻

1个1K普通电阻

我们将光敏电阻作为一个电阻跟一个普通电阻串联,根据串联分压的方法,通过analogRead() 读取其电压。

串联分压

2. 实验步骤

根据原理图搭建电路。

直插LED灯正极连接限流电阻,电阻另一端连接开发板第10引脚,LED灯负极接开发板GND。光敏电阻一端接GND,电阻一端接5V,光敏电阻和普通电阻相接,然后接入A0引脚。

实验原理图如下图所示:

实验原理图

实物连接图如下图所示:

实物连接图

新建sketch,拷贝如下代码替换自动生成的代码并进行保存。1/*

2   AutoLed

3   通过光敏电阻检测环境光,进而控制LED灯亮度

4*/

5

6int ledPin = 10;

7

8int sensorValue = 0; //保存读到的传感器模拟值

9int ledValue = 0;  //保存LED灯占空比

10

11void setup()

12{

13  pinMode(ledPin, OUTPUT);     //数字口要选择带~号的具有pwm功能的输出口

14}

15

16void loop()

17{

18  sensorValue = analogRead(A0);     //读取A0模拟口的数值

19  ledValue = map(sensorValue, 400, 800, 0, 200); //将400到800之间的数据映射成0到200之间的数据

20  analogWrite(ledPin, ledValue);   //PWM控制LED灯亮度

21  delay(100);

22}

连接开发板,设置好对应端口号和开发板类型,进行程序下载。

程序下载

3. 实验现象

遮挡光敏电阻,LED灯变亮,无遮挡下,LED灯亮度变暗。

实验现象

4. 实验分析

通过analogRead()读取光敏电阻与普通电阻串联分压后的电压数据,使用map()函数做重新映射,然后使用analogWrite()函数改变LED灯的亮度。

根据串联分压,光敏电阻上的电压值为R1/(R1+R2) * 5V。

通过测试发现遮挡和不遮挡的情况下,模拟输入的范围大概在400~800之间,所以map()函数里面区间为[400,800],由于电源波动或外界干扰等原因,输出的数据可能也会受到一定的影响,你得到的区间可能有变化,需要多次调整测试来达到理想效果。

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com

arduino 光控灯_Arduino基础入门篇11—光控灯相关推荐

  1. Arduino基础入门篇11—光控灯

    本篇介绍光敏电阻,通过模拟输入采集环境光强来控制LED灯亮度,做一个无需人为干预的自动控制设备. 传感器是一种检测装置,能感受并采集到被测量的信息,在当下物联网.智能家居中占据重要地位.一切智能化.自 ...

  2. arduino点阵声音频谱_Arduino基础入门篇19—点阵屏

    将8个LED发光二极管封装在一起就组成了数码管,将更多的LED组合在一起就组成了点阵屏.本篇我们来认识点阵屏,通过Arduino的IO口直接驱动点阵屏来了解其驱动方式. 1. 点阵屏介绍 LED点阵屏 ...

  3. arduino步进电机程序库_Arduino基础入门篇27—步进电机驱动库的使用

    本篇介绍步进电机驱动库的使用,通过读取电位器输入,控制步进电机转动相应角度. Stepper库是官方提供的驱动库,我们启动Arduino IDE,点击「文件」-「示例」就能找到Stepper库,官方提 ...

  4. arduino二位数码管_Arduino基础入门篇17—四位数码管的驱动

    本篇介绍四位数码管的使用,通过数码管库驱动四位数码管从0开始累加显示数字. 1. 四位数码管介绍 根据实际需要,把多个一位数码管封装在一起就成了多位数码管.常见的有两位.三位.四位.五位.六位等. 多 ...

  5. ardruino控制继电器_Arduino基础入门篇24—继电器控制

    继电器是一种电子控制器件,是用较小的电流去控制较大电流的一种"自动开关",通常应用于自动控制电路中起着自动调节.安全保护.转换电路等作用. 本篇介绍继电器的使用,通过串口发送命令来 ...

  6. 32读取ltc的温度值_Arduino基础入门篇29—模拟温度传感器LM35

    温度传感器就是利用物质随温度变化特性的规律,把温度转换成可输出信号的传感器,是普遍应用的传感器之一.本篇介绍模拟温度传感器-LM35. 1. LM35介绍 LM35是很常用的温度传感器元件,电路连接非 ...

  7. 12864液晶8x16ascii点阵_Arduino基础入门篇31—LCD1602液晶显示

    LCD1602显示 LCD1602也叫1602字符型液晶,是一种专门用来显示字母.数字.符号的点阵型液晶模块,能同时显示16X2即32个字符.本篇我们来认识LCD1602,驱动它显示「Hello Wo ...

  8. 3-ESP8266 SDK开发基础入门篇--点亮一个灯

    https://www.cnblogs.com/yangfengwu/p/11072834.html 所有的源码 https://gitee.com/yang456/Learn8266SDKDevel ...

  9. arduino 光控灯_Arduino基础—光控灯(物联网)

    本实验借鉴TonyCode的简书说明. 作者:TonyCode 链接:https://www.jianshu.com/p/41827528e3c5 来源:简书 # Arduino基础入门篇-光控灯 物 ...

最新文章

  1. 安全公司:苹果iOS10备份功能安全性比iOS9差很多
  2. 题目1164:旋转矩阵
  3. freeRtos学习笔记 (5)事件组
  4. MySql的Delete、Truncate、Drop分析
  5. paip.输入法英文词库的处理 python 代码 o4
  6. UnionID与OpenID的区别【转自微信官方文档】
  7. LEACH算法仿真实验
  8. 常用z反变换公式表_常用excel快捷键
  9. 超实用的HTML 5接口全方位测试总结文
  10. 怎么看计算机运行时间,怎么查看电脑运行时间_怎么查看电脑运行记录
  11. 干货 | 云解析DNS之网站监控
  12. python 多元字符多项式的展开问题
  13. 【Typecho主题】情侣博客Brave主题源码
  14. 理工男的网红生意, 6000万月活50万条日更的背后, 内容链还能这样操作?
  15. LaTeX(1)设置部分文本居中左对齐、居中右对齐
  16. python实现电话号码映射
  17. python时间差计算器时分秒_python 实现日期计算器
  18. 03709马原第三章考点总结
  19. GPT分区的电脑如何装64位Win7
  20. golang pprof工具

热门文章

  1. hi3635c uboot 初始化 nor flash (XM25QH128AHIG)
  2. 开源 php微商城,php开源微商城系统--微圈资讯速查网
  3. 山东大学网络靶场实验平台—团队进度(四)
  4. JDK动态代理为什么必须要基于接口?
  5. Mac安装brew的终极方法
  6. JDI Java程序员的高级玩具
  7. 计算机毕业设计springboot基于Springboot的手机电商网站lmo47源码+系统+程序+lw文档+部署
  8. Python爬虫实战 下载原力创付费文档---全屏阅览式
  9. Project 2007安装出现错误及解决方案
  10. html整体页面缩放的方法,html5中让页面缩放的4种方法