精华内容
下载资源
问答
  • 【Arduino】使用光敏电阻测量光照强度

    万次阅读 热门讨论 2017-08-19 15:45:15
    ABOUT ME   在进行智能家居的数据收集时,光照强度测量也是非常有必要的。比如,可以根据光照的强弱自动调整室内的灯光,给用户提供最舒适的学习生活环境。本文会使用一个光敏电阻配合Arduino完成光照数据的收集...
    ABOUT ME


      在进行智能家居的数据收集时,光照强度的测量也是非常有必要的。比如,可以根据光照的强弱自动调整室内的灯光,给用户提供最舒适的学习生活环境。本文会使用一个光敏电阻配合Arduino完成光照数据的收集。

    准备


    • Arduino UNO 开发板

    • 面包板

    • 光敏电阻

    • 1K-10K的电阻


    连接



      在黑暗的无光条件下,光敏电阻的阻值非常高。光线越强,电阻值反而越小。通过测量光敏电阻两侧的电压变化值可以得知光敏电阻值的变化进而获得光照强度值。在连接图中,我们可以发现为光敏电阻串联了一个分压电阻。


      上图中,RL是光敏电阻,R1是串联的分压电阻, Vout=RLR1+RLVin ,在黑暗中,RL的阻值会很大很大,所以Vout也就很大,接近5V。一旦有光线照射的话,RL的值就会迅速减小,所以Vout也就随之减小。通过上面这个公式可以看出, R1选取不能太小,最好在1k~10k左右,否则比值变化不明显。


    编码


      代码部分很简单,读取连接光敏电阻处接口的模拟值即可。

    light = analogRead(0);

      打开Arduino的串口监视器,用手机的手电筒照射光敏电阻,观察结果:

    Serial.println("lignt :");
    Serial.println(light);
    


    小结


      之前写过一篇关于LM35测量温度的,【Arduino】使用LM35传感器实时测量温度,这是Arduino系列的第二篇,后续会把光照、温度、火焰、湿度几种传感器整合到一起,为在Web端显示收集数据,并且实时上传。

    展开全文
  • 《电子DIY》之《单片机实践项目》之基于51单片机+光敏电阻的简易光照强度测量系统设计电路图绘制及讲解 添加链接描述

    《电子DIY》之《单片机实践项目》之基于51单片机+光敏电阻的简易光照强度测量系统设计电路图绘制及讲解
    添加链接描述

    展开全文
  • 本设计采用STC15W4K32S4单片机结合光敏电阻而开发设计了这一光强检测系统。以STC15W4K32S4单片机系统,光敏电阻,LCD1602液晶屏为核心设计的光强检测系统可以实现光强强弱显示。本次设计的光强检测器结构简单、性能...
  • 使用STM32的HAL库,配置多通道ADC,用DMA采集,算数平均值滤波,把GL5528光敏电阻得到的数据,转为光照度Lux,其中有Matlab计算公式与函数拟合,数据处理。

    最近项目中用到了光敏电阻。搜索资料,发现很多人都使用光敏电阻,只是用了AD读取了电压值,或者算出了电阻值,就发送给上位机或者服务器,美其名曰获取了光照度。

    搜索一番,也没找到用光敏电阻计算Lux的方法,于是自己做了一些研究,分享一下。

     

    计算光敏电阻值

    相信STM32的ADC读者应该会用,教程也一抓一大把,在此不表。接下来先计算电阻值。我的光敏电阻电路图如下:

    其中PA6接单片机AD采集引脚,它最大只能输入3.6V电压,而光敏电阻的供电为5V,所以设计了R1与R2两个分压电阻,确保PA6的电压不超过3.6V。

    设光敏电阻的阻值为xΩ,PA6的电压为y,可得以下公式:                     

    y/1500=5/(x+2500)

    STM32的ADC精度为12位,则最大值为4096。采集到的AD值与电压成线性对应关系,系统中最高的电压值为3.3V的电源电压,它与4096对应。假设PA6感受到的电压y对应的AD值为z,则:

    y/z=3.3/4096

    联立两式,消去y,得到关于x的表达式:

    x=10240000/(1.1×z)-2500

    使用ADC得到z以后,就可以根据上式算出光敏电阻的值了。

    我的代码使用了DMA获取多通道AD值,并且取100个数据求算数平均值滤波,然后打印电阻值的代码如下:

    //main.c  main()
      while (1)
      {
        if(DMA_Flag)
        {
          for(int i=0;i<ADC_CHANNEL_CNT;i++)
            printf("CH%d value = %d \n",i+2,ADC1_AVG_Buf[i] );
          uint32_t PhotoResistor = (uint32_t)(10240000/(1.1*ADC1_AVG_Buf[4]) - 2500);
          //串口打印采样结果
          printf("The AD value is %d,the PhotoResistor is %d .\r\n",ADC1_AVG_Buf[4],PhotoResistor);
          printf("The DMA count is %d .\r\n",DMA_CNT);
          DMA_Flag = 0;
        }
      }
    

    现象是能够打印出光敏电阻值。

     

     

    从电阻值到光照度

    之前已经算出来了光敏电阻的电阻值,并且能够分出光照强度的等级,但是仍然无法计算出光照强度。光照强度是指单位面积上所接受可见光的能量,简称照度,单位勒克斯(Lux或lx)。常见环境的光照强度值如表

    场所/环境

    光照强度(lux)

    场所/环境

    光照强度(lux)

    晴天室内

    100~1000

    办公室/教室

    300~500

    阴天室内

    5~50

    餐厅

    10~30

    月圆夜室外

    0.2

    距60W台灯60cm

    300

    精确测量光照强度是比较困难的一件事情,使用简陋的光敏电阻测量光照强度则精度更难以保障。本节的重点是解决问题的思路,如何用较简单的方法获取相对准确的光照度。配套电路板中使用的光敏电阻型号为GL5528,它的主要参数如表

    项目

    最大电压

    最大功耗

    环境温度

    光谱峰值

    10Lux时亮电阻

    暗电阻

     

    γ值

    上升时间

    下降时间

    单位

    V

    mW

    nm

    0.6

    ms

    ms

    GL5528

    500

    500

    -30~+70

    560

    10~20

    2

    0.6

    20

    30

    其中的γ值表示10Lux电阻值与100Lux电阻值的比值的对数。

    γ=lg⁡(R10/R100)

    将γ=0.6带入,可得R10/R100≈4。即R10=4×R100,对于R10与R1关系仍然成立:R1=4×R10。手册中给出了一个对数坐标系的图,光照强度与Lux的对应关系并非一条直线,而是一个范围。为了简便计算,取范围中稍微靠下的一条直线,直线中包含(1,40),(10,10),(100,2.5)这三个点。


    手册中给出的1到100范围太小了,常用光照度可到达1000Lux,因此要通过现有的关系推算出光照度与电阻值的关系式。虽然看上去光照度与电阻值的对应关系是一条直线,但是要注意坐标系是对数坐标系,不能套用一元一次方程。在MATLAB中拟合,拟合过程如图7-19所示。可得关系式为:

    f(x)=(4e+0.4)×x^(-0.6021)

    拟合过程如图。

     

     

    编写代码算出光照度

    在单片机内,用带指数的关系式计算,计算速度会很慢。可以使用查表法,无需计算,只遍历数组得到结果。根据拟合得到的函数,可以推导出Lux从1到1000,各自对应的电阻值,共1000对。观察数据,可以发现在Lux比较大的时候,对应的电阻值过于接近。此处仅要求粗略计算,无需这么多数据。将电阻值的个位数舍去,并删除重复电阻值,可得到281对数据。

    定义新的结构体数据如下。

      //ADC.h
    typedef struct
    {
      unsigned short ohm;   //光敏电阻值
      unsigned short lux;   //流明
    }PhotoRes_TypeDef;
    //ADC.c
    //GL5528光敏电阻的阻值与流明对应的关系
    const  PhotoRes_TypeDef GL5528[281]=
    {
    {40000, 1},{26350, 2},{20640, 3},{17360, 4},{15170, 5},
    {13590, 6},{12390, 7},{11430, 8},{10650, 9},{9990, 10},
    {9440, 11},{8950, 12},{8530, 13},{8160, 14},{7830, 15},
    ......
    {720, 773},{710, 791},{700, 809},{690, 829},{680, 849},
    {670, 869},{660, 891},{650, 914},{640, 937},{630, 961},
    {620, 987},
    };
    
    
    

    当得到电阻值以后,遍历数据,算出光照度,代码如下。

    //ADC.c
    /**
      * @brief 通过电阻值算出光照度
      * @param 光敏电阻值
      * @retval None
      */    
    unsigned short GetLux(uint32_t PhotoResistor)
    {
      unsigned short lux = 0;
      //查表法,根据电阻值得出光照度
      for(int i = 0 ; i < 281 ; i++)
      {
        if (PhotoResistor > GL5528[i].ohm)
        {
          lux = GL5528[i].lux;
          break;
        }
      }
      return lux;
    }
    

    主函数中,打印光照度:

    //main.c main() while(1)
        if(DMA_Flag)
        {
          unsigned short lux = 0;
          for(int i=0;i<ADC_CHANNEL_CNT;i++)
            printf("CH%d value = %d \n",i+2,ADC1_AVG_Buf[i] );
          uint32_t PhotoResistor = (uint32_t)(10240000/(1.1*ADC1_AVG_Buf[4]) - 2500);
          //从电阻值计算光照度
          lux = GetLux(PhotoResistor);
          //串口打印采样结果
          printf("The AD value is %d,the PhotoResistor is %d .\r\n",ADC1_AVG_Buf[4],PhotoResistor);
          printf("The Lux is %d .\r\n",lux);
          printf("The DMA count is %d .\r\n",DMA_CNT);
          DMA_Flag = 0;
        }
    
    
    

    下载程序,观察现象,应该看到如图7-19所示的现象,说明算出了Lux的值。

    当然,这个计算结果也不会很精确,毕竟光照度与电阻的关系也不是一一对应的。聊胜于无吧。

    关注公众号“yummy说电子”,后台回复关键字“光敏电阻”,获取配套源码、拟合数据与MATALAB代码。

     

    展开全文
  • 此课程主要讲解如何使用51单片机进行实战应用,分为多次课,每次课都会...《单片机实践项目》之基于51单片机+光敏电阻的简易光照强度测量报警系统设计程序及光照与电压的拟合公式全过程讲解(130) 添加链接描述 ...

    此课程主要讲解如何使用51单片机进行实战应用,分为多次课,每次课都会分别围绕一个课程设计或毕业设计(实践项目)展开。手把手叫你学51单片机。“Proteus仿真”,“电子DIY”,“毕业设计”,“课程设计”,“实物制作”,“单片机”,“学习”,“教学视频”,“C语言”,“汇编语言”
    《单片机实践项目》之基于51单片机+光敏电阻的简易光照强度测量报警系统设计程序及光照与电压的拟合公式全过程讲解(130)
    添加链接描述

    展开全文
  • 基于光敏电阻的单片机LCD1602显示照度计
  • 文章主要是要实现将ADC模块获取的光敏电阻数值转换成标准单位勒克斯的光照强度,虽然说由于实验方法和实验环境,最终结果并不是很准确,但也算是一次不错的体验。 目录一、前言(无关技术的废话,可以跳过)二、...
  • 光敏电阻的光敏特性研究实验报告光敏电阻光敏特性的研究一、实验设计方案1.1、实验目的1、了解光敏电阻的基本特性,测出它的光照特性曲线。2、学习使用电脑实测。3、学习使用DataStudio软件。4、学习了解设计性实验...
  • 光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。常用的光敏电阻器硫化镉光敏电阻器,它是由半导体材料制成的。光敏电阻器对光的敏感性(即光谱特性)与人眼对可见光(0.4~0.76)μm...
  • 系统由STC89C52单片机+四位数码管显示+光敏电阻+ADC0804等构成。 具体功能: ...①光敏电阻实时采集环境光照值; ②采用ADC0804将模拟值转换为数字量; ③四位数码管显示当前的光照值(00.0-60.0)。
  • 光敏电阻计算照度lux

    2021-04-17 09:09:19
    光敏电阻5-10K,γ值为0.5,10lux光强下亮电阻按10K算, 根据公式计算100lux强度电阻,lg(R10/R100)=γ,换算出100lux光强下  电阻为3.16K左右 那么如果是...
  • 我们在日常生活中一般会需要采集光照度来判断灯是否打开,应用范围非常广泛。本次来研究一下该模块的实现。 首先看一下模块的样子,如下图: 该模块有四个引脚,分别为VCC、GND、AO、DO,其中AO是模块的...
  • 本设计基于STC89C51/52(与AT89S51/52、AT89C51/...• 1.LCD1602液晶显示、光敏电阻、按键、蜂鸣器组成 • 2.实时显示当前光照强度信息 • 3.可设置王照强度报警阈值 • 4.当光照强度高于最高阈值或低于最低阈值时报警
  • 光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。常用的光敏电阻器硫化镉光敏电阻器,它是由半导体材料制成的。光敏电阻器对光的敏感性(即光谱特性)与人眼对可见光(0.4~0.76)μm...
  • 今天我们来聊聊声、光、热、电、力中的光。... 光敏电阻首先是一个电阻,当然名字长点定会有它的特别之处,与普通电阻不同。它是由特殊材料制成,这赋予它特殊的体质:在特定波长的光照射下,其阻值迅速减小...
  • 光敏电阻是一种光电导器件,它对光照强度的变化非常敏感,随着光照强度的增大,它的阻值相应减小。所以光敏电阻常用作光电传感器,把光信号转换成电信号。目前,使用最多的是硫化铺(CdS)光敏电阻,它对可见光比较...
  • 光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。常用的光敏电阻器硫化镉光敏电阻器,它是由半导体材料制成的。光敏电阻器对光的敏感性(即光谱特性)与人眼对可见光(0.4~0.76)μm...
  • 光敏电阻器的主要参数

    千次阅读 2021-02-05 05:30:09
    特性——光敏电阻器是利用半导体光电导效应制成的一种特殊电阻器,对光线十分敏感,它的电阻值能随着外界光照强弱(明暗)变化而变化。它在无光照射时,呈高阻状态;当有光照射时,其电阻值迅速减小。作用与应用——...
  • 光敏电阻

    2021-07-22 03:32:34
    光敏电阻(photoresistor or light-dependent resistor,后者缩写为ldr)或光导管...这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻...
  • 51单片机采集光敏电阻数据,并用数码管显示
  • 电路设计_光敏电阻学习笔记

    千次阅读 2016-10-03 17:29:42
    本文为光敏电阻特性学习的笔记,供大家学习参考。
  • 光敏电阻传感器实验报告

    千次阅读 2021-01-13 05:41:37
    光敏电阻传感器实验报告 光敏传感器实验报告学院 专业 学号 姓名 时间目 录一、摘要 .1二、设计要求 .3三、方案设计 .51、方案说明 62、方案论证 .7四、光敏电阻的结构和原理 .7五、光敏传感器的工作原理 .8六、电路...
  • 光敏电阻测试数码管显示

    千次阅读 2017-02-28 16:30:24
    #include #include "i2c.h" #include "delay.h" #include "display.h" #define AddWr 0x90 //写数据地址 #define AddRd 0x91 //读数据地址 extern bit ack; unsigned char ReadADC(unsigned char Chl)
  • stm32—光敏电阻传感器的初步使用

    千次阅读 热门讨论 2021-01-14 17:08:15
    光敏电阻模块对环境光线最敏感,一般用来检测周围环境的光线的亮度 二、连线 引脚D0是开关信号输出,检测光线是否达到阈值(0和1),本处接到PD5引脚 模块在环境光线亮度达不到设定阈值时,DO 端输出高电平,当外界...
  • 光敏电阻介绍1、光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。 2、光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强、电阻减小、入射光弱...
  • 课程设计报告课程名称: 智能仪器课程设计题 目: 基于51单片机的光照强度摘要光敏电阻测光强度系统,该系统可以自动检测光照强度的强弱并显示让人们知道此时光照强度的强弱。人们可以通过看此装置的显示了解现在的...
  • 通过光敏传感器 将数值在串口显示。
  • 基于51单片机光照强度检测报告课程设计报告课程名称: 智能仪器课程设计题 目: 基于51单片机的光照强度摘要光敏电阻测光强度系统,该系统可以自动检测光照强度的强弱并显示让人们知道此时光照强度的强弱。...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 291
精华内容 116
关键字:

光敏电阻测量光照强度

友情链接: axisflashmap.rar