关于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计的更多相关文章

  1. pH计

    pH计 测量原理 pH计主要用于测量液体中的氢离子浓度.准确地说是测量氢离子活性,得出酸性.中性还是碱性的数值,在自来水.河水.饮料.食品.污水.医疗和化工等领域广泛地使用工业用液体分析仪. pH计原 ...

  2. arduino连接1602LCD方法

    arduino连接1602LCD方法 参考代码:

  3. arduino连接12864LCD方法

    arduino连接12864LCD方法,参考相关代码. https://blog.csdn.net/txwtech/article/details/95038386

  4. Arduino连接SHT10温湿度传感器--返回值不正常解决办法

    如题目,arduino中连接温湿度传感器,用的是一个github开源项目,地址:点击打开,其实这个就是一个封装好的库,下载后把解压的文件夹复制到Arduino目录下的librarys文件夹内,重启Ar ...

  5. Arduino读取ph试剂浓度

    https://detail.tmall.com/item.htm?id=600904840315&spm=a1z09.2.0.0.31cd2e8d1sb06V&_u=e1qf7bf5 ...

  6. 使用Arduino连接HC-SR04超声波距离传感器的方法

    距离传感器是机器人项目最有用的传感器之一. HC-SR04是一种便宜的超声波距离传感器,可以帮助您的机器人在房间周围导航.通过一些努力和一个额外的组件,它也可以用作测量设备.在这篇文章中,您将学习到通 ...

  7. Arduino连接LCD1602显示屏

    简介 LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符.LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,即可以显示出图形.[百度百科] 引脚说明 ...

  8. Arduino连接L298n驱动板驱动小车的电机

    1.L298N介绍 先来讲讲电机驱动,驱动一般使用L298N,L298N 是一种双H桥电机驱动芯片,其中每个H桥可以提供2A的电流,功率部分的供电电压范围是2.5-48v,逻辑部分5v供电,接受5vT ...

  9. CC3000 Arduino 连接Yeelink中文注释 示例

    代码如下“ /*************************************************** *这是一个例子的dfrobot维多-无线集成物联网建兴传感器和控制节点 *产品页面 ...

随机推荐

  1. javaScript之this的五种情况

    this一直是JavaScript研究的难题,特别是在笔试和面试中的各种程序分析问题中,也常常会被问到.下面来看一看this被运用的五中情况: (1)       纯粹的函数调用 函数最普通用法,此时 ...

  2. Elasticsearch之curl创建索引库

    关于curl的介绍,请移步 Elasticsearch学习概念之curl 启动es,请移步 Elasticsearch的前后台运行与停止(tar包方式) Elasticsearch的前后台运行与停止( ...

  3. ubuntu server usb安装盘制作问题

    本来服务器上装的是windows server 2003,开多个虚拟机装linux来用,但发现不管是vmware还是virtualbox,总是有内存泄漏,大约2个星期左右16G内存就全没了,任务管理器 ...

  4. Storm在zookeeper上的目录结构

    storm操作zookeeper的主要函数都定义在命名空间backtype.storm.cluster中(即cluster.clj文件中). backtype.storm.cluster定义了两个重要 ...

  5. [转][译]ASP.NET MVC 4 移动特性

    此教程将讨论ASP.NET MVC 4 Web应用程序里的移动特性.对于此教程,可以使用 Visual Studio Express 2012 或者 Visual Web Developer 2010 ...

  6. qemu-nbd使用教程

    服务端 服务器环境 已经安装过qemu-img的32位ubuntu ubuntu@ubuntu-virtual-machine:~/laboratory$ uname -a Linux ubuntu- ...

  7. ZOJ - 3777(状压dp)

    The 11th Zhejiang Provincial Collegiate Programming Contest is coming! As a problem setter, Edward i ...

  8. PAT1089【归并排序】

    这题略...恶心.. 他说归并排序依次是相邻有序两块合并,而一向打惯了递归??? #include <bits/stdc++.h> using namespace std; typedef ...

  9. 51nod1307(暴力树剖/二分&dfs/并查集)

    题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1307 题意: 中文题诶~ 思路: 解法1:暴力树剖 用一个数 ...

  10. 洛谷P1066 2^k进制数

    P1066 2^k进制数 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. ( ...