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

news2024/9/24 21:21:46

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
  +            Vcc
  G            GND
  A0           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
  +             Vcc
  G             GND
  A0            A0
*/

const int minVal = 220; //设定当前环境光最小值(正常光线下灯未亮的值)
const int maxVal = 800;   //设定当前环境光的最大值
const int ldrPin = A0;   //光敏电阻连接引脚A0
const int ledPin = 3;   //LED模拟(PWM)输出引脚D3

void 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越亮。随光线变化的串口输出情况

在这里插入图片描述

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

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

相关文章

联动规则组件-KOV场景梳理技术方案

一、背景: 多场景使用到kov类型组件,但是实现上不统一,各个场景的协议都比较定制,且开发的时候难度较大。所以将组件进行抽离 目标:支撑所有逻辑场景 什么是kov?如下图: 难点: 1、…

KVM-虚拟机【安装与基础使用】

目录 【1】kvm-01:安装-KVM管理工具 【2】创建新的虚拟机 【3】kvm常用管理命令 【4】console控制台登录 【5】修改虚拟机的密码 【6】KVM虚拟机的虚拟磁盘管理和快照管理 【7】将raw格式的磁盘挂载到宿主机 【8】磁盘的管理命令 【9】创建快照-内部快照 【…

java学习路程之篇七、知识点、赋值运算符、关系运算符、逻辑运算符、三元运算符、运算符优先级

文章目录 1、赋值运算符2、关系运算符3、逻辑运算符4、三元运算符5、运算符优先级 1、赋值运算符 2、关系运算符 3、逻辑运算符 4、三元运算符 5、运算符优先级

Elasticsearch和MySQL之间的数据同步问题

前言:大家好,我是小威,24届毕业生,在一家满意的公司实习。本篇文章参考网上的课程,介绍Elasticsearch和MySQL之间的数据同步问题。 如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。 小威在…

vue路由接口转发

目录 一、nginx的路由转发 二、vue路由转发 三、两者路由转发的区别 vue的路由和nginx的路由有许多相似之处,也有一些不同的地方。 两者都有接口转发的功能,但是具体转发的方式会有一些区别。 一、nginx的路由转发 nginx的路由是这样的:…

C# Modbus通信从入门到精通(3)——Modbus RTU(0x01功能码)

1、01(0x01)读线圈 使用该功能码能从远程地址中读取1到2000个线圈的状态,每个线圈的状态只能是0或者1,读取的线圈数据由主站读取时指定。 2、发送报文格式 更详细的格式如下: 从站地址+功能码+起始地址高位+起始地址低位+线圈数量高位+线圈数量低位+CRC,一共8个字节,其…

JS-变量

文章目录 1.变量概述1.1 什么是变量1.2 变量在内存中的存储 2.变量的使用2.1 声明变量2.2 赋值2.3 变量的初始化 3.变量语法扩展3.1 更新变量3.2 同时声明多个变量3.3 声明变量特殊情况 4.变量命名规范 1.变量概述 1.1 什么是变量 变量是用于存放数据的容器。 我们通过 变量名…

gulimall-性能监控-压力测试

性能监控与压力测试 前言一、性能监控1.1 jvm 内存模型1.2 jvisualvm 作用1.3 监控指标 二、压力测试2.1 概念2.2 性能指标2.3 JMeter 压测工具 前言 本文继续记录B站谷粒商城项目视频 P141-150 的内容,做到知识点的梳理和总结的作用。 一、性能监控 1.1 jvm 内存…

AcWing 106. 动态中位数—对顶堆

问题链接 AcWing 106. 动态中位数 问题描述 分析 推荐b站董晓算法视频讲解对顶堆 这道题应该用树状数组、平衡树也能解决,这里用对顶堆来做,对顶堆能够用维护第K位置的数,K是固定的,在这道题中,维护两个堆&#xff…

posix ipc之匿名信号量

