光敏传感器模块(YH-LDR)

目录

1.  YH-LDR模块说明

1.1  简介

1.2  YH-LDR 模块的引脚说明

1.3  LDR 传感器工作原理与输出特性

2. 使用单片机系统控制 YH-LDR 模块

2.1 通用控制说明


1.  YH-LDR模块说明

1.1  简介

        YH-LDR 是野火设计的光强传感器,使用一个光敏电阻作为采集源,使用 LM393 作为电压比较器,可以通过调节模块的滑变来采集不同强度的光强。不需要使用 ADC,模块输出的就是一个数字量的信号,操作简单。其外观见图 1-1。

图 1-1 YH-LDR 光敏传感器模块

1.2  YH-LDR 模块的引脚说明

表格 1-1 YH-LDR 模块引脚说明

编号名称说明
1VCC电源正(5V)
2GND地线
3OD信号输出

1.3  LDR 传感器工作原理与输出特性

        模块通过光敏电阻将光强转换成电压信号,输入到 LM 393 的一个电压比较通道,然后 LM393 在输出比较结果,可以通过滑变调节比较的电压。有强时 DO 输出低电平,光弱时 DO 输出高电平。电源接 3V3 时高电平时 1.4V,此时 STM32 把此电平识别为低电平,电源接 5V 时,DO 输出的是 2.6V,此时 STM32 可以识别出是高电平,所以在测试时电源是需要接 5V 的。

        LDR传感器,即光敏电阻传感器,是一种检测光线强度的传感器。它具有以下工作原理和输出特性:

        工作原理:LDR传感器基于半导体材料的光敏效应,即在光照下,半导体的电阻会随之发生变化。当光强度增强时,LDR的电阻值降低;当光强度减弱时,LDR的电阻值增加。

        输出特性:LDR传感器的输出特性取决于所使用的半导体材料和工作条件。通常情况下,LDR传感器的输出电压随着光强度的变化而发生变化,输出特性呈现非线性关系。此外,LDR传感器的输出信号也会受到温度、湿度等环境因素的影响,需要进行校准。

        总的来说,LDR传感器是一种简单、实用的光敏传感器,被广泛应用于光照度检测、亮度控制等领域。

2. 使用单片机系统控制 YH-LDR 模块

2.1 通用控制说明

        YH-LDR 输出为模拟量电压输出。本小节以野火 STM32 开发板为例子说明如何使用STM32 与 YH-LDR 模块 ADC 电压采集的电路连接。

        单片机系统通过 ADC 通道引脚与 YH-LDR 模块连接,与模块连接时,只要通过模块引出的排针连接好如下四根线即可,2 个实验都可以通过串口调试助手显示当前的空气灰尘浓度值,见表格 2-1。

表格 2-1 单片机与 YH-LDR 模块连接引脚表

单片机系统YH-LDR模块
5VVCC
GNDGND
IODO

YH-LDR 模块是一种光敏电阻模块,它可以检测光线的强度并输出相应的电压信号。使用单片机系统可以对 YH-LDR 模块进行控制和读取光线的强度值。

下面是 YH-LDR 模块的通用控制流程:

  1. 连接硬件:将 YH-LDR 模块连接到单片机的 ADC 输入引脚上,连接电源和地线。

  2. 初始化 ADC:初始化 ADC,设置 ADC 输入引脚和参考电压等参数。

  3. 读取模块输出:使用 ADC 转换器读取 YH-LDR 模块的输出电压值,并将其转换为相应的光线强度值。

  4. 处理数据:根据需要,对光线强度值进行处理,如转换为百分比或比较大小等。

  5. 控制输出:根据光线强度值,控制相应的输出设备,如 LED 灯或继电器等。

  6. 循环控制:在一个循环中不断重复上述步骤,以持续监测和控制 YH-LDR 模块。

        总之,使用单片机系统控制 YH-LDR 模块的基本思路是读取模块输出并根据光线强度控制相应的设备。具体实现需要根据具体应用场景进行调整。

代码案例:

引脚配置:

