传感器基础:传感器使用与编程使用(三)

目录

  • 常用传感器讲解九--雨滴传感器
    • 具体讲解
    • 电路连接
    • 代码实现
  • 常用传感器讲解十--光传感器根据亮度安排灯
    • 具体讲解
    • 电路连接
    • 代码实现
  • 常用传感器讲解七--light cup(KY-008)
    • 具体讲解
    • 电路连接
    • 代码实现
  • 常用传感器讲解十二--倾斜开关传感器(KY-020)
    • 具体讲解
    • 电路连接
    • 代码实现

常用传感器讲解九–雨滴传感器

具体讲解

在这里插入图片描述

雨滴传感器基本上是一块板,上面以线形形式涂覆镍。它基于抵抗原理。雨水传感器模块允许通过模拟输出引脚测量湿度,当湿度阈值超过时,它可以提供数字输出。
该模块基于LM393运算放大器。它包括电子模块和“收集”雨滴的印刷电路板。当雨滴积聚在电路板上时,它们会形成并联电阻路径,该路径可通过运算放大器进行测量。
传感器是一个电阻偶极子,在潮湿时显示较小的电阻,而在干燥时显示较大的电阻。当船上没有雨滴时,它会增加电阻,因此我们根据V = IR获得高电压。
当出现雨滴时,它会降低电阻,因为水是电的导体,并且水的存在使镍线并联连接,因此降低了电阻并降低了其两端的电压降。

电路连接

在这里插入图片描述

代码实现

const int buzzer=7;
int i;
void setup() {pinMode(buzzer,OUTPUT);
pinMode(2,INPUT);  
}void loop() {if(digitalRead(2)==1)
{digitalWrite(buzzer,HIGH);}else
{digitalWrite(buzzer,LOW);}}

常用传感器讲解十–光传感器根据亮度安排灯

具体讲解

接线
我有一个光敏电阻连接到模拟引脚0(任何模拟引脚都可以工作)和面包板右侧的5V电压。它通过接地的1K欧姆电阻器运行。我将面包板另一侧的LED(任何颜色)连接到数字引脚13(任何数字引脚都可以工作)和接地的220欧姆电阻(100欧姆也可以工作)。在第一个LED的右侧,通过不同的数字引脚,以相同的方式为不同颜色的LED接线。

这个怎么运作
如果光敏电阻读取的值大于450,则显示“It is quite light!”。在串行监视器上,然后关闭所有LED,如下所示:

if(light > 450) { // If it is bright…
Serial.println(“It is quite light!”);
digitalWrite(13,LOW); //turn left LED off
digitalWrite(12,LOW); // turn right LED off
}
如果读取的值介于230到450之间,则会打印“It is average light!”。在串行监视器上,并打开左侧的LED,如下所示:

else if(light > 229 && light < 451) { // If it is average light…
Serial.println(“It is average light!”);
digitalWrite(13, HIGH); // turn left LED on
digitalWrite(12,LOW); // turn right LED off
}
这仅使我们得到低于230的值。如果该值小于230,则打印“It is quite dark!”。在串行监视器上,并打开两个LED,如下所示:

else { // If it’s dark…
Serial.println(“It is pretty dark!”);
digitalWrite(13,HIGH); // Turn left LED on
digitalWrite(12,HIGH); // Turn right LED on
}
我在循环末尾添加了1000的延迟,以防止信息超载到串行监视器中,如下所示:

delay(1000); // don’t spam the computer!

电路连接

在这里插入图片描述

代码实现

