查看: 29258|回复: 28

光敏电阻检测环境光实验

[复制链接]

该用户从未签到

发表于 2018-3-5 21:22 | 显示全部楼层 |阅读模式
本文节选自《Arduino程序设计基础》

一些简单的电子元件就可以做传感器使用,例如我们这里要用到的光敏电阻。

22222.png
一种电阻值随照射光强度增加而下降的电阻。

光敏电阻的使用方法很简单,将其作为一个电阻接入电路中,然后使用analogRead() 读取电压即可。这里我们将光敏电阻和一个普通电阻串联(如图2-42),根据串联分压的方法来读取到光敏电阻上的电压。
33333.jpg


实验所需材料
Arduino Uno、面包板、光敏电阻、1KΩ电阻1个

连接示意图
444444.png
图 2 41 光敏电阻实验连接示意图

原理图
555555.jpg
图 2 42 光敏电阻实验原理图

如图2-41和图2-42所示,我们通过模拟输入口A0读取分压后得到的电压。
完整实现代码如下:

/*
光敏电阻检测环境光
http://www.arduino.cn/
*/

  1. void setup()
  2. {
  3.   // 初始化串口
  4.   Serial.begin(9600);
  5. }
  6. void loop()
  7. {
  8. // 读出当前光线强度,并输出到串口显示
  9.   int sensorValue = analogRead(A0);
  10.   Serial.println(sensorValue);
  11.   delay(1000);
  12. }
复制代码


运行以上程序,打开串口监视器,你能看到如图2-43所示的输出信息,Arduino通过串口输出了当前从光敏电路读到的模拟值。
66666.png


程序中使用到了Serial.begin()、Serial.println() 语句,他们的作用分别是初始化串口及串口输出数据,在此后的章节中我们将进行深入的讲解。
如果你需要知道当前环境下光敏电阻的阻值,可以使用以下公式计算:
QQ截图20180305212402.jpg

由于电源波动或外界干扰等原因,输出的数据可能也会受到一定的影响,例如波动较大等现象,这时你可以通过读取多次传感器数值,求平均数的方法,减小数据的波动。



该用户从未签到

发表于 2018-4-21 12:53 | 显示全部楼层
谢谢大佬的分享~

该用户从未签到

发表于 2018-5-18 13:18 | 显示全部楼层
大佬的分享

该用户从未签到

发表于 2018-6-4 09:32 | 显示全部楼层
大佬,为什么前面analog的参数都直接用了数字,这个地方却加上了A?

该用户从未签到

发表于 2018-7-23 09:03 | 显示全部楼层
大佬,那个串口监视器在哪啊?

点评

IDE右上角  详情 回复 发表于 2018-7-23 09:41

该用户从未签到

 楼主| 发表于 2018-7-23 09:41 | 显示全部楼层
CatBoy 发表于 2018-7-23 09:03
大佬,那个串口监视器在哪啊?

IDE右上角

该用户从未签到

发表于 2018-8-6 17:01 | 显示全部楼层
hanc 发表于 2018-6-4 09:32
大佬,为什么前面analog的参数都直接用了数字,这个地方却加上了A?

可以忽略,因为uno板子上模拟输入只有那A0~A5这六个口,所以不仅可以忽略A,而且你可以发现连pinMode都不用设置,因为它只管输入

该用户从未签到

发表于 2018-9-4 15:05 | 显示全部楼层
lixing401963897 发表于 2018-8-6 17:01
可以忽略,因为uno板子上模拟输入只有那A0~A5这六个口,所以不仅可以忽略A,而且你可以发现连pinMode都 ...

看代码感觉A0没有定义,它已经是预定义的常量吧?

该用户从未签到

发表于 2018-10-8 11:49 | 显示全部楼层
我把电阻和光敏电阻的位置对调了一下,这样子串口回传的数据会更直观,数值大就说明比较亮,数值小就是暗
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

arduino程序设计基础 blinker物联网解决方案

热门推荐

Arduino IDE 支持Raspberry Pi Pico开发
Arduino IDE 支持Raspberr
Arduino已经发布了他们的Arduino Nano RP2040 Connect开发板,这是最近发布的Raspberr
小白请教怎么驱动ILI9225 LCD
小白请教怎么驱动ILI9225
在某宝买了块2.2寸的TFT裸屏,没有背板的,驱动芯片是ILI9225G的,我用UNO直接连线,
L298N轉速不夠
L298N轉速不夠
小弟用L298N來操作12V馬達馬達,但是馬達的運轉速度卻沒有達到要求(用三用電表量運作
blinker App 设备过一会就会离线。重启app又恢复
blinker App 设备过一会就
重启后又恢复在线,,esp8266那边肯定没问题
【Arduino】168种传感器模块系列实验(27)---BMP280气压传感器
【Arduino】168种传感器模
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表