亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino pH 计

组件和用品

Arduino UNO
× 1
Atlas Scientific Gravity™ 模拟 pH 传感器
× 1
Atlas Scientific 消费级 pH 探针
× 1
20x4 LCD 模块
× 1
158x90x60mm 外壳
× 1
迷你面包板
× 1
电阻 220 ohm
× 1
电阻 1k ohm
× 1
11mm 支架和螺丝(随 pH 传感器提供)
× 4
跳线
× 1
亚克力板(有机玻璃)
× 1

必要的工具和机器

钻头、钻头、石膏板刀头、锉刀、螺丝刀、台式虎钳、带锯、胶枪和胶棒、烙铁和焊锡、数显卡尺、直尺

应用和在线服务

Arduino IDE

关于这个项目

在这个项目中,我们将使用来自 Atlas Scientific 和 Arduino Uno 的 Gravity 模拟 pH 电路和探头制作台式 pH 计。读数将显示在液晶显示器 (LCD) 上。

注意:

- 该仪表是在 Windows 计算机上开发的。未在 Mac 上进行测试。

- 外壳不防水。

第 1 步:准备住房

安全 :请记住在处理工具/机械时要小心,并佩戴适当的安全装备,例如护目镜、手套和呼吸器。

使用的外壳是 ABS 塑料外壳。 pH计需修改。

为 LCD 切割开口

a) LCD 放置在外壳的顶部(盖子)。在封面上居中放置一个 98x40mm 的矩形。

b) 将工件放入台钳中,并在标记的矩形上钻一个 3.2 毫米(1/8 英寸)的导向孔。

c) 使用这个导向孔作为 3.2 毫米(1/8 英寸)干墙切割钻头的起点。由于这是一项小工作,我们将在手钻上使用钻头而不是干墙切割机。在内部工作矩形而不是线条,因为在钻头上使用此钻头以直线方式切割可能有点困难。

d) 接下来,使用手锉去除多余的材料并将矩形塑造成所需的大小。

为 BNC 连接器和 Arduino 端口切割开口

BNC 连接器和 Arduino 端口的开口位于外壳底部的侧面。

a) 使用下面提供的尺寸,标记圆的中心点和两个矩形的轮廓。

b) 将工件放入虎钳并切开开口。圆形开口是使用钻头制成的。矩形是按照与用于制作 LCD 开口的类似工艺制成的。

装配底板以安装组件

底板用于安装 Arduino、pH 传感器和迷你面包板。采用3.2mm厚亚克力板。

a) 使用带锯将亚克力板切割成 135x62.5mm。

b) 标记四个孔的位置,如下所示。钻出直径为 2.38 毫米(3/32 英寸)的孔。在板的一侧钻孔,深度为 3 毫米,直径为 4.4 毫米(11/64 英寸)。这对于在插入螺钉以固定支架时保持平坦的下表面是必要的。

c) 使用提供的螺钉连接 11 毫米支架。 pH 传感器带有 4 个支架和螺丝。将其中两个用于 Arduino。

第 2 步:在外壳中安装电子设备

a) 将底板插入外壳底部。用螺丝或热胶固定。

b) 将 pH 传感器安装在底板上。用螺丝固定到支架上。

c) 将 Arduino Uno 安装到底板上。用螺丝固定到支架上。

d) 将迷你面包板添加到底板上。

e) 将插头引脚焊接到 LCD(提供引脚)。将 LCD 插入外壳的顶部,并使用一些热胶将屏幕固定到位。

第 3 步:将电子设备连接在一起

接线组件如上图所示。

将迷你面包板用于 1kΩ 和 220Ω 以及分配 Arduino 的 5V 和接地引脚。

这两个电阻用于设置屏幕对比度。

数据表

重力pH传感器、pH探头

第 4 步:完成组装

接线完成后:

a) 使用提供的螺丝将外壳的顶部和底部放在一起。

b) 将探头连接到 BNC 连接器。

第 5 步:将代码上传到 Arduino Uno

此项目的代码使用自定义库和头文件。您必须将它们添加到您的 Arduino IDE 才能使用代码。以下步骤包括将此添加到 IDE 的过程。

a) 将 Arduino 连接到您的计算机并打开 IDE。如果您没有 IDE,可以从此 LINK 下载 IDE。转到 Tools -> Board -> 选择 Arduino/Genuino Uno .转到工具 -> 端口 -> 选择端口 Arduino 连接到的位置。

b) 添加液晶显示器库:在 IDE 中转到 Sketch -> Include library -> Manage libraries .在库管理器的搜索栏中输入“液晶”。查找名为“LiquidCrystal Built-in by Arduino, Adafruit”的包。它可能已安装,也可能未安装。如果没有,请选择软件包并点击安装 .

c) 添加 Atlas Gravity 传感器库:从以下链接下载 zip 文件。该文件将保存为“Atlas_gravity.zip”。在 IDE 中转到 Sketch -> Include library -> Add.ZIP Library .找到“Atlas_gravity.zip”文件并选择添加。

d) 接下来,我们必须添加 pH 计的代码。将此链接中的代码复制到 IDE 工作面板上。

e) 编译并上传代码到Arduino。

f) pH 读数随后将显示在 LCD 上。您还可以在串行监视器上查看读数。要打开串行监视器,请转到工具 -> 串行监视器 或按 Ctrl+Shift+M 在你的键盘上。将波特率设置为 9600 并选择“回车”。

第 6 步:校准 pH 传感器

注意:如果您计划为 Arduino 使用外部电源,请在进行校准之前将其连接到 Arduino。这将确保正确设置参考水平,这将有助于正确校准。