note 使用信号量进行进程间通信时,信号量要放置在共享内存上;若是线程间通信,放堆上或全局变量区就行 code // 使用信号量进行进程间通信时,信号量要放置在共享内存上;若是线程间通信,放堆上或全局变量区…

Python批量实现Word、EXCLE、PPT转PDF文件

一、绪论背景 在日常办公和文档处理中,有时我们需要将多个Word文档、Excel表格或PPT演示文稿转换为PDF文件。将文档转换为PDF格式的好处是它可以保留文档的布局和格式,并且可以在不同平台上进行方便的查看和共享。 本篇博文将介绍如何使用Python编程语言…

0714两小时配置完服务器环境

之前那个222的服务器,不知道下载的什么东西,包含了一个挖矿程序,然后就停掉了它。 重新配置一个环境在220服务器上。 1、配置anaconda :(直接下载的这个博客的那个版本) https://blog.csdn.net/m0_46926492/article/details/1293…

【分布式】ceph存储

目录 一、存储基础单机存储设备单机存储的问题商业存储解决方案 二、 分布式存储 (软件定义的存储 SDS)分布式存储的类型Ceph 优势Ceph 架构Ceph 核心组件Pool中数据保存方式支持两种类型:Pool、PG 和 OSD 的关系OSD 存储后端BlueStore 的主要…

本地生活直播,和电商直播有什么不一样?

直播正在成为零售业的标配,当下最新的一条赛道是“本地生活直播”。 (商家开始在美团等平台进行本地生活直播。摄影:李崧稷) 今年618,在老牌电商平台拉着无数网店,拼尽全力想要堆高销量的时候,一…

k8s之Pod详解

目录 一、Pod基础概念1.1 在Kubrenetes集群中Pod有如下两种使用方式1.2 kubernetes中的pause容器主要为每个容器提供以下功能1.3 Kubernetes设计这样的Pod概念和特殊组成结构有什么用意? 二、Pod分类三、容器的分类3.1 pause基础容器(infrastructure con…

[SCTF2019]creakme

前言 主要是SEH解密然后AES加密 分析 SEH main函数中获取到程序句柄也就是首地址,然后进入图中函数找到.SCTF段地址后产生异常,在异常中进行代码自解密 装载的SEH异常处理函数 因为在异常中有调试判断,所以处于调试状态中将异常抛给调试者…

玩转内存修改函数——【C语言】

在上篇博客中&#xff0c;我们学习了字符串函数&#xff0c;针对一些字符串我们可以做出一系列操作。接下来我们将学习一些内存修改函数&#xff08;#inlcude<string.h>&#xff09;&#xff0c;让我们一起走进mempy、memmove、memcmp函数中。 目录 mempcy函数​编辑 m…

leetcode刷题(轮转数组、买股票的最佳时机、买卖股票的最佳时机2、跳跃游戏、跳跃游戏2、最大子序列交替和、交替数字和、下降路径最小和)

目录 1、轮转数组 2、买卖股票的最佳时机 3、买卖股票的最佳时机② 4、跳跃游戏 5、跳跃游戏2 6、最大子序列交替和 7、交替数字和 8、下降路径最小和 1、轮转数组 class Solution():def rotate(self, nums, k):def reverse(i, j): #逆置数组while i < j:nums[i]…

Oracle Apex制作一个简单的交互式报表页面&页设计

目录 创建好一个菜单表 简单查询一下&#xff1a; 创建交互式报表 工作报表展示​编辑 菜单报表展示​编辑 页设计器 改变布局样式 修改标签内容 添加验证&#xff06;更改必填项 注意&#xff01; 在主页进行跳转 页跳转按钮 主页可以跳转到指定报表 面包屑 报表也可…

Clickhouse数据一致性和物化视图

Clickhouse 一、数据一致性的保证1.通过Group by对数据去重2.通过 FINAL 查询 二、物化视图1.物化视图与普通视图的区别2.优缺点3.基本语法 三、MaterializeMySQL引擎1.特点2.使用细则 四、常见问题排除分布式 DDL某数据节点的副本不执行数据副本表和数据不一致副本节点全量恢复…