PH电极酸碱度检测

2023-05-16

最近做了一个项目是关于PH电极测酸碱度的一个仪器。

   简单地说:玻璃电极是一种氢离子选择性电极,相当于一个对玻璃膜两侧氢离子浓度差异能产生附加电势差的“盐桥”,一般的盐桥是为了消除浓差电势或者液体接触电势这种附加电势差,玻璃电极却反其道而行之,利用这个附加电势差测量氢离子浓度的差异,从而确定氢离子浓度,即对应pH值。测量pH值时,参比电极电势与氢离子浓度无关,插在待测溶液中,组成一个半电池,而玻璃电极的内参比电极插在玻璃电极内部已知pH值,即氢离子浓度固定的的标准溶液中,组成另一个半电池。如果两个半电池是用盐桥连接的,理论上盐桥不产生附加电势差,那么测得的电池电动势就是固定的,但现在两个半电池是用玻璃膜隔开的,玻璃膜中含有硅酸钠等,玻璃膜浸水水化后,钠离子与两侧溶液中的氢离子都会发生离子交换作用,这种离子交换作用就会在玻璃膜两侧都产生附加电势差,玻璃电极内部标准溶液氢离子浓度是固定的,内侧附加电势差也固定,但玻璃电极外部待测溶液的氢离子浓度不固定,因此外侧附加电势差不固定,这样一来整个玻璃膜带来的附加电势差就与玻璃电极外部待测溶液的氢离子浓度有了函数关系,也就是与待测溶液的pH值有了函数关系,而这个附加电势差就叠加在外参比电极与玻璃电极内参比电极构成的原电池电动势上,用电压表测出实际电动势,确定附加电势差,即可换算出玻璃电极外部待测溶液的pH值。因此,pH计只不过是一种高精度,高内阻的电压表罢了。由于玻璃膜本身是绝缘体,因此用玻璃膜“盐桥”隔开的原电池内阻极高,可达数百兆欧姆以上,一般的电压表根本无法测量这个原电池的电动势,因此需要带有高输入阻抗器件放大器的电压表,这种高输入阻抗器件基本不可能是双极型晶体管(BJT),通常只能使用电子管或者场效应晶体管(JFET或者MOS),或者以场效应管作为输入级的运算放大器。早年国内的经典产品雷磁25型酸度计就是使用电子管放大器的,因此又大又笨重,耗电也大,工作时还要事先做预热、校准、调零等。现在用集成运放就可以轻易解决了,因此现在生产的酸度计很轻便,价格也便宜,但玻璃电极一直在使用。

