第十三篇、基于Arduino uno,获取薄膜压力传感器的值——结果导向

news2024/11/28 2:57:21

0、结果

说明:先来看看串口调试助手显示的结果,第一个值是上电后检测到的平均压力值,第二个值是实时的压力值,第三个值是平均压力值和实时压力值的差值。如果是你想要的,可以接着往下看。

1、外观

说明:虽然薄膜压力传感器形态各异,但是原理和代码都是适用的。

2、连线

说明:只需要连接三根线。
uno————薄膜压力传感器

    5V------电阻--------传感器的右端
GND--------------传感器的左端
    A0--------------传感器的右端

可以参考下面的图连接线路

3、源程序

说明:采用非阻塞方式编写,一定时间检测一次压力值,并将对应功能进行函数化,方便移植。

/****************************************压力 part****************************************/
/*
  接线:
  VCC----电阻--模块的右端
  A0------模块的右端
  GND------模块的左端
*/
#define pressurePin  A0                                               //输入引脚
#define pressureTimeInterval 1000                                     //检测一次的时间间隔                   
unsigned long pressureTimes = 0;                                      //记录设备运行时间
int numAverage[30];                                                   //存放自适应的30个值
int sum = 0;                                                          //将30个值相加
int average = 0;                                                      //求的30个值的平均值
int pressureVal = 0;                                                  //实时显示的输入值
int diffVal = 0;                                                      //自适应时的平均值和当前实时的差值
/****************************************set up and loop part*********************************/
void setup() {
  Serial.begin(9600);                                                 //设置串口波特率为9600
  for (int i = 0; i < 30; i++) {                                      //自适应
    numAverage[i] = analogRead(pressurePin);
    sum += numAverage[i];
  }
  average = sum / 30;                                                 //求出平均值

  Serial.println("设备上线!");
}
void loop() {
  getPressureData();                                                  //获取压力传感器的数据
}
/****************************************压力 part****************************************/
/*获取压力传感器的数据*/
void getPressureData() {
  if (millis() - pressureTimes >= pressureTimeInterval) {             //一定时间执行一次
    pressureTimes = millis();

    pressureVal = analogRead(pressurePin);                            //获取实时的值
    diffVal = abs( average - pressureVal);

    Serial.print("平均值: ");
    Serial.print(average);                                            //打印自适应时得到的平均值
    Serial.print(" , 实时值: ");
    Serial.print(pressureVal);                                        //串口打印对应的值
    Serial.print(" , 差值: ");
    Serial.println(diffVal);                                          //串口打印对应的值
  }
}

4、注意事项

说明:这个模块的引脚很薄,很容易弄断,另外这个传感器能承受的压力蛮大的。

5、基本原理

        Arduino中薄膜压力传感器的工作原理是通过测量薄膜传感器的电阻变化来检测压力信号。
        薄膜传感器通常由两个电极之间夹有一片薄膜材料组成。当外部施加压力时,薄膜会产生形变和应力变化,从而导致电阻值发生变化。这是因为薄膜本身的电阻率、细胞间距等物理参数与其形变、应力状态存在一定的关系。
        利用该特性,薄膜压力传感器通常被设计成一个电桥电路,其中包括两个固定电阻和两个变阻器,其中一个变阻器为薄膜传感器。当外部施加压力时,薄膜传感器的电阻值发生变化,从而导致电桥的平衡状态发生改变,最终产生一个电压输出信号。这个信号可以通过Arduino的模拟输入引脚读取,并通过程序进行分析和处理。

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

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

相关文章

windows上简单部署flink

Windows上部署flink1.17 flink的下载链接 进入页面后下滑找到Apache Flink&#xff0c;然后找到对应版本&#xff0c;之后点击Binaries 找到xxx-bin-scala-xxx.tgz文件下载 下载完成后直接本地解压 解压后进入bin目录新增两个.bat文件&#xff08;直接复制下面内容<注意命名…

扩展dlink-connector-phoenix使其phoenix-5.0.0支持flink1.16

感慨&#xff1a;玩大数据java必须要精通,不然遇到眼花缭乱的框架以及插件拓展的时候就会一下子傻眼了。各种框架之间版本不同有现成的插件或者方案到还可以但是没有就需要自己扩展。目前我使用的是CDH6.3.2&#xff0c;flink使用的是1.6&#xff0c;Phoenix版本的是5.0.0这有在…

数据结构入门7-1(查找)

目录 注 查找的基本概念 线性表的查找 顺序查找 折半查找 分块查找 树表的查找 二叉排序树 平衡二叉树 平衡二叉树的定义 平衡二叉树的平衡调整方式 平衡二叉树的实现 B-树 B-树的定义 B-树的示意性实现 B树 注 本笔记参考&#xff1a;《数据结构&#xff08;C…

【04】数据结构与算法基础-类C语言有关操作补充 | 数组的静态、动态定义 | C、C++中内存分配 | C++中的参数传递方式-指针、数组、引用

目录 1.元素类型说明1.1顺序表类型定义1.2数组定义1.3C语言的内存动态分配1.4C的动态存储分配1.4.1创建内存1.4.2释放内存 1.5C中的参数传递1.5.1传值方式1.5.2传地址方式-指针变量1.5.3传地址方式-数组名1.5.4传地址方式-引用类型 1.元素类型说明 1.1顺序表类型定义 typedef…

HDFS 的健壮性体现在哪里?

前言 本文隶属于专栏《大数据技术体系》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见大数据技术体系 正文 HDFS 的主要目标就是即使在出错的情况下也要保…

Linux进程间通信(消息队列)