int light = 0; // store the current light valuevoid setup() {// put your setup code here, to run once:Serial.begin(9600); //configure serial to talk to computerpinMode(13, OUTPUT); // configure digital pin 13 as an outputpinMode(12, OUTPUT); // configure digital pin 12 as an output
}void loop() {// put your main code here, to run repeatedly:light = analogRead(A0); // read and save value from PRSerial.println(light); // print current light valueif(light > 450) { // If it is bright...Serial.println("It is quite light!");digitalWrite(13,LOW); //turn left LED offdigitalWrite(12,LOW); // turn right LED off}else if(light > 229 && light < 451) { // If it is average light...Serial.println("It is average light!");digitalWrite(13, HIGH); // turn left LED ondigitalWrite(12,LOW);  // turn right LED off}else { // If it's dark...Serial.println("It is pretty dark!");digitalWrite(13,HIGH); // Turn left LED ondigitalWrite(12,HIGH); // Turn right LED on}delay(1000); // don't spam the computer!
}

常用传感器讲解七–light cup(KY-008)

具体讲解

在这里插入图片描述

KY-027魔术灯杯模块是一组两块板,每块板都有一个led和一个水银倾斜开关。使用PWM驱动每个模块上的LED,可以实现倾斜时将光从一个模块“神奇地”传递到另一个模块的效果。
KY-027是一对模块,每个模块由水银开关,LED和10kΩ电阻组成。每个板都有一个引脚来控制开关,LED,电源和地

电路连接

在这里插入图片描述

使用下图连接每个模块。

KY-027(A) Arduino的
G 地线

  • 5伏
    小号 8
    大号 9
    KY-027(B) Arduino的
    G 地线
  • 5伏
    小号 7
    大号 6

代码实现

在这个Arduino草图中,我们将使用两个KY-027模块来创建魔术灯杯效果。每个模块中的水银开关提供一个数字信号,该信号用于使用PWM来调节LED的亮度。倾斜模块会降低一个模块的亮度,同时增加另一个模块的亮度,从而产生幻觉地从一个模块传递到另一个模块的光​​幻觉。

int ledPinA = 9;
int switchPinA = 8;
int switchStateA = 0;
int ledPinB = 6;
int switchPinB = 7;
int switchStateB = 0;
int brightness   = 0;void setup() 
{pinMode(ledPinA, OUTPUT); pinMode(ledPinB, OUTPUT);  pinMode(switchPinA, INPUT); pinMode(switchPinB, INPUT);
}void loop() 
{switchStateA = digitalRead(switchPinA);if (switchStateA == HIGH && brightness != 255){ brightness ++;} switchStateB = digitalRead(switchPinB);if (switchStateB == HIGH && brightness != 0){ brightness --;} analogWrite(ledPinA, brightness);  //  A slow fade outanalogWrite(ledPinB, 255 - brightness);  // B slow bright updelay(20);
}

常用传感器讲解十二–倾斜开关传感器(KY-020)

具体讲解

在这里插入图片描述

KY-020 倾斜开关传感器模块。当电路向侧面倾斜时,只要以足够的力和倾斜度移动电路,即可激活内部的球开关,从而使电路闭合
KY-020由一个10kΩ电阻器和一个具有双向导电性的金属球开关组成,该开关根据倾斜程度来打开/关闭电路。它不测量倾斜角。

电路连接

将模块的电源线(中间)和地线(-)分别连接到+5和GND。将信号(S)连接到Arduino的引脚2。

KY-020 Arduino的
小号 2个
中间 +5伏
– 地线
在这里插入图片描述

代码实现

当模块检测到倾斜度变化时,以下草图将打开Arduino引脚13上的LED。倾斜KY-020以打开/关闭LED。

int tiltPin = 2;      // pin number for tilt switch signal 
int ledPin =  13;     // pin number of LED 
int tiltState = 0;    // variable for reading the tilt switch statusvoid setup() {  pinMode(ledPin, OUTPUT);  // set the LED pin as output      pinMode(tiltPin, INPUT);  // set the tilt switch pin as input
}void loop(){// get the tilt switch statetiltState = digitalRead(tiltPin);// check if tilt switch is tilted.if (tiltState == HIGH) {     digitalWrite(ledPin, HIGH);  } else {digitalWrite(ledPin, LOW); }
}

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

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

相关文章

Java版企业电子招标采购系统源码——鸿鹄电子招投标系统的技术特点

