700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 第三十二篇 基于Arduino uno 获取光敏电阻传感器的原始值和光照强度——结果导向

第三十二篇 基于Arduino uno 获取光敏电阻传感器的原始值和光照强度——结果导向

时间:2021-12-28 03:21:07

相关推荐

第三十二篇 基于Arduino uno 获取光敏电阻传感器的原始值和光照强度——结果导向

0、结果

说明:先来看看串口调试助手显示的结果,第一个值是原始的模拟电压值,第二个值是含光量,也就是光照强度,如果是你想要的,可以接着往下看。

1、外观

说明:虽然光敏电阻传感器形态各异,但是原理和代码都是适用的,只是接线可能不同。

2、连线

说明:只需要连接三根线。

uno————光敏电阻传感器

如果你的光敏电阻长这样:

接线方式如下:

说明:只需要连接三根线。

uno————光敏电阻传感器

3、源程序

说明:采用非阻塞方式编写,一定时间检测一次光照信息,并将对应功能进行函数化,方便移植。

/****************************************光敏电阻 part****************************************//*注意:光越亮,值越小;光越暗,值越大;*/#define photosensitivePin A0 //定义模拟口A5#define phTimeInterval 1000 //检测一次的时间间隔unsigned long phTimes = 0;//记录设备运行时间int photosenVal = 0;//光照度数值int photoContent = 0;/****************************************set up and loop part*********************************/void setup(){Serial.begin(9600);//设置串口波特率为9600Serial.println("设备上线!");}void loop(){getPhData(); //获取光敏电阻的值}/****************************************光敏电阻 part****************************************//*获取光敏电阻的值*/void getPhData() {if (millis() - phTimes >= phTimeInterval) { //一定时间检测一次phTimes = millis();photosenVal = analogRead(photosensitivePin); //获取原始值photosenVal = constrain(photosenVal, 10, 1024);//原始值限制在一定范围photoContent = map(photosenVal, 10, 1024, 100, 0); //映射到对应的区间Serial.print("原始数据: ");//串口打印对应的值Serial.print(photosenVal);//串口打印对应的值Serial.print(" ,光照强度: "); //串口打印对应的值Serial.print(photoContent);//串口打印对应的值Serial.println(" %"); //串口打印对应的值}}

4、注意事项

说明:如果有什么问题可以评论@我,我将帮助你。如果你的光敏电阻不是集成的模块,那么就需要采取第二种方式连接线路,电阻10K左右的就够了。特别注意的是:光照强度最强光,我是拿手机灯光模拟的,如果你想改,可以拿最强光照着光敏电阻,然后看原始值,就可以更改光照强度,基本上最强光也就那么亮了。

5、基本原理

光敏电阻是一种依据光线明暗程度变化而改变阻值的电阻器件,其原理是基于半导体中的内照效应。

在光敏电阻的半导体材料中,掺入了一些能够响应光线的掺杂物。当这些掺杂物受到光线的作用时,会产生载流子,从而影响电阻器的电阻值。具体来说,当有光照射在光敏电阻上时,电荷载流子就会在半导体中产生并向外扩散,使材料本身的电阻值降低。反之,如果没有光照射在光敏电阻上时,电荷载流子的数量就很少,此时材料的电阻值较高。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。