光传感器是利用光敏元件将光信号转换为电信号的传感器,它的敏感波长在可见光波长附近,包括红外线波长和紫外线波长。光传感器不只局限于对光的探测,它还可以作为探测元件组成其他传感器,对许多非电量进行检测,只要将这些非电量转换为光信号的变化即可。

光敏电阻是一种电阻值随照射光强度增加而下降的电阻,光照越强电阻值越小,光照越弱,电阻值越大。

(1)实验材料
Arduino板一个;
光敏开关一个;
导线若干;
电阻2个,1个光敏电阻,1个1K普通电阻;
配套USB数据线;
1个LED灯;
1个220Ω限流电阻;

(2) 实验步骤
将光敏电阻作为一个电阻跟一个普通电阻串联,根据串联分压的方法,通过analogRead() 读取其电压,直插LED灯正极连接限流电阻,电阻另一端连接开发板第10引脚,LED灯负极接开发板GND。光敏电阻一端接GND,电阻一端接5V,光敏电阻和普通电阻相接,然后接入A0引脚。

(3)连图如下:

(4)代码块:

/*通过光敏电阻检测环境光,进而控制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); }

(5)关键代码
通过analogRead()读取光敏电阻与普通电阻串联分压后的电压数据,使用map()函数做重新映射,然后使用analogWrite()函数改变LED灯的亮度。根据串联分压,光敏电阻上的电压值为R1/(R1+R2) * 5V。通过测试发现遮挡和不遮挡的情况下,模拟输入的范围大概在400~800之间,所以map()函数里面区间为[400,800],由于电源波动或外界干扰等原因,输出的数据可能也会受到一定的影响。

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

(7)效果
遮挡光敏电阻,LED灯变亮,不遮挡光敏电阻,LED灯变暗。

Arduino-光控灯的实现相关推荐

  1. Arduino—光控灯

    Arduino光控灯 首先介绍光敏电阻,光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器:入射光强,电阻减小,入射光弱,电阻增大.光敏电阻器一般用于光的测量.光的控制和光电 ...

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

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

  3. arduino 光控灯_Arduino 极速入门系列 - 光控灯(1)- 关于理论和 LED 那些事

    点个 LED 闪亮好像太单调,这次来个光控 LED 灯.这个其实不需要 Arduino 也能做,这次只是用来演示一下 PWM 在 Arduino 里面的做法.PWM 原理后面会解释.这次用充电宝提供 ...

  4. arduino 光控灯_Arduino基础入门篇11—光控灯

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

  5. arduino 光控灯_Arduino光控开关

    扩展实验,使用光敏电阻同样可以达到类似电位计调节LED亮度的效果,如实验电位计控制LED亮度:http://jingyan.baidu.com/article/49711c61785102fa441b ...

  6. Arduino 极速入门系列 - 光控灯(3) - 光敏电阻、与电阻分压那些事

    继续是讲解基础原理,新手专用部分.这次讲光敏电阻,和用电阻分压.光电元器件有好几种,其中测光相关的元器件,常见的有光敏三极管和光敏电阻,我们这次光控灯用光敏电阻.在我们光控灯里面,将会使用它搭建出分压 ...

  7. Arduino开发小项目—光控灯

    @Arduino开发小项目-光控灯 本篇文章介绍光敏电阻,通过模拟输入采集环境光强来控制LED灯亮度,做一个无需人为干预的自动控制设备. 传感器是一种检测装置,能感受并采集到被测量的信息,在当下物联网 ...

  8. 自学Arduino UNO串口(制造光控灯)

    一.Arduino串口介绍 串口用于不同设备间互相传输数据.比如,可以在电脑上实时输入指令,Arduino 板做出相应的反应,Arduino 板正在执行的工作也能实时反应在电脑上. 二.Arduino ...

  9. 【Arduino】入门篇——光控灯

    光控灯 一.实验目的 二.实验器材 三.电路图 四.实验步骤 五.代码块 六.实验结果 一.实验目的 通过模拟输入采集环境光强来控制LED灯亮度,做一个无需人为干预的自动控制设备. 二.实验器材 Un ...

  10. 物联网——光控灯的实现

    光控灯 1.实验器材 Uno R3开发板 配套USB数据线 面包板及配套连接线 1个LED灯 1个220Ω限流电阻 1个光敏电阻传感器 1个1K普通电阻 2.实验步骤 硬件连接(原理图): 在ardu ...

最新文章

  1. 轻松清理系统垃圾[转]
  2. 【操作系统原理及Linux实践】 四cpu调度scheduling
  3. 2021热度不减的在线教育,正在努力成为线下教育的有益补充
  4. OpenCV | OpenCv常用函数(代码类)
  5. Mongodb的集合插入一个字段
  6. 递归循环一个无限极数组_理解递归、尾调用优化和蹦床函数优化
  7. linux 暴力删除文件,暴力删除文件
  8. 御宅男YznCMS开源后台管理系统源码
  9. 无意中发现Markdown,最终解放了我
  10. python自学行吗-python自学行吗?给编程初学者零基础入门的建议
  11. DotNetBar第三方控件详解
  12. 解决“安装程序无法创建新的系统分区,也无法定位现有系统分区”问题方法
  13. java b2b2c 多商户 电商 源码,整套可运行
  14. Vscode python Code Runner中文乱码
  15. 返利网app android版
  16. 数字图像处理-第一章
  17. 平面设计中的插画设计技巧
  18. VS语音信号处理(2) C语言分段读取WAV语音文件语音数据
  19. AGC001E BBQ Hard [dp]
  20. Android阅读源码从工具开始

热门文章

  1. Camera Feature
  2. 1~100以内的质数求和
  3. 用C++写一个小游戏——扫雷(1)
  4. 【新书速递】程序员必会的40种算法
  5. JSP和HTML有什么区别
  6. iis上ftp服务器用户设置,IIS设置FTP服务器,想请教一下怎样设置用户名和密码
  7. 雅克比矩阵 Jacobi matrix
  8. DTOJ4360. 魔法卡片(magic)
  9. 程序员羊皮卷(张大志)pdf
  10. 如何免费得到《程序员羊皮卷》中需要的章节?