该 pH 计可以校准为一、二或三点校准。需要标准缓冲溶液(pH 4、7 和 10)

串行监视器用于校准过程。用户将能够观察到读数在趋于稳定时的逐渐变化并发送适当的命令。

校准数据存储在Arduino的EEPROM中。

校准命令

低点:cal,4

中点:cal,7

高点:cal,10

清除校准:校准,清除

步骤

a) 取出浸泡瓶并冲洗 pH 探针。

b) 将一些 pH 值为 4 的溶液倒入杯中。确保有足够的空间覆盖探头的感应区域。

c) 将探头放入杯中并四处搅拌以去除残留的空气。观察串行监视器上的读数。将探针置于溶液中直至读数稳定(从一个读数到下一个读数的小幅移动是正常的)

d) 读数稳定后,输入命令 cal, 4 进入串行监视器。校准至 pH 4 现已完成。

对 pH7 和 pH10 重复步骤 a-d。在处理不同的缓冲溶液时,请记住冲洗探针。

温度补偿怎么样?

该项目中使用的传感器精度为 +/- 0.2%。 pH 计将在 7 - 46°C 的温度范围内以该精度运行。在此范围之外,必须对仪表进行修改以进行温度补偿。注意:pH 探头可承受 1 - 60 °C 的温度范围。

代码

  • arduino pH 计代码
arduino pH计代码C/C++
/*一旦上传,打开串口监视器,将波特率设置为9600并附加“回车”代码允许用户观察实时pH读数以及校准传感器。一、二或三点校准可以完成。校准命令:低点:“cal,4”中点:“cal,7”高点:“cal,10”清除校准:“cal,clear”*/#include“ph_grav. h" //Atlas Scientific 重力pH传感器的头文件#include "LiquidCrystal.h" //液晶显示器(lcd)的头文件String inputstring =""; //一个用于保存来自 PCboolean input_string_complete =false 的传入数据的字符串; //一个标志,表明我们是否收到了来自 PCchar inputstring_array[10] 的所有数据; //字符串解析所需的字符数组Gravity_pH pH =A0; //将Arduino的模拟引脚A0分配给Gravity_pH类。将 pH 传感器的输出连接到引脚 A0LiquidCrystal pH_lcd(2, 3, 4, 5, 6, 7); //制作一个变量 pH_lcd 并将 arduino 数字引脚分配给 lcd 引脚 (2 -> RS, 3 -> E, 4 to 7 -> D4 to D7)void setup() { Serial.begin(9600); //使能串口pH_lcd.begin(20, 4); //启动lcd界面并定义lcd大小(20列4行) pH_lcd.setCursor(0,0); //将光标置于屏幕第 1 列第 1 行 pH_lcd.print("--------------------"); //显示字符 pH_lcd.setCursor(0,3); //将光标置于屏幕第 1 列第 4 行 pH_lcd.print("--------------------"); //显示字符 pH_lcd.setCursor(5, 1); //将光标置于屏幕第 6 列第 2 行 pH_lcd.print("pH Reading"); //显示“pH读数” if (pH.begin()) { Serial.println("Loaded EEPROM");} Serial.println(F("Use commands \"CAL,4\", \"CAL,7\ ", 和 \"CAL,10\" 将电路校准到相应的值")); Serial.println(F("使用命令\"CAL,CLEAR\"清除校准")); }void serialEvent() { //如果硬件串口_0接收到一个字符 inputstring =Serial.readStringUntil(13); //读取字符串直到我们看到  input_string_complete =true; //设置用于判断我们是否收到来自PC的完整字符串的标志}void loop() { if (input_string_complete ==true) { //检查是否收到数据 inputstring.toCharArray(inputstring_array, 30); //将字符串转换为字符数组 parse_cmd(inputstring_array); //发送数据到pars_cmd函数input_string_complete =false; //重置用于判断我们是否收到来自PC的完整字符串的标志 inputstring =""; //清除字符串 } Serial.println(pH.read_ph()); //输出pH读数到串行监视器 pH_lcd.setCursor(8, 2); //将光标置于屏幕第 9 列第 3 行 pH_lcd.print(pH.read_ph()); //输出pH到lcd delay(1000);}void parse_cmd(char* string) { //用于调用校准函数strupr(string); //将输入字符串转换为大写 if (strcmp(string, "CAL,4") ==0) { //将用户输入字符串与 CAL,4 进行比较,如果匹配,则继续 pH.cal_low(); //调用低点校准函数 Serial.println("LOW CALIBRATED"); } else if (strcmp(string, "CAL,7") ==0) { //将用户输入字符串与CAL,7进行比较,如果匹配,则继续pH.cal_mid(); //调用函数进行中点校准 Serial.println("MID CALIBRATED"); } else if (strcmp(string, "CAL,10") ==0) { //将用户输入字符串与CAL,10进行比较,如果匹配,则继续pH.cal_high(); //调用函数进行高点校准 Serial.println("HIGH CALIBRATED"); } else if (strcmp(string, "CAL,CLEAR") ==0) { //比较用户输入字符串与CAL,CLEAR,如果匹配,继续pH.cal_clear(); //调用函数清除校准Serial.println("CALIBRATION CLEARED"); }}

示意图


制造工艺

  1. Arduino Spybot
  2. FlickMote
  3. 自制电视 B-Gone
  4. 主时钟
  5. 找到我
  6. Arduino Power
  7. Tech-TicTacToe
  8. Arduino Quadruped
  9. Arduino Joystick
  10. 数控机床
  11. Earth_Analyzer
  12. 家庭监视器