以上转至知乎作者:Studio TBsoft
链接:https://www.zhihu.com/question/351271623/answer/862429131
来源:知乎

      模块检测原理:本模块是通过一个放大电路把PH电极探头采集的信号通过放大器放大,通过STM32的12位ADC对放大后的传感器信号采样,并通过最小二乘法软件算法计算出信号与PH值得线性函数关系式,进而采用线性函数关系式求出信号对应的PH值,这里PH斜率我查看了很多资料最终自己总结得到了一个方程式,这个方程式不是固定的,需要自己用PH标准液来测试,看看不同的ph溶液对应不同的电压,最终列出方程式。得到斜率公式以后就可以把自己测的值代入公式得到PH值。用PH校正液来给模块校准。校准方法是在三种不同的溶液中测试,记得每测试一种溶液后要拿清水冲一下,记录好不同溶液的电压值,然后下面是斜率计算公式,写的可能有点乱。

     这是一个大概的公式,具体的还看自己的电路,蓝色是0-3.3v的 红色是0-5v的,有人就纳闷了,为啥还分俩啊?因为部分芯片ADC只能采集0-3.3V的电压。

 

     同相放大电路

 Vout=(1+R4/R3)×(R2/(R1+R2)*Vin+ph+)

 不同的温度下采集到的PH电极也是不一样的,所以这里要用到温度补偿算法,要测试出来温度,有线性变化,我们还加了一个DS18B20温度传感器来采集温度。通常见到很多方法中建议pH和温度同时测量并记录。其他方法可能pH在样品温度下进行测量。 如果有必要在不同于校准的温度下测量pH,要注意到应用的温度补偿纠正会变大,就像缓冲液和样品的温度和pH值会进一步拉大。对于样品pH读数的温度补偿纠正系数一般为0.003pH/℃/pH,以pH为基准计算。 比如,如果在20℃下进行校准,但是测量的样品温度为38℃且读数为pH8.5。则温度补偿纠正应该接近0.003 pH x (38-20℃)x (8.5-7.0 pH单位)=0.08 pH。

     板载的有RS485芯片,通过modebus-rtu协议用主机来读取从机的数据,我们这里是个从机,或者可以直接用上位机串口来读数据。

 已经通过测试,PH值校准后还是很准的

  正面和背面 由于前期要测试所以有BNC接口,后期是直接放在一个仪器内部里的是用接线方式

 正面

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PH电极酸碱度检测 的相关文章

  • 解决vscode上边菜单栏不显示的问题

    由于我们不小心点击了哪个键 xff0c 导致上边的菜单栏不显示 两种解决方案 方法一 xff1a 点击下面的这个按钮 xff0c 会弹出一个弹框 点击一下菜单栏的可见性 xff0c 即可出来 方式二 xff1a 使用快捷键Ctrl 43 S
  • node+vue搜索和分页功能实现

    前端代码 lt template gt lt div class 61 34 main box 34 gt lt 卡片区 gt lt el card gt lt 搜索 gt lt el input placeholder 61 34 请输入
  • React面试题最全

    1 什么是虚拟DOM xff1f 虚拟DOM是真实DOM在内存中的表示 xff0c ul的表示形式保存在内存中 xff0c 并且与实际的DOM同步 xff0c 这是一个发生在渲染函数被调用和元素在屏幕上显示的步骤 xff0c 整个过程被称为
  • vue项目页面空白但不报错产生的原因分析

    vue项目中我们请求一个路由 xff0c 打开页面发现页面是空白的 xff0c 产生的主要原因有四种 xff1a 1 路由重复 如果配置了两个路由是重复的 xff0c 比如配置了两个 path xff0c 那么访问就会看到空白页面 xff0
  • react--电商商品列表使用

    目录 整体页面效果 项目技术点 拦截器的配置 主页面 添加商品 分页 xff0c 搜索 修改商品 删除商品 完整代码 整体页面效果 项目技术点 antd组件库 xff0c 64 ant design icons antd的图标库axios
  • 服务器端升级或者切换node版本

    1 查看版本 nvm list 2 选择你需要的版本 nvm use v18 15 0
  • lodash防抖节流

    应用场景 xff1a 当用户高频率的触发事件 xff0c 事件较短 xff0c 内部出现卡顿现象 解决方法 xff1a 防抖节流 防抖节流功作用 xff1a 主要目的是为了降低高频事件触发 xff0c 减少dom操作或请求次数 xff0c
  • 使用webpack(4版本)搭建vue2项目

    在学习webpack之前 xff0c 也从网上搜过一些用webpack搭建vue项目的博客 xff0c 但是在自己使用的时候会报各种的问题 xff0c 报错的根本原因其实就是版本的问题 xff0c 以下代码是经过解决了许多报错问题研究出来最
  • VUE调用摄像头PC

    页面效果 实现代码 lt template gt lt div id 61 34 app 34 gt lt router view gt lt 开启摄像头 gt lt Button type 61 34 primary 34 64 clic
  • koa2的脚手架koa-generator使用

    我们在搭建项目的时候 xff0c 会使用一些脚手架 xff0c 今天我们使用koa2的脚手架koa generator 使用非常简单 首先 xff0c 我们需要全局安装 npm install g koa generator 创建项目 ko
  • css行内元素、块元素、行内块元素的区别

    行内元素的特点 xff1a 1 和其他元素在一行显示 2 元素的宽度 高度 行高及底部边距不可编辑 3 元素的宽度就是它包含的文字或图片的宽度 xff0c 不可改变 4 行内元素只能容纳纯文本或者是其他的行内元素 xff08 a标签除外 x
  • STM32CubeMX安装

    一 STM32CubeMX下载 官网地址 xff1a STM32CubeMX STM32Cube初始化代码生成器 意法半导体STMicroelectronics 官网下载需要注册账号 网盘链接 xff08 6 8 xff09 xff1a 链
  • 关于汇编指令sar右移32位的情况,记录一下

    网上 对sar指令右移超过31位的情况 比如右移32位 右移33位 很少有详细的说明 为了防止下一次还有像我这样傻x的人不会 我就记录一下 我不会过多说基础 基础了解就行 xff0c 能懒就懒 1字节 sar 我们以一字节为例子 00412
  • vs2022 汇编环境配置,xxx.inc头文件找不到,出现报错,不影响正常代码生成的解决方案

    解决方案前提 1 你的include和lib路径已经配置好了 然后代码可以正常的生成一个exe 2 安装了的AsmDube 其实inc文件找不到 是AsmDub找不到 不是vs2022找不到 所以你就去AsmDube修改一下 所以你只需要告
  • 关于8皇后解决方法的浅析

    关于8皇后解决方法的浅析 众所周知 xff0c 解决8皇后最普遍的方法是回溯法 那具体是怎么样的呢 xff1f 大概思路 xff1a 定义一个int型数组queen xff0c 角标 1 2 7 代表皇后所在的行 xff0c 值代表皇后所在
  • Latex闲谈

    关于latex呢 xff0c 首先它是一个排版工具 xff0c 是一个将文章排版和文章内容分开的一个排版工具 有个问题是你是边写边排版呢还是用word写完之后再来说是进行这个排版呢 xff0c 对于我而言 xff0c 我更倾向于后者 xff
  • Linux下phpmyadmin忘记root的登录密码,找回方法

    第一步 xff1a 执行 etc init d mysql stop 结束当前正在运行的mysql进程 第二步 xff1a 执行 usr bin mysqld safe skip grant tables 用mysql安全模式运行并跳过权限
  • matlab郭彦甫-听课笔记-02

    可以分块 xff0c 分块之后可以进行分块执行run section 关系运算符 xff1a 61 不等于 取余函数 xff1a mod a b rem a b switch case case case otherwise 连乘函数 xf
  • 51单片机硬件介绍

    1 单片机是啥 单片机 xff0c 简称MCU xff0c 是微型计算机 xff0c 集成了一部计算机许多硬件功能 xff0c 有CPU 存储器 xff08 ROM RAM xff09 等 2 有了这样一个单片机芯片后 xff0c 怎么将程
  • matlab硬件支持包离线安装-(安装文件夹错误)

    dSupport Software Downloader MATLAB amp Simulinkhttps ww2 mathworks cn support install support software downloader html

