【雕爷学编程】Arduino动手做(02)---光敏电阻模块2

2023-12-24 01:20

本文主要是介绍【雕爷学编程】Arduino动手做(02)---光敏电阻模块2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二:光敏电阻传感器模块

在这里插入图片描述
光敏电阻传感器模块实验所需硬件清单
光敏电阻(5516)X3
Arduino Uno开发板 X1
10K分压电阻(1/8W)x1
杜邦线 若干(备了10条)
LED发光二极管(蓝色)X1
220欧姆限流电阻(1/8W)x1
光敏电阻模块(3针与4针)X2
Proto Shield 原型扩展板(带mini面包板)X1
按键开关模块(下拉电阻与上拉电阻款各1只)X2

在这里插入图片描述

光敏电阻传感器模块实验的说明
1、光敏电阻模块小板模拟量输出AO可以和AD模块相连,通过AD转换,可以获得环境光强更精准的数值;
2、光敏电阻模块对环境光线变化比较敏感,一般用来检测周围环境的光线的亮度,触发Arduino或继电器模块等,实现光电控制;
3、模块在环境光线亮度达不到设定阈值时,DO端输出高电平,当外界环境光线亮度超过设定阈值时,DO端输出低电平;
4、DO输出端可以与Arduino直接相连,通过Arduino来检测高低电平,由此来检测环境的光线亮度改变;
5、DO输出端也能直接驱动继电器模块,由此可以组成一个光控开关;
6、光敏传感器控制的LED为你Arduino上接的13脚LED灯(也可以理解为负载),并非模块上的D0-LED+指示灯;
7、模块上的蓝色电位器旋钮最好不要顺时针和逆时针到底,保持在中间即可控制。微调进行灵敏度调节;
8、本系列小实验使用多种方式进行,包括光敏电阻直接输出、4针模块的A0模拟输出和3针模块数字输出等。

在这里插入图片描述

实验二:通过光敏电阻模块模拟口来控制LED灯的开关
1、实验二参考开源代码(Arduino):

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二:通过光敏电阻模块模拟口来控制LED灯的开关实验接线:LED灯(板载D13)光敏电阻模块   Uno+            VccG            GNDA0           A0
*/int sensor_value = 0; void setup() {Serial.begin(9600);pinMode(A0, INPUT);pinMode(13, OUTPUT);
}void loop() {sensor_value = analogRead(A0);//将模拟数据(A0)赋值给变量Serial.println(sensor_value);//串口输出亮度数值delay(200);if (sensor_value > 151)//设置打开LED灯的阕值(可参考串口值来定){digitalWrite(13, HIGH);//如果串口值大于151则LED灯亮Serial.println("亮");// 串口输出“亮”字delay(500);// 点亮500毫秒}else{digitalWrite(13, LOW);}
}

打开串口监视器,可以看到正常光线时的数值,当用手遮住光敏电阻模块时,数值上升,如果大于151(实验设置的阕值),则点亮LED灯(显示亮),小于151则LED灯熄灭。

在这里插入图片描述
用手遮光时的实验场景图

在这里插入图片描述

开源仿真编程(Linkboy V4.2)及串口输出

在这里插入图片描述
在这里插入图片描述

开源图形编程(Mind+、编玩边学)以及实验串口输出截图

在这里插入图片描述
在这里插入图片描述

实验三:LED亮度随环境光发生变化(PWM调制)
实验三参考开源代码(Arduino):

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验三:LED亮度随环境光发生变化(PWM调制)实验接线:LED灯接D3(PWM脚)光敏电阻模块  Uno+             VccG             GNDA0            A0
*/const int minVal = 220; //设定当前环境光最小值(正常光线下灯未亮的值)
const int maxVal = 800;   //设定当前环境光的最大值
const int ldrPin = A0;   //光敏电阻连接引脚A0
const int ledPin = 3;   //LED模拟(PWM)输出引脚D3void setup() 
{pinMode(ldrPin, INPUT);pinMode(ledPin, OUTPUT);Serial.begin(9600);
}void loop(){int ldrVal = analogRead(ldrPin);  //获取光敏电阻的返回值ldrVal = constrain(ldrVal, minVal, maxVal);int ledVal = map(ldrVal, minVal, maxVal, 0, 255);Serial.print("Value : ");Serial.print(ldrVal);         //将光敏电阻返回值输出到串口监视器上Serial.print("----");Serial.println(ledVal);       //将映射后的值输出到串口监视器上analogWrite(ledPin, ledVal);  //PWM输出,LED亮度随环境光发生变化delay(400);
}

实验结果:随着光照强度变小,LED越亮。随光线变化的串口输出情况

在这里插入图片描述

这篇关于【雕爷学编程】Arduino动手做(02)---光敏电阻模块2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/530129

相关文章

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

Python sys模块的使用及说明

《Pythonsys模块的使用及说明》Pythonsys模块是核心工具,用于解释器交互与运行时控制,涵盖命令行参数处理、路径修改、强制退出、I/O重定向、系统信息获取等功能,适用于脚本开发与调试,需... 目录python sys 模块详解常用功能与代码示例获取命令行参数修改模块搜索路径强制退出程序标准输入

Python pickle模块的使用指南

《Pythonpickle模块的使用指南》Pythonpickle模块用于对象序列化与反序列化,支持dump/load方法及自定义类,需注意安全风险,建议在受控环境中使用,适用于模型持久化、缓存及跨... 目录python pickle 模块详解基本序列化与反序列化直接序列化为字节流自定义对象的序列化安全注

python pymodbus模块的具体使用

《pythonpymodbus模块的具体使用》pymodbus是一个Python实现的Modbus协议库,支持TCP和RTU通信模式,支持读写线圈、离散输入、保持寄存器等数据类型,具有一定的参考价值... 目录一、详解1、 基础概念2、核心功能3、安装与设置4、使用示例5、 高级特性6、注意事项二、代码示例

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

Nginx添加内置模块过程

《Nginx添加内置模块过程》文章指导如何检查并添加Nginx的with-http_gzip_static模块:确认该模块未默认安装后,需下载同版本源码重新编译,备份替换原有二进制文件,最后重启服务验... 目录1、查看Nginx已编辑的模块2、Nginx官网查看内置模块3、停止Nginx服务4、Nginx