当前位置: 首页 > news >正文

【鸿蒙开发】Hi3861学习笔记-光敏传感器

00. 目录

文章目录

    • 00. 目录
    • 01. 环境光传感器概述
    • 02. 环境光传感器工作原理
    • 03. 环境光传感器的种类(常见)
    • 04. 光敏传感器模块
    • 05. 光敏传感器原理图
    • 06. 硬件接线
    • 07. 软件设计
    • 08. 实验现象
    • 09. 附录

01. 环境光传感器概述

环境光传感器是一种能够测量周围光线强度的传感器。在我们的日常生活中处处可以看到它的应用。

尤其是在手机,平板电脑等电子设备中都配备了环境光检测器,用来自动检测环境光的强度,从而实现对屏幕亮度的智能控制。在环境亮度较高时,屏幕显示会自动调高亮度,而当外界环境较暗时,会调节屏幕到低亮度。不仅有助于保护使用者的眼睛,而且可以有效降低设备的功耗。

在这里插入图片描述

02. 环境光传感器工作原理

环境光传感器的工作原理是应用了光电效应。 也就是某种材料吸收光子的能量后产生相应的电效应。我们以最常见的光电二极管来举例说明。 图中光电二极管通过的电流大小与照射到它上面的光线强度成正比,这个变化经过放大和数模转换处理后,再由智能芯片进行相应的处理,我们手机屏幕的亮度控制就是通过这样的电路逻辑完成的。

在这里插入图片描述

03. 环境光传感器的种类(常见)

3.1 光敏电阻

光敏电阻是一种特殊的电阻,它常用的制作材料为硫化镉。 它具有在特定波长的光照射下其阻值迅速减小的特性。它的优点是体积小,灵敏度高,性能稳定,价格低,在自动控制和家用电器以及各种光控玩具中有着广泛应用。

在这里插入图片描述

3.2 光电二极管和光电三极管

它们的内部都使用具有光敏特性的PN结,因此它们对光线的变化非常敏感,对于光线的响应速度要快于光敏电阻。具有很好的线性度以及低噪声特性。

光电二极管和光电三极管各有所长。光电二极管温度特性和输出线性度好、响应时间快;光电三极管可以看作是一种内置电流放大器的光电二极管,它具有更大的输出光电流能力,所以具有更高灵敏度。因此,在对输出线性要求较高或工作频率较高的场合应选光电二极管;如果是要求灵敏度高的光电控制电路,应选择光电三极管。

在这里插入图片描述

在这里插入图片描述

3.3 IC型环境光传感器

在这里插入图片描述

目前大多数的光感应用要求模拟人眼对光线的感知,基于IC的单片光电二极管是最好的选择之一。因为它的高集成度,可以有效的补偿光电二极管对光线感知的差异。

在这里插入图片描述

彩色图谱是人眼对于光线的感知能力,基本集中在可见光部分。而光电管(黑色曲线)的频率响应显然集中在红外线的高频段。为了消除这种感知差异,多数集成Ic式的光电传感器,例如MAX44009都内置了补偿用的红外光感二极管。两个传感器获得的信号经过ADC模块数字化后,交给DSP数字信号处理模块,可以精确的做出红外补偿。而且IC芯片具有数字接口输出,体积小巧的优点,是便携以及智能设备的最佳选择。

在这里插入图片描述

04. 光敏传感器模块

在这里插入图片描述

模块特色
1、采用灵敏型光敏电阻传感器
2、比较器输出,信号干净,波形好,驱动能力强,超过15mA。
3、配可调电位器可调节检测光线亮度
4、工作电压3.3V-5V
5、输出形式 :DO数字开关量输出(0和1)和AO模拟电压输出
6、设有固定螺栓孔,方便安装
7、小板PCB尺寸:3.2cm x 1.4cm
8、使用宽电压LM393比较器**

模块使用说明
1、光敏电阻模块对环境光线最敏感,一般用来检测周围环境的光线的亮度,触发单片机或继电器模块等;

2、模块在环境光线亮度达不到设定阈值时,DO端输出高电平,当外界环境光线亮度超过设定阈值时,DO端输出低电平;