可以用命令“ipcs”查看三种 IPC&#xff0c;“ipcrm”删除 IPC 对象。在 i.MX6ULL 终结者开发板终端输入“ipcs” 查看系统中存在的 IPC 信息&#xff1a; 这些 IPC 对象存在于内核空间&#xff0c;应用层使用 IPC 通信的步骤为&#xff1a; 1. 获取 key 值&#xff0c;内核…

【网络】交换机的原理和配置方法

目录 &#x1f341;交换机工作原理 &#x1f341;交换机接口的双工模式 &#x1f341;交换机命令行模式 &#x1f341;交换机常见命令 &#x1f9e7;帮助命令 &#x1f9e7;常用命令介绍 &#x1f341;交换机的基本配置 &#x1f9e7;配置接口的双工模式及速率 &#x1f990;博…

数据库误删恢复

说明 经常听说删库跑路这真的不只是一句玩笑话&#xff0c;若不小心删除了数据库&#xff0c;事情很严重。你一个不小心可能会给公司删没。建议研发不要直连生成环境&#xff0c;一般的话都会分配账号权限&#xff0c;生产环境的账号尽量是只读&#xff0c;以防你一个不经意给库…

java快速结束嵌套循环

java快速结束嵌套循环 快速结束for循环 out:for (int i 0; i < 5; i) {in:for (int j 0; j < 5; j) {if (j 2) {break out;}System.out.println("i " i " j " j);}}解释 将外层for循环起别名 o u t \color{red}{out} out,将内层for循环起别名…

Java NIO-非阻塞I/O(一)

文章目录 1. 简介2. 一个示例服务器3. 缓冲区4. 创建缓冲区5. 填充与排空6. 批量方法7. 数据转换8. 视图缓冲区9. 压缩缓冲区10. 复制缓冲区11. 分片缓冲区 1. 简介 与CPU和内存相比&#xff0c;甚至和磁盘相比&#xff0c;网络都很慢&#xff0c;但要允许CPU速度高于网络&…

YOLOV8最强操作教程.

YoloV8详细训练教程. 相信各位都知道yolov8发布了&#xff0c;也是U神大作&#xff0c;而且V8还会出论文喔&#xff01; 2023.1.17 更新 yolov8-grad-cam热力图可视化链接 2023.1.20 更新 YOLOV8改进-添加EIoU,SIoU,AlphaIoU,FocalEIoU 链接 2023.1.30 更新 如果你需要修改或者…

Vector Scope

下面以PicoScope 6403E-034为例说明 1.Scope 硬件结构介绍 前面板&#xff1a; 最多支持捕获2路CAN/CANFD/FlexRay总线&#xff0c;或者4路LIN总线 后面板&#xff1a; Scope Bus Probe 300 Mhz 2.Option Scope使用条件 前提条件1&#xff1a;购买CANoe/CANalyzer Option Sc…

03-SpringBoot3JDK9~17新特性

1、JDK9新特性---jshell交互式工具 前提是已经配置好了Jdk的环境变量。 2、JDK9新特性---模块化开发 需求&#xff1a; testA可以被模块A调用&#xff0c;testB可能是内部工具类&#xff0c;不想被模块A调用&#xff0c;又不能设置成private。 这时候我们就会用到模块化开发。…

vue3+element-plus+ts elplus table 实现表格动态列 表格列显示与隐藏的动态控制 支持传递插槽与多级表头

如题 先上效果 部分代码展示 Home页面 使用时除了名字不同其他没啥不同,但是我这个封装的函数或者属性较少,如果需要请自行增加 <script setup lang"ts"> import { IPage } from /mixins/pagination import { TableKey } from /types/enum import { useRou…

Vue3-01-Vue3 新特性及环境搭建

Vue.js是一种被广泛使用的JavaScript框架&#xff0c;用于构建用户界面和单页面应用。Vue3是其最新的主要版本&#xff0c;引入了许多新特性并做了一些改进。 一、Vue3 性能提升 1. Object.defineProperty VS Proxy Vue2 和 Vue3 在数据响应性系统的实现上采用了不同的方式&…

通则ZLT X21 CPE使用指南

目录 设备介绍应用场景案例详细配置CPE基本配置网络实现DMZ方式实现网络互通IP Passthrough方式实现网络互通 注意事项 设备介绍 ZLT X21 是一款高性能5G室内CPE&#xff0c;支持NR(SA&NSA)、TDD-LTE、FDD-LTE&#xff0c;将蜂窝网络数据转换为WIFI和有线网口数据&#xf…

【项目实战】博客系统设计与实现

一、项目概述 1.项目需求 前端&#xff1a;展示文章&#xff0c;文章分类&#xff0c;评论&#xff0c;用户登录。 后端 &#xff1a;系统管理&#xff1a;用户管理&#xff0c;菜单管理&#xff0c;角色管理。内容管理&#xff1a;文章管理&#xff0c;分类管理&#xff0c;标…

地震勘探基础(一)之地震波

地震波 纵波/P波 (Compressional Wave) &#xff1a;质点的动方向与波的传播方向一致。天然地震时&#xff0c;纵波造成地面上下颠簸震动&#xff0c;纵波先达到地表。 纵波速度与弹性参数的关系&#xff1a;纵波速度与体积模量&#xff0c;杨氏模量&#xff0c;剪切模量&…

tcpdump 抓包工具详细图文教程(下)

目录 一、tcpdump 常用参数的使用 1.1 tcpdump -i # 指定监听网络接口 1.2 tcpdump -w # 将捕获到的信息保存到文件中&#xff0c;且不分析和打印在屏幕 1.3 tcpdump -r # 从文件中读取数据 1.4 tcpdump -n # 不把 ip 转化成域名 1.5 tcpdump -t # 在每行的输出中不…

springboot自定义注解的使用++日志

1.添加切面依赖 <dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.9</version> </dependency> 2.自定义注解 Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTI…