历史上的今天
今天是:2024年09月20日(星期五)
2019年09月20日 | 一种简单测量土壤湿度和pH值(带温度补偿)的方法
2019-09-20 来源:EEWORLD
本文说明如何测量土壤湿度和pH值,以及如何利用这种测量(例如)让作物快速生长。
图1所示电路是一种完整的单电源、低功耗、高精度解决方案,用于土壤湿度和pH值测量,包含温度补偿功能。每个模拟传感器来自三个独立的测量部分的测量值被馈送至模数转换器(ADC),然后模数转换器(ADC)将它们以数字形式转发给一个微控制器,以进行进一步的信号处理。ADI公司提供的24位Σ-Δ ADC AD7124就是一个合适的ADC示例,该器件是一款适合高精度测量应用的全集成式低噪声模拟前端。其输入可以配置为差分输入或单端/伪差分输入。此外,AD7124具有可编程放大器级,以确保小幅度信号可以直接接入。

图1.进行土壤湿度、pH值和温度测量的简化电路
pH值测量
因为pH传感器一般具有较高的阻抗输出(约1 GΩ),无法驱动ADC输出,所以需要一个高精度运算放大器来缓冲传感器输出。由于传感器的输出阻抗高,为了最小化偏置误差,低运算放大器输入偏置电流就非常重要。在本电路设计中,使用了ADA4661-2轨到轨运算放大器。pH传感器提供双极性输出,输出的最大信号为±414 mV。AD7124的内部偏置生成器可用于将其输入共模电压设置为AVDD/2,从而在传感器输出端产生AVDD/2 ± 414 mV。
组件的噪声特性对测量系统的分辨率也有影响。AD7124(全功率模式,增益 = 1,输出数据速率 = 25 SPS)的有效噪声为VNOISE,EFF = 570 nV,因此产生峰峰值VNOISE,PP = 3.76 μV(6.6 × VNOISE, EFF)。ADA4661-2的噪声组件VNOISE,PP = 3 μV添加之后,产生的总噪声为VNOISE, PP, TOTAL = 4.8 μV。 因为ADC的最大输入电压范围为6.6 V,导致无噪声分辨率为:
![]()
![]()
土壤湿度测量
目前常用的土壤湿度传感器通常是电容式,通过介电常数来测量水分含量。由于水比土壤中的其他元素具有更高的介电常数,因此传感器可以通过电容变化来检测含水量的变化。图1所示的电路使用3线传感器(电源、接地和电压输出)。为了使功耗最小化,传感器大部分时间都处于睡眠模式,只有在需要测量时才通过VSENSOR激活。
在噪声特性方面,由于传感器与ADC直接相连,因此与pH测量值相比,无噪声分辨率略高:
![]()
![]()
温度测量
由于电极涂层和老化过程,pH传感器的行为随时间而变化。为了保持最高的准确度,定期校准必不可少。为此,通常要测量已知的液体,并与NIST参考表中给出的相应温度的pH值进行比较,这些参考表应随附在软件中。温度测量采用三线电阻温度检测器(RTD)进行,如图2所示。由于AD7124的可编程励磁电流源,RTD可以直接连接到ADC(IOUT1、IOUT2)。

图2.RTD温度测量电路
结论
如图所示,土壤湿度和pH值的测量相对容易。由于pH传感器对温度的依赖性很强,所以需要通过额外的温度测量进行温度补偿。
史海拾趣
|
bios设置HWI问题,请求各位前辈给指导一下!刚学DSP痛苦啊 我用dsp/bios设置的HWI 选择的是HWI_INT5,选择External_Pin_5作为interrupt soure function为:UART_isr Use Dispatcher选为true 设置完并保存,编译后发现错误 不是说在bios中添加硬件中断,系统会自动识别吗? 为什么会出现下面错误: un ...… 查看全部问答> |
|
采用RC振荡的方法非常多,如文氏桥振荡等。这里介绍几种笔者常用的方法: 1.最简单的振荡器 最简单的振荡器 这种振荡器特点是:T≈(1.4~2.3)R*C 电源波动将使频率不稳定,适合小于100KHz的低频振荡情况。 2.加补偿电阻的振荡 加补偿电阻 ...… 查看全部问答> |
|
1、原先用spansion的norflash s29GL032操作一切正常,先改为ST的M29W320的flash,在用jtag烧写uboot时,一直擦除不成功,我用的是片擦除,系统时钟为125M,指令如下 //16bit erase *(volatile UINT16 *)(AM_START_AD ...… 查看全部问答> |
|
大家点个思路,有关基于S3C2440和WinCE如何使用串口及SD卡的问题 大家好,谢谢大家这么些天来一直很热心的回答我的问题,十分感谢! 现在我想实现这样的功能: 外面通过串口将数据传给S3C2440,这里S3C2440跑的是WinCE操作系统,在WinCE上应用程序将数据接收处理并将其存入SD卡,并画出数据拟合成的曲线。 这里 ...… 查看全部问答> |
|
wince下如何进行驱动调试,一定要用串口么??如果程序修改的话还要重新编译内核? 1.现在刚准备做wince的,我现在有些不明白如何进行调试,每次定制内核要用到几十分钟,我在调试硬件驱动的时候,为了考虑稳定性需要不断得进行修改代码,每次修改代码之后都要重新编译内核,太耗时了,请问有没有什么简单得方法呢??模拟调试是不行的,我的 ...… 查看全部问答> |
|
ST新库3.4.0中stm32f10x.h里面为啥又把bool型定义去掉了? 写库的人到底怎么想的,去掉类型定义,原来的程序会不兼容,有脑子吗?我已经出离愤怒了,版主告诉我他们怎么想的 ...… 查看全部问答> |
|
安装已经老声音长谈了,但我觉得有再说明一下的必要。因为好的开始是成功的一半,好多都是安装不好。对以后的学习造成了很大损失。甚至不愿再涉及该种芯片。 首选安装IAR V6.10 ,这个再光盘里。有所不同的是,这个是日系的,首先第一项是 ...… 查看全部问答> |
|
转自丁国勇的EMC博客刚才偶然看了本刊的两篇有关磁珠的专家博文,这两篇博文都是讲磁珠的。其中一篇是讲磁珠与电感的区别,另一篇讲磁珠其实就是一电阻特性。其实这样的说法都是不准确的。磁珠(Ferrite bead)的等效电路是一个DCR电阻串联一个电感 ...… 查看全部问答> |
|
#include #include #define uint unsigned int #define uchar unsigned char uchar temp,b; void delay(uint z); void main() { temp=0xfe; &nbs ...… 查看全部问答> |