//STM32上的LED1 GPIO为PB5#define LED1_GPIO_PORT    GPIOB			            
#define LED1_GPIO_CLK 	    RCC_APB2Periph_GPIOB	
#define LED1_GPIO_PIN		GPIO_Pin_5#define ON  0
#define OFF 1/* 宏定义实现LED灯的设置*/
#define LED1(a)	if (a)	\GPIO_SetBits(LED1_GPIO_PORT,LED1_GPIO_PIN);\else		\GPIO_ResetBits(LED1_GPIO_PORT,LED1_GPIO_PIN)void LED_GPIO_Config(void)
{		GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd( LED1_GPIO_CLK, ENABLE);GPIO_InitStructure.GPIO_Pin = LED1_GPIO_PIN;	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStructure);
}

时钟配置:

#define    LDR_GPIO_CLK       RCC_APB2Periph_GPIOC
#define    LDR_GPIO_PORT    GPIOC		   
#define    LDR_GPIO_PIN		  GPIO_Pin_13void LDR_GPIO_Config(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(LDR_GPIO_CLK,ENABLE);GPIO_InitStructure.GPIO_Pin = LDR_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; GPIO_Init(LDR_GPIO_PORT, &GPIO_InitStructure);
}//检测功能
uint8_t LDR_Test(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin)
{			if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == 1 )  //读取DO数据,如果高,则LDR设置OFF,否则设置ONreturn LDR_OFF;  elsereturn LDR_ON;   
}

主函数配置:

int main(void)
{	LED_GPIO_Config();//LED配置LED2_OFF;//LED灯初始化熄灭LDR_GPIO_Config();//光敏配置while(1){	   if (LDR_Test(LDR_GPIO_PORT,LDR_GPIO_PIN) == LDR_ON)LED2_ON;  elseLED2_OFF; }
}

USB 转串口芯片 CH340_时光の尘的博客-CSDN博客

DHT11 数字湿温度传感器的原理和应用范例-CSDN博客

ET2046·低电压 I/O 触摸屏控制电路(SSOP16、QFN16)-CSDN博客

时光の尘_千题千解·Java面试宝典,Linux学习,嵌入式学习-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/148067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QString::fromLocal8Bit

QString::fromLocal8Bit QString::fromLocal8Bit 是 Qt 框架中的一个函数,用于将本地编码(Local 8-bit)的字符串转换为 QString 类型的字符串。下面对这个函数进行解释: QString QString::fromLocal8Bit(const char *str);str 是…