3、DO输出端可以与单片机直接相连,通过单片机来检测高低电平,由此来检测环境的光线亮度改变;

4、DO输出端可以直接驱动本店继电器模块,由此可以组成一个光控开关。

5、小板模拟量输出AO可以和AD模块相连,通过AD转换,可以获得环境光强更精准的数值;

在这里插入图片描述

05. 光敏传感器原理图

在这里插入图片描述

06. 硬件接线

在这里插入图片描述

07. 软件设计

template.c

/******************************************************************************************************* 实验现象:光敏传感器模块,将ADC检测数据输出在串口助手上显示。******************************************************************************************************/#include <stdio.h>
#include <unistd.h>#include "ohos_init.h"
#include "cmsis_os2.h"#include "bsp_led.h"
#include "bsp_adc.h"osThreadId_t MODULE_Task_ID; //任务IDvoid MODULE_Task(void)
{uint8_t i=0;uint16_t adc_value=0;led_init();//LED初始化adc5_init();while (1) {i++;if(i%50==0){adc_value=get_adc5_value();printf("adc_value=%d\r\n",adc_value);}usleep(10*1000);}
}
//任务创建
void module_task_create(void)
{osThreadAttr_t taskOptions;taskOptions.name = "ModuleTask";            // 任务的名字taskOptions.attr_bits = 0;               // 属性位taskOptions.cb_mem = NULL;               // 堆空间地址taskOptions.cb_size = 0;                 // 堆空间大小taskOptions.stack_mem = NULL;            // 栈空间地址taskOptions.stack_size = 1024;           // 栈空间大小 单位:字节taskOptions.priority = osPriorityNormal; // 任务的优先级MODULE_Task_ID = osThreadNew((osThreadFunc_t)MODULE_Task, NULL, &taskOptions); // 创建任务1if (MODULE_Task_ID != NULL){printf("ID = %d, Create MODULE_Task_ID is OK!\n", MODULE_Task_ID);}
}/*** @description: 初始化并创建任务* @param {*}* @return {*}*/
static void template_demo(void)
{printf("-Hi3861开发板--光敏传感器模块实验\r\n");module_task_create();
}
SYS_RUN(template_demo);

08. 实验现象

光敏传感器模块,将ADC检测数据输出在串口助手上显示。

在这里插入图片描述

09. 附录

参考:环境光传感器 - 从零开始认识各种传感器

相关文章:

  • 【HW系列】—Log4j2、Fastjson漏洞流量特征
  • MySQL省市区数据表
  • 【西方哲学-0】西哲思维导图mermaid格式
  • 安世亚太:信息化和数字化的底层逻辑
  • 尚硅谷redis7 70-72 redis哨兵监控之案例实操7
  • 【C++】string类的使用(万字详解)
  • C语言循环结构实战:while和for到底用哪个?
  • JavaSE核心知识点04工具
  • 微信小程序关于截图、录屏拦截
  • MySQL问题:MVCC是什么?
  • 芯科科技推出首批第三代无线开发平台SoC,高度集成的解决方案推动下一波物联网实现突破
  • CS144 - Lecture 1 记录
  • EasyRTC嵌入式音视频实时通话SDK助力AI与IoT智能硬件打造音视频交互多场景应用
  • 初识 Pytest:测试世界的智能助手
  • ASP.NET MVC添加新控制器示例
  • 【网络通信】网络通信全解
  • 国产化Excel处理组件Spire.XLS教程:如何使用 C# 将 Excel(XLS 或 XLSX)文件转换为 PDF
  • Google Play的最新安全变更可能会让一些高级用户无法使用App
  • leetcode hot100刷题日记——23.数组中的第K个最大元素
  • day12 leetcode-hot100-21(矩阵4)
  • 酒店网站建设设计/上海seo网站排名优化公司
  • 长沙公司网站设计/友情链接怎么购买
  • 珠海企业建站程序/北京seo软件
  • 网站的结构是什么样的/google搜索引擎入口 镜像
  • 网站色彩搭配/网站建设优化400报价
  • 哪些网站是jsp做的/企业网站网页设计