Arduino连接pH计
关于arduino连接ph,核心的东西就是对ph传感器返回的信号值进行一系列的操作,注意因为返回的信号很弱,而且外部环境对其影响也很大,所以需要在电路设计上加入一些功能,比如信号放大、滤波等,电路设计这一块我是不太熟悉,毕竟不是科班出生,不过今天偶然看到了有的厂家已经做出了运放模块,心里很是激动,但是看到价格优点失望(贵),单独的板子还不卖,我猜想可能是和传感器的信号值与ph值之间的线性关系有关,关于这一点等会在代码中说明,先来看张图:
这个图很简单,具体的有感兴趣的朋友可以参考下这个网站,点击打开(我没有打广告的意思),不过在某宝上询问卖家都说没货,具体原因不清楚。下面主要看下arduino中的代码:
#define SensorPin 0 //pH计模拟输出到arduino的模拟输入端口0
#define Offset 0.00 //偏差补偿
unsigned long int avgValue; //存储传感器反馈的平均值
void setup()
{
pinMode(,OUTPUT);//端口输出
Serial.begin(); //波特率9600
Serial.println("Ready"); //测试端口监视器
}
void loop()
{
int buf[]; //用于读取模拟数据的缓冲区
for(int i=;i<;i++) //从传感器获取10个采样值**平滑
{
buf[i]=analogRead(SensorPin);//SensorPin对应的端口
delay();
}
for(int i=;i<;i++) //按从小到大的顺序排序模拟值
{
for(int j=i+;j<;j++)
{
if(buf[i]>buf[j])
{
int temp=buf[i];
buf[i]=buf[j];
buf[j]=temp;
}
}
}
avgValue=;
for(int i=;i<;i++) //得到6中心样品的平均值
avgValue+=buf[i];
float phValue=(float)avgValue*5.0//; //将模拟值转换毫伏值
phValue=3.5*phValue+Offset; //毫伏值转换成pH值,3.5对应的是线性斜率
Serial.print(" pH:");
Serial.print(phValue,);
Serial.println(" ");
digitalWrite(, HIGH);//设置引脚的输出电压为高\低电平,以此点亮小灯
delay();
digitalWrite(, LOW);
}
注释写的很清楚了,就不多解释了,不过上面的那个3.5需要注意下,我也在备注后面标注了,具体对不对还望高手指点,原理上ph值与电流值的线性关系非常好。
把电路图放一下,说不定以后有用.....
Arduino连接pH计的更多相关文章
- pH计
pH计 测量原理 pH计主要用于测量液体中的氢离子浓度.准确地说是测量氢离子活性,得出酸性.中性还是碱性的数值,在自来水.河水.饮料.食品.污水.医疗和化工等领域广泛地使用工业用液体分析仪. pH计原 ...
- arduino连接1602LCD方法
arduino连接1602LCD方法 参考代码:
- arduino连接12864LCD方法
arduino连接12864LCD方法,参考相关代码. https://blog.csdn.net/txwtech/article/details/95038386
- Arduino连接SHT10温湿度传感器--返回值不正常解决办法
如题目,arduino中连接温湿度传感器,用的是一个github开源项目,地址:点击打开,其实这个就是一个封装好的库,下载后把解压的文件夹复制到Arduino目录下的librarys文件夹内,重启Ar ...
- Arduino读取ph试剂浓度
https://detail.tmall.com/item.htm?id=600904840315&spm=a1z09.2.0.0.31cd2e8d1sb06V&_u=e1qf7bf5 ...
- 使用Arduino连接HC-SR04超声波距离传感器的方法
距离传感器是机器人项目最有用的传感器之一. HC-SR04是一种便宜的超声波距离传感器,可以帮助您的机器人在房间周围导航.通过一些努力和一个额外的组件,它也可以用作测量设备.在这篇文章中,您将学习到通 ...
- Arduino连接LCD1602显示屏
简介 LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符.LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,即可以显示出图形.[百度百科] 引脚说明 ...
- Arduino连接L298n驱动板驱动小车的电机
1.L298N介绍 先来讲讲电机驱动,驱动一般使用L298N,L298N 是一种双H桥电机驱动芯片,其中每个H桥可以提供2A的电流,功率部分的供电电压范围是2.5-48v,逻辑部分5v供电,接受5vT ...
- CC3000 Arduino 连接Yeelink中文注释 示例
代码如下“ /*************************************************** *这是一个例子的dfrobot维多-无线集成物联网建兴传感器和控制节点 *产品页面 ...
随机推荐
- 开启struts2自带的开发模式常量
在以前的开发中,当修改一些配置时总是不能及时地更新到服务器,我们总会重新部署或重启来更新改变的内容,在struts2中可以通过一个常量来达到此目的.即在struts.xml中的<struts&g ...
- VS 关于无法打开项目文件,此安装不支持该项目类型的问题
用VS打开后有时会出现类似: 无法打开项目文件,此安装不支持该项目类型 的错误,这个错误一般都是由于用低版本VS打开高版本项目文件造成的 其中包括: 1.用VS2003 打开包括VS2005以上版本项 ...
- C++经典问题:狐狸找兔子
问题描述: 围绕着山顶有10个洞,一只狐狸和一只兔子住在各自的洞里.狐狸想吃掉兔子.一天,兔子对狐狸说:"你想吃我有一个条件,先把洞从1-10编上号,你从10号洞出发,先到1号洞找我:第二次 ...
- 在linux系统个人目录下安装新版python
一.下载所需的python版本文件 在linux个人目录下 下载https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tar.xz 解压tar.xz ...
- hdu1048
#include<stdio.h>#include<string.h>#include<iostream>using namespace std;int main( ...
- webpack@3.6.0(2) -- css及图片相关问题
本篇内容 css3前缀处理postcss 消除未使用的css部分 图片处理 css分离和分离后的图片处理 css3前缀处理postcss cnpm i -D postcss-loader autopr ...
- c++第六次实验
part 1 验证性实验 合并两个文件.虽说验证,但后两个实验均受该代码指导启发. part 2 文末添加数据 1.代码 #include<fstream> #include<io ...
- 暴风魔镜SDK:MojingSDK For Unity V1.3.5112 (R).zip
去年买了个暴风魔镜4,如今一直放在家里吃灰,这些天对Unity3D开发VR兴趣正浓,刚好公司项目不忙,花了几天玩玩暴风魔镜SDK,因为网上的资料不算多,暴风提供的文档也不太适合像我这样的Unity小白 ...
- thinkphp5.1跨模块调用控制器或者模型
tp5.1 采用命名空间的方式进行调用.
- ELK系列(3) - Elasticsearch修改jvm参数
方法 Elasticsearch默认会配置1G的JVM堆的初始值和最大值,该jvm参数被配置在/config/jvm.options里: -Xms1g -Xmx1g 如果只是个人开发小项目,可以把参数 ...