在数字化时代&#xff0c;采购管理也正经历着前所未有的变革。全过程数字化采购管理成为了企业追求高效、透明和规范的关键。该系统通过Spring Cloud、Spring Boot2、Mybatis等先进技术&#xff0c;打造了从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通过…

鸿蒙 - arkTs: 页面路由

页面栈最大容量为32&#xff0c;使用router.clear()可以清空页面栈&#xff0c;释放资源 跳转方式&#xff1a; router.pushUrl&#xff1a;目标页压入页面栈&#xff0c;使用router.back()可以返回上个页面。router.replaceUrl&#xff1a;目标页替换当前页&#xff0c;会清…

旧衣回收小程序搭建,稳占回收市场

近几年我国大众的消费水平不断提升&#xff0c;闲置物品也相应增加了不少&#xff0c;尤其是闲置衣服&#xff0c;为了减少资源浪费&#xff0c;旧衣服回收回收行业受到了大众的关注。 目前我国旧衣服回收行业的市场规模达到了300多亿元&#xff0c;旧衣回收行业的商业价值非常…

Linux 查看系统类型和版本(内核版本 | 发行版本)

Linux 查看系统类型和版本 首先普及下linux系统的版本内容1. 查看linux系统内核版本2. 查看linux系统发行版本 首先普及下linux系统的版本内容 内核版本和发行版本区别 内核版本就是指 Linux 中最基层的代码&#xff0c;版本号如 Linux version 3.10.0-327.22.2.el7.x86_64发行…

JavaSE50题:26. (数组练习题)使奇数位于偶数之前

概述 调整数组顺序使得奇数位于偶数之前&#xff0c;调整之后&#xff0c;不关心大小顺序。 如数组&#xff1a;{1,2,3,4,5,6} 调整后可能是&#xff1a;{1&#xff0c;5&#xff0c;3&#xff0c;4&#xff0c;2&#xff0c;6} 方法 定义 left 和 right&#xff0c;二者分别…

第16章Java

通过java的反射机制&#xff0c;程序员可以更深入的控制程序的运行过程。例如&#xff0c;可在程序运行时对象用户输入的信息进行验证&#xff0c;还可以逆向控制程序的执行过程&#xff0c;讲解了反射&#xff0c;另外java还提供了Annotation注解功能&#xff0c;该功能建立在…

PYTHON基础:线性算法--线性回归|岭回归|套索回归模型

常用的三种线性模型算法–线性回归模型、岭回归模型、套索回归模型 线性模型基本概念 线性模型的一般预测模型是下面这个样子的&#xff0c;一般有多个变量&#xff0c;也可以称为多个特征x1、x2、x3 … 最简单的线性模型就是一条直线直线的方程式&#xff0c;b0是截距&#…

vue3 根据用户权限控制左侧菜单和路由拦截

目录 前言 整体思路 详细开发 1.左侧菜单的显隐控制 2.控制路由权限 补充权限控制 总结 前言 我这里是vue3开发的一个后台管理系统&#xff0c;所以涉及用户权限管理&#xff0c;以及页面权限等&#xff0c;其他模块部分可以查看专栏&#xff0c;这里只对怎么实现根据用…

实践:修改正式站表名

一.引言 现在有一个需求&#xff0c;发现正式站的数据库里面有个表名不合理&#xff0c;需要修改&#xff0c;但是正式站一般不能修改表名&#xff0c;所以现在的做法是新建一个表&#xff0c;将旧表的数据复制到新表&#xff0c;然后将旧表删除。由于正式站的数据还在不断产生…

[Redis实战]优惠券秒杀

三、优惠券秒杀 3.1 全局唯一ID 每个店铺都可以发布优惠券&#xff1a; 当用户抢购时&#xff0c;就会生成订单并保存到tb_voucher_order这种表中&#xff0c;而订单表如果使用数据库自增ID就存在一些问题&#xff1a; id的规律性太明显受单表数据量的限制 场景分析一&…

el-date-picker 日期选择限制