随机推荐

  • 小结:卸载SolidWorks2018->重新安装系统->安装SolidWorks2020

    因为卸载SW2018卸载不干净 xff0c 所以在安装SW20版一直在出错 xff0c 错误如下 xff1a 这个错误解决后继续安装 xff0c 又发现没有出现原本序列号的那一界面 xff0c 然后还有异型孔向导安装不了 xff0c 最后还
  • FreeRTOS信号量 基于STM32

    目录 概述 一 信号量基本概念 1 二值信号量 2 计数信号量 3 互斥信号量 4 递归信号量 二 二值信号量运作机制 三 计数信号量运作机制 四 常用信号量函数接口讲解 1 创建二值信号量 xSemaphoreCreateBinary 2
  • FreeRTOS互斥量 基于STM32

    文章目录 一 互斥量基本概念 二 互斥量的优先级继承机制 三 互斥量应用场景 四 互斥量运作机制 五 互斥量函数接口讲解 1 互斥量创建函数 xSemaphoreCreateMutex 2 递归xSemaphoreCreateRecursi
  • FreeRTOS事件组 基于STM32

    概述 文章对事件组的 xff0c 应用场景 xff0c 运作机制 xff0c 以及事件的创建 xff0c 删除 xff0c 等待 xff0c 置位 xff0c 同步等操作 文章目录 概述 一 事件标志组简介 1 事件位 事件标志 2 事件组
  • FreeRTOS任务通知 基于STM32

    文章目录 一 任务通知简介 二 任务通知的运作机制 三 任务通知的函数接口讲解 1 xTaskGenericNotify 2 xTaskNotifyGive 3 vTaskNotifyGiveFromISR 4 xTaskNotify 5
  • FreeRTOS软件定时器 基于STM32

    文章目录 一 软件定时器的基本概念 二 软件定时器应用场景 三 软件定时器的精度 四 软件定时器的运作机制 五 软件定时器函数接口讲解 1 软件定时器创建函数 xTimerCreate 2 软件定时器启动函数 xTimerStart 3 软
  • FreeRTOS内存管理 基于STM32

    目录 一 内存管理的基本概念 二 内存管理的应用场景 三 heap 4 c 1 内存申请函数 pvPortMalloc 2 内存释放函数 vPortFree 四 内存管理的实验 五 内存管理的实验现象 一 内存管理的基本概念 在计算系统中
  • 关于ECSHOP模板架设的服务器php版本过高报错的解决方法集合

    1 admin index php admin sms url php ECSHOP模板 报错 xff1a Strict Standards mktime You should be using the time function inst
  • FreeRTOS中断管理 基于STM32

    文章目录 一 异常与中断的基本概念 二 中断的介绍 三 和中断相关的名词解释 四 中断管理的运作机制 五 中断延迟的概念 六 中断管理的应用场景 七 中断管理讲解 八 中断管理实验 九 中断管理实验现象 一 异常与中断的基本概念 异常是导致
  • 链表基础知识详解(非常详细简单易懂)

    概述 xff1a 链表作为 C 语言中一种基础的数据结构 xff0c 在平时写程序的时候用的并不多 xff0c 但在操作系统里面使用的非常多 不管是RTOS还是Linux等使用非常广泛 xff0c 所以必须要搞懂链表 xff0c 链表分为单
  • FreeRTOS临界段的保护

    什么是临界段 临界段用一句话概括就是一段在执行的时候不能被中断的代码段 在 FreeRTOS 里面 xff0c 这个临界段最常出现的就是对全局变量的操作 xff0c 全局变量就好像是一个枪把子 xff0c 谁都可以 对他开枪 xff0c 但
  • SPI通讯协议详解 基于STM32

    SPI 协议简介 SPI 协议是由摩托罗拉公司提出的通讯协议 Serial Peripheral Interface xff0c 即串行外围设备接口 xff0c 是 一种高速全双工的通信总线 它被广泛地使用在 ADC LCD 等设备与 MC
  • C语言编译过程

    C语言的编译过程 xff1a 预处理 编译 汇编 链接 gcc E hello c o hello i 1 预处理 gcc S hello i o hello s 2 编译 gcc c hello s o hello o 3 汇编 gcc
  • C语言数组详解

    目录 一 数组的概念 二 数组的分类 2 1 按元素的类型分类 2 2 按维数分类 三 数组的定义 3 1 一维数组的定义 格式 xff1a 3 2 二维数组的定义 四 定义并初始化 4 1 一维数组的初始化 4 2 二维数组的初始化 五
  • C语言动态分配内存

    文章目录 一 动态分配内存的概述 二 静态分配 动态分配 三 动态分配函数 3 1 malloc 3 2 free 3 3 calloc 3 4 realloc 四 内存泄漏 一 动态分配内存的概述 在数组一章中 xff0c 介绍过数组的长
  • 嵌入式C语言(入门必看)

    目录 STM32的数据类型 const关键字 static 关键字 volatile关键字 extern关键字 struct结构体 enum typedef define 回调函数 ifdef ifndef else if 嵌入式开发中既有
  • ESP32上手指南

    乐鑫的ESP32微控制器是一款集成有2 4 GHz Wi Fi和蓝牙4 0双模的物联网芯片方案 xff0c 采用台积电 TSMC 超低功耗的40纳米工艺代工 片上集成有天线开关 射频巴伦 功率放大器 接收低噪声放大器 滤波器 电源管理模块等
  • 基于STM32硬币识别检测

    本设计基于ARM内核的单片机STM32F4的高识别率硬币识别装置 xff0c 主要应用于各公共营业场所 xff0c 如各超市 xff0c 自动售货机 xff0c 公共交通等 它应该能完成一角 xff08 分新版旧版 xff09 xff0c
  • PHP多维数组排序

    User 61 M 39 User 39 Incomelog 61 M 39 incomelog 39 user 61 User gt select now date 61 39 2015 02 09 39 integral 61 arra
  • PH电极酸碱度检测

    最近做了一个项目是关于PH电极测酸碱度的一个仪器 简单地说 xff1a 玻璃电极是一种氢离子选择性电极 xff0c 相当于一个对玻璃膜两侧氢离子浓度差异能产生附加电势差的 盐桥 xff0c 一般的盐桥是为了消除浓差电势或者液体接触电势这种附