【C++】多线程的学习笔记(3)——白话文版(bushi

目录 前一篇内容(mutex锁) 前言 Condition Variable的简介 Condition Variable的使用方法 wait方法 wait for函数与wait until函数 notify函数 notify_one notify_all 注意 前一篇内容(mutex锁) 【C】多线程的学习笔记&…

Hive默认分割符、存储格式与数据压缩

目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限(ROW FORMAT)配置标准HQL为: ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…

pythongui实时闹钟

# codinggbk import tkinter as tk from time import strftime# 创建一个主窗口 root tk.Tk() root.title("实时闹钟")# 设置窗口的大小不可变 root.resizable(False, False)# 设置窗口始终保持在最上层 root.attributes(-topmost, True)# 更新时间的函数 def time(…

java游戏制作-拼图游戏

一.制作主界面 首先创建一个Java项目命名为puzzlegame。 再在src中创建一个包,用来制作主界面 代码: 结果: 二.设置界面 代码: 三.初始化界面 代码: 优 化代码: 结果: 四.添加图片 先在Java项…

mysql查询json字符串内容

参考文章:mysql json 基础查询_mysql json查询-CSDN博客 mysql查询json字符串内容 (多层数组嵌套) select id,nameJSON_EXTRACT(JSON_UNQUOTE(JSON_EXTRACT(JSON_UNQUOTE(config_json), $.baseInfo)), $.template_list[*].sms_content) s…

Golang Context 的使用指南

Golang Context 的使用指南 1. 什么是 Context 在 Golang 中,Context 是一个用于跨 goroutine 传递数据、取消任务以及超时控制的标准库。它提供了一种从父 goroutine 向子 goroutine 传递请求或控制信息的机制,可以有效地管理和控制 goroutine 的生命…

kafka入门(一):kafka消息发送与消费

kafka的基础概念 Producer (消息生产者) 向主题发布消息的客户端应用程序称为生产者(Producer),生产者用于持续不断的向某个主题发送消息。 Consumer (消息消费者) 订阅主题消息的客户端程序称为消费者(Consumer),消费者用于处理生产者产生的消息。 Co…

03 前后端数据交互【小白入门SpringBoot + Vue3】

项目笔记,教学视频来源于B站青戈 https://www.bilibili.com/video/BV1H14y1S7YV 前两个笔记。是把前端页面大致做出来,接下来,把后端项目搞一下。 后端项目,使用IDEA软件、jdk1.8、springboot2.x 。基本上用的是稳定版。 还有My…

【C++】chono库:使用及源码分析

文章目录 0. 概述1. duration1.1 分析std::chrono::duration_cast() 1.2 使用案例std::chrono::duration::count() 1.3 部分源码 2. time_point2.1 分析std::chrono::time_point_cast() 2.2 使用举例std::chrono::time_point::time_since_epoch() 2.3 部分源码 0. 概述 本篇文…

python使用selenium webDriver时 报错

可能原因和解决: 1. python 解释器 ----> 设置 2. 浏览器版本 与 浏览器驱动版本不一致 ----> 安装同一版本的 (下载chromedriver | 谷歌驱动更高版本的测试版) 参考:Python使用Selenium WebDriver的入门介绍及安装教程-CSDN博客 Selenium安…

设计模式-行为型模式-策略模式

一、什么是策略模式 策略模式是一种行为设计模式,它允许在运行时选择算法或行为,并将其封装成独立的对象,使得这些算法或行为可以相互替换,而不影响使用它们的客户端。(ChatGPT生成) 主要组成部分&#xff…

基于django的在线教育系统

基于python的在线教育系统 摘要 基于Django的在线教育系统是一种利用Django框架开发的现代化教育平台。该系统旨在提供高效、灵活、易用的在线学习体验,满足学生、教师和管理员的需求。系统包括学生管理、课程管理、教师管理、视频课程、在线测验等核心功能。系统采…

docker 部署Redis集群(三主三从,以及扩容、缩容)

1:创建6个redis容器 docker run -d --name redis01 --net host --privilegedtrue -v /opt/redis/redis01:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381 docker run -d --name redis02 --net host --privilegedtrue -v /opt/redis/redis0…

在线 sha1 加密

ttmd5 http://www.ttmd5.com/hash.php?type5 qqxiuzi https://www.qqxiuzi.cn/bianma/sha-1.htm jb51 http://tools.jb51.net/password/sha_encode

Kubernetes实战(五)-pod之间网络请求实战

1 同namespace内pod网络请求 1.1 创建namespace ygq $ kubectl create namespace ygq namespace/ygq created 1.2 创建svc和deployment 在naemspace ygq下创建两个应用:nginx和nginx-test。 1.2.1 部署应用nginx $ cat nginx-svc.yaml apiVersion: v1 kind: …

立哥国家示范项目-5G智慧文旅

项目总体技术方案: 1、旅游5G专网建设:是基于公网授权频谱,采用专线形式,使用MEC服务器为用户提供服务,边缘计算使用Edge VLAVR支持多类型应用,并通过编排实现边缘业务的构建。解决了信号密度覆盖小、强度弱的问题。 …

代码随想录二刷 | 数组 | 总结篇

代码随想录二刷 | 数组 | 总结篇 基础知识二分查找移除元素有序数组的平方长度最小的数组最小覆盖子串螺旋数组 基础知识 定义:数组是存放在连续内存空间上的相同类型数据的集合 特点: 数组下标从 0 开始数组内存空间的地址是连…

Golang Context 的并发安全性探究

在 Golang 中,Context 是一个用于管理 goroutine 生命周期、传递请求和控制信息的重要机制。然而,当多个 goroutine 同时使用 Context 时,很容易出现并发安全性问题。本文将探讨如何正确使用 Context 并保证其在并发环境下的安全性。 1. Con…

23111707[含文档+PPT+源码等]计算机毕业设计基于javawebmysql的旅游网址前后台-全新项目

文章目录 **软件开发环境及开发工具:****功能介绍:****论文截图:****实现:****代码:** 编程技术交流、源码分享、模板分享、网课教程 🐧裙:776871563 软件开发环境及开发工具: 前端使用技术&a…