el-date-picker 日期选择限制 场景&#xff1a; 选择时间的区间是31天&#xff0c;默认显示最近一周的数据 代码&#xff1a; <el-date-picker v-model"due_date" type"daterange" range-separator"至" start-placeholder"开始日期&qu…

多线程多进程的使用场景和常见问题处理

多线程多进程的使用场景 多线程和多进程都是用来实现并发执行的技术&#xff0c;它们可以提高程序的性能和效率。它们各自适用于不同的场景&#xff1a; 多线程的使用场景&#xff1a; I/O密集型任务&#xff1a;当程序需要进行大量的I/O操作&#xff08;如文件读写、网络通…

【PythonRS】基于Python对栅格数据进行归一化(统一量纲至0~1)

有段时间没有更新Python处理栅格、矢量数据了&#xff0c;一部分是因为之前基本上已经把如何使用Python处理地理数据的方法覆盖完了&#xff0c;另一部分是因为最近有其他方面的知识需要学习和巩固。也是赶巧&#xff0c;最近有个项目需要构建模型对影像进行反演需要用到归一化…

Word2Vec详解: CBOW Skip-gram和负采样

Word2Vec&#xff1a; CBOW & Skip-gram 如果是拿一个词语的上下文作为输入&#xff0c;来预测这个词语本身&#xff0c;则是 CBOW 模型。 而如果是用一个词语作为输入&#xff0c;来预测它周围的上下文&#xff0c;那这个模型叫做 Skip-gram 模型。 CBOW 模型 连续词袋模…

简单实现一个自定义loader

webpack定义的loader需要遵循单一功能原则&#xff0c;也就是一个loader只实现一个功能。在实现开发中&#xff0c;我们会直接使用诸如蓝湖等生成的样式&#xff0c;比如 button{background: rgb(255, 85, 46); }但为了考虑主题换肤&#xff0c;我们实现的想要的可能是 butto…

在用Vite开发时静态图片放哪里,才能保证显示,不出现找不到资源

在用Vite开发时静态图片放哪里 在用Vite开发时静态图片&#xff08;资源&#xff09;放哪里呢 &#xff1f; 如果你想直接全部显示的那么请你把静态资源放到public目录下面&#xff0c;这样你一打包所有的静态资源都会放到打包根目录下。但是此时你在项目中引用的地址一定要是…

OM6621选型指南详细对比应用蓝牙遥控智能穿戴游戏手柄

昂瑞微蓝牙OM6621系列对比选型指南 OM6621EM和OM6621ED性能特点 超低功耗蓝牙SOC精简BLE5.1协议栈主频64Mhz&#xff0c;40KB RAM集成红外线收发电路主要应用在语音遥控、鼠标、水表等 功能特点 功耗&#xff1a;1秒连接平均电流&#xff1a;11uA峰值电流&#xff1a;TX0dBm…

Vue 监听状态 watch 与监听状态 watchEffect

监听状态 watch watch 函数用于监听响应式数据的变化。 使用 watch 函数监听基于 ref 创建的响应式数据 (基本数据类型)。 import { ref, watch } from "vue" export default {setup() {const text ref("")watch(text, (current, previous) > {conso…

javascript2

文章目录 一、 内置对象1&#xff09; 对象2&#xff09; Array 数组1. 创建2. 特点3. 属性和方法4. 二维数组 3&#xff09;String 对象1. 创建2. 特点3. 属性4. 方法 4) Math 对象1. 定义2. 属性3. 方法 5&#xff09;日期对象1. 创建日期对象2. 日期对象方法 1. 创建日期对象…

结构体--高考数组

高考数组 高考数组 题意 求给定N组数组的平均值并输出最大的两个 思路 先求出其平均值再结构体进行比较&#xff0c;输出前两个最大值 算法一&#xff1a;结构体 实现步骤 定义结构体&#xff0c;进行平均值的比较&#xff0c;给数据定义下标&#xff0c;sort进行递增排序&a…