×

基于Arduino的浓缩咖啡PID控制器

消耗积分:0 | 格式:zip | 大小:0.10 MB | 2022-12-23

王健

分享资料个

描述

多年来,我在精品咖啡行业工作,并在浓缩咖啡机中安装了相当多的 PID 控制器,以提供更好的温度控制。
了解 Arduino 平台后,我决定构建自己的 PID 控制器。 

基于 Arduino 的浓缩咖啡 PID 控制器

下面是控制器的一些照片,它可以设置为 2 种不同的形式功能,具体取决于您的空间要求/限制。 

如果用于更扁平的配置(在 RHS 上),LCD 的安装孔与 PID 板的安装孔对齐,可以使用安装硬件来帮助支撑 LCD 的重量,而不是对 LCD 施加不必要的压力LCD和PCB之间的焊点。

如果用于 LHS 上所示的配置,则 PCB 和 LCD 可以安装到项目盒的不同面。

 
poYBAGOkGVOAZBWWAAFA5PVPwrs203.jpg
将 LCD 安装到 PCB 的两种选择
 


零件清单从 Arduino_PID_for_Espresso_v2_Rev_C.brd 导出于 7/23/2013 12:07:39 PM

EAGLE 版本 6.4.0 版权所有 (c) 1988-2013 CadSoft

组装变体:

零件超值包                                 

C1 47uF TT5D6               
C2 47uF TT5D6               
C3 0.1uF C025-024X044         
C4 0.1uF C025-024X044      
C5 10uF CPOL-RADIAL-10UF-25V 
C6 0.01uF C025-024X044        
C7 10uF CPOL-RADIAL-10UF-25V
D2 1N4007 DO41-3            
D3 1N4148 DO -1N4148       
D4 1N4148 DO-1N4148  
D5 1N4148 DO-1N4148
IC1 7805TV TO220V     
IC2 MAX31855 SOIC8   
JP2 1X06/90 1x6pinhead
JP3 SCREWTERMINAL-3.5MM-2
JP4 SCREWTERMINAL-3.5MM-2
JP5 1X16 针头  
LED1 GRN LED3MM  
LED2 RED LED3MM  
Q1 16MHz CSTLA_T    
Q2 2N4401 TO92-   
R1 2K7 AXIAL-0.4   
R2 10K 1/6W-RES 
R3 10K 1/6W-RES
R4 10K 1/6W-RES   
R5 10K 1/6W-RES 
R6 10K 1/6W-RES
R7 10K pot B25P                
R8 10K 1/6W-RES 
R10 10K 1/6W-RES  
R11 3K1 AXIAL-0.4 
R12 330 AXIAL-0.4 
S1 DTS-6 DTS-6 switch-tact
S6 DTS-6 DTS-6 switch-tact
S7 DTS-6 DTS-6 switch-tact
S8 DTS-6 DTS-6 switch-tact
S9 DTS-6 DTS-6 switch-tact
U$1 2.1MMJACKTHM PJ-102A

U1 ATMEGA328P-PU DIP254P762X457-28

注意:- ATmega328P 需要 Uno 或 Duemilanove 引导加载程序。您可以使用另一个 Arduino 来刻录引导加载程序,也可以购买一个预刻录的。无论您使用哪种引导加载程序,您都必须在 Arduino IDE 中选择该设备。不这样做将导致 avrdude 错误。

步骤1

 
poYBAGOkGVWANOXCAAATjr6IMoM939.jpg
危险 !!
 

****此设备可以控制 MAINS POWER 设备。主电源电力是危险的。由于缺乏知识而导致的电源接线错误可能会杀死您和/或其他人!您有责任正确连接受控设备或找到可以连接的人。*********

在开始组装之前,对照清单核对所有组件。
您还需要购买 SSR(固态继电器)、USB FTDI 5V 电缆、兼容 HD44780 的 16x2 LCD 和热电偶。

SSR 提供​​交流和直流输出版本,请确保您获得适合您应用的正确类型。输入电压必须接受 5V。加热应用需要过零 SSR(这些占可用 SSR 的大部分)。SSR 开关电流和电压额定值必须至少满足或最好超过您要控制的设备的额定值。 
注意:- 一些 SSR 需要散热器,尤其是当它们在接近最大电流时工作。如果 SSR 要安装在温暖/炎热的区域,您必须使用大大超过要控制的设备的额定电流的 SSR。

热电偶——如果您需要较大的温度范围(−200 °C 至 +1350 °C),我推荐使用 K 型热电偶。如果您需要更窄的温度范围(−200 至 350 °C),我推荐使用 T 型热电偶。请注意,T 型热电偶比 K 型更准确。还有其他类型的热电偶可用,在继续之前确保您知道哪种类型的热电偶适合您的特定应用。
热电偶传感器接头有多种类型:- 垫圈、探头、珠子等。您需要选择最适合您应用的热电偶接头。

重要提示:- 如果您获得 MAX31855 K ASA+ IC,则必须使用 K型热电偶。如果您获得 MAX31855 T ASA+,则必须使用 T型热电偶。如果您使用错误的热电偶,您将得到不正确的读数。MAX31855 IC 均可直接从 MAXIM Integrated 获得 - http://www.maximintegrated.com/datasheet/index.mvp/id/7273/t/al
如果您是学生,您可以从 Maxim 获得这些 IC 的免费样品融合的。

第2步-

 
pYYBAGOkGViAKo_bAAAvMZs0r4Y465.jpg
安装 SOIC 热电偶芯片
 

先焊好Surface Mount芯片,后面有其他元器件就很难焊了。
该芯片通过引脚 1 安装到 PCB 的较低 RHS。

我强烈建议使用额外的助焊剂、放大镜和镊子来执行此步骤。使用烙铁焊接表面贴装芯片不需要焊膏,尤其是像这样的 SOIC 封装。

首先,在放置芯片之前,焊接芯片的引脚 1 所在的位置,因此引脚 1 焊盘上有一点点焊锡。焊料冷却后,加入少许助焊剂,然后用镊子小心放置芯片。 

正确放置后(仔细检查芯片方向是否正确!),在烙铁头上涂上少许焊料,然后将其接触到引脚 1 和您之前添加的焊料点。额外的助焊剂将有助于焊料流动而无需添加更多焊料。 

完成后,检查其他引脚与其各自焊盘的对齐情况。如果对齐正确,为每个引脚和焊盘涂上助焊剂,然后仔细焊接每一个(额外的助焊剂将有助于防止焊桥)。如果 IC 未正确对齐,请向引脚 1 添加更多助焊剂,然后将烙铁头接触引脚 1,并在尝试焊接其他引脚之前对齐芯片。尽量减少烙铁在 MAX31855 芯片任意引脚上的时间,以免损坏芯片。
完成后,用一些异丙醇和旧牙刷或纸巾清洁该区域,以去除助焊剂残留物。

第 3 步-

 
poYBAGOkGVqABMGJAAA3a6suVXE654.jpg
安装 5V 电源组件
 

将 +5V 电源的组件放置在 PCB 上。这些组件将安装在 PCB 上的 LHS 上。它们包括直流插孔、1N4007 二极管、2 x 47uF 电解电容器、0.1uF 电容器、2.7K 电阻器和 LM7805 稳压器。您会注意到它们都集中在 PCB 上。
确保电解电容器的位置与 PCB 上“+”标记相对的电容器上的“-”符号。确保 LM7805 和 1N4007 二极管与 PCB 上所示的条纹(负侧)定位。将上述部件焊接到位并剪掉多余的引线长度。 

焊接并剪掉多余的引线后,将 PCB 翻转过来并将绿色 LED 安装到电路板的另一侧,将其抬高到电路板上方约 3mm (1/8")。焊接前,仔细检查极性。平面的一面LED 是“-”引线,较长的引线是“+”引线。焊接后,将多余的引线长度夹在板的另一侧。

现在连接一个电压为 9V 至 12V DC 的沃尔沃特电源(2.1mm 中心正极)。
绿色 LED 应该亮起。 
如果绿色 LED 不亮,则说明某些东西的位置不正确,或者焊点不良。在继续构建之前,您需要纠正任何错误定位或焊接的组件。

第4步-

 
poYBAGOkGV2AUxATAAA8AiNmCrQ450.jpg
安装 3V3 电源组件和测试
 

3V3 电源组件位于靠近 MAX31855 芯片的 PCB 的较低 RHS 位置。这些元件是 3 x 1N4148 信号二极管、2 x 10uF 电解电容和 1 x 10K 电阻(位于 MAX31855 芯片下方)。
如图所示,将 3 x 1N4148 信号二极管定位并焊接到 PCB 的右下侧。注意观察二极管的极性。二极管(负极)上的条纹必须与 PCB 上的条纹匹配。
***重要说明 - 二极管并非都面向相同的方向。焊接前仔细检查极性***

下一个位置并焊接 2 x 10uF 电解电容器,注意观察 PCB 上指示的极性。最后将 10K 电阻器定位并焊接到位。

如果您有万用表,请将您的 walwart 连接到 PCB 并确认 10K 电阻器的 LHS 上存在大约 3.3V(通常为 3.1V-3.3V)(仪表的负极引线连接到中心引脚(GND)) LM7805 稳压器)。如果您没有万用表,可以将红色 LED 的引线压在 MAX31855 芯片的引脚 1(GND,LED 负极)和引脚 4(3V3 Vcc,LED 正极)上。
如果不存在电压,或者 LED 不亮,则很可能是一个或多个二极管的位置不正确。如果是这种情况,请检查其他组件以及可能有其他极化组件位置不正确。

步骤 5-

 
pYYBAGOkGV-AFZI5AABQzy6F36g434.jpg
按钮布局和成品
 

在焊接组件时,最好定期用一些异丙醇和棉签或旧牙刷或纸巾清洁 PCB 以去除助焊剂残留物。

开始定位/焊接具有最低轮廓的组件(即电阻器),然后逐步使用更高的组件以使您的工作更轻松。
放置所有电阻器,确保将每个电阻器放置在正确的位置。如果您不知道颜色代码或使用万用表检查,请使用电阻器颜色代码图表进行检查。将它们焊接到位并将多余的引线长度夹在电路板背面。

将红色 LED 安装在 PCB 与绿色 LED 相同的一侧。留出 3 毫米(1/8 英寸)的额外引线长度,以便 LED 从板上伸出,就像您对绿色 LED 所做的那样。

现在将 ATmega328PU 芯片的插座放置到位,注意将插座中的槽口与 PCB 上显示的槽口对齐。在继续之前仔细检查插座是否正确定位。只焊1脚,检查插座是否正确、完全插入,再焊其他脚。

定位陶瓷电容器和 16MHz 谐振器并焊接到位。现在将晶体管放置到位,确保方向如板上所示并焊接到位。

将 2 位置端子连接器定位并焊接到 PCB,端子孔从 PCB 朝外。

将 6 针直角公头放置到位,短直针侧穿过 PCB,直角针侧朝下,然后焊接到位。

将 16 针公头定位并焊接到位,使 90 度针侧穿过 PCB,短直针侧远离 PCB。
或者,如果您想更改 Arduino PID 控制器的外形尺寸,您可以选择使用直排针。在这种外形中,PCB 上的安装孔与 LCD 上的安装孔对齐

定位电位器并焊接到位。

现在您应该只剩下 5 个按钮开关和 LCD 屏幕。

将 PCB 翻转过来,将 5 个开关安装到 PCB 与 LED 相同的一侧并焊接到位。

将大部分组件(开关和 LED 除外)面朝下放置 LCD。焊接前确保 LCD 上的 Pin 1 和 Pin 16 标记分别与 PCB 上的 Pin 1 和 Pin 16 标记匹配,然后再继续。仔细检查 LCD 是否正确定位后,将其焊接到位。

步骤 6-

检查 ATmega328 芯片上标记的凹口并将其与插座上的凹口对齐(再次检查插座是否朝向正确的方向!)
您可能需要将芯片的引脚稍微向内弯曲。小心地将芯片推入插座,注意在插入芯片时不要弯曲引脚。在继续之前目视检查芯片/插座。

从http://arduino.cc/en/main/software 下载适用于您的操作系统的 Arduino IDE V1.0 
确保您获得正确的版本!   安装软件。

安装后,先将 USB 电缆连接到计算机,然后将另一端连接到 PCB,确保电缆中的黑线与标有“GND”的引脚对齐。 
******注意:- 如果以错误的方式连接它会损坏 ATmega328 芯片,因此请确保正确放置它!********

打开现在安装在您计算机上的 Arduino IDE。单击“工具”、“板”并选择“Arduino Uno”。然后点击“工具”和“串口”,选择PCB连接的COM口。如果您不确定正在使用哪个 COM 端口,请转到您的设备管理器,单击“端口(COM 和 LPT)”旁边的箭头。您应该看到至少列出了 1 个,可能还有更多设备。从计算机上拔下电缆,然后重新插入。从列表中消失并重新出现的设备是 Arduino PID 控制器。记下 COM 端口号。
回到 Arduino IDE,现在选择正确的端口。

要测试 ATmega 芯片,请转到 Arduino IDE 并单击“文件”、“示例”、“基础”、“闪烁”。这将打开一个新的 IDE 窗口,其中包含一些代码。 
转到第 13 行(行号位于 Arduino IDE 窗口的左下角),其中显示
“pinMode(13, OUTPUT);”
将“13”更改为“7”(不带引号)
现在转到第 15 行和17 并将“13”更改为“7”
现在单击 Verify 按钮(看起来像一个“Tick”),当它编译时,然后单击 Upload 按钮(在 Verify 按钮旁边)。如果它没有编译,你就犯了语法错误。
立即按住 Arduino PID 控制器上的 Reset 按钮,当您在 Arduino IDE 窗口底部看到文本“Binary sketch size: xxxx bytes (of a 30720 byte maximum)”时,松开 Reset 按钮。
如果您遇到 avrdude 错误,很可能意味着您没有足够快地释放按钮,或者您在工具下选择了错误的 Arduino 板。检查在工具下选择了正确的电路板并尝试再次上传并在正确的时间释放 RESET 按钮。

当它正确上传时,您应该看到红色 LED 开始闪烁。这表明 Arduino 工作正常。您现在可以上传 PID 代码了。

第 7 步 -

 
poYBAGOkGWaAFY45AAAR3BKIjJY095.jpg
该项目的 GitHub 页面
 

转到 https://github.com/CoffeeTronics 并找到并下载具有最高版本号(2.0 及更高版本)的 Espresso 的 Arduino PID 控制器的 zip。“下载 Zip”按钮应位于网页的 RHS 上,就在“在桌面上克隆”按钮的下方。将下载的 zip 文件解压缩到您的计算机。进入提取的文件夹并将提取的“Libraries”文件夹(不是 Libraries 文件夹本身)的内容复制到 Arduino“libraries”文件夹(安装 Arduino IDE 的位置)。

将 Arduino_PID_Controller 草图复制到您的 Arduino“Sketchbook”文件夹中。 
高清44780

现在关闭您打开的所有 Arduino IDE 窗口并重新启动 IDE。点击“文件”,“素描本”。文件“Arduino_PID_for_Espresso_v2.0”现在应该在那里。单击它,将打开一个包含代码的新窗口。 
如果“Arduino_PID_Controller”草图不存在,很可能您没有关闭所有 Arduino IDE 窗口。关闭所有 Arduino IDE 窗口并重新启动 IDE 并再次检查

打开代码后,单击“验证”按钮。编译后,将代码上传到 Arduino PID 控制器(不要忘记 RESET 按钮!)。 
如果它没有编译,您可能下载了错误版本的 Arduino IDE,或者 Arduino PID 控制器代码的过时版本,或者您可能将 Libraries 文件夹的内容放在错误的文件夹中,或者有一个 Libraries 文件夹在库文件夹中。

上传成功后,从 PID 控制器上拔下编程电缆和沃尔沃特电源,LCD 屏幕和绿色 LED 现在应该熄灭。现在将 PID 控制器的输出引脚(“-”在下侧,“+”在上侧)连接到您购买的 SSR 的输入引脚。确保输出的 + 引脚连接到 SSR 的 + 引脚。“-”输出引脚连接到 SSR 的“-”输入。

*****重要提示:- 在继续下一步之前,请确保您打算控制的设备已从电源插座上拔下!***** 将 SSR 的输出端连接到您正在控制的设备(例如. 内联加热元件)。

将 SSR INPUT 侧的地(“-”输入)连接到被控制设备的地。这有助于防止电容性接地回路,后者会导致温度读数不稳定。

将热电偶连接到热电偶输入端子连接器,注意观察极性。如果您使用的是 K 型,则黄线为 +,红线为 -。如果您使用的是 T 型热电偶,则蓝线为 +,红线为 -。热电偶接线端子的“+”侧在上侧,“-”侧在下侧。

将您的 walwart 连接到 PCB 上的 DC 插孔。Arduino PID 控制器将启动,LCD 将显示“Arduino PID for Espresso”。3 秒后,它将开始显示温度。由于代码包含一个用于平滑温度读数的数组,因此显示的温度将在稳定前的前几秒迅速增加。

将热电偶接头(感应温度的一端)握在手中,您应该会看到 LCD 上的温度读数因体热而增加。如果它减小,则说明您已将热电偶反接。 

现在您可以将热电偶安装到被测设备上。如果您使用的是清洗器热电偶,并且安装热电偶的地方接地,您可能会发现温度读数略有跳跃。如果发生这种情况,您将需要使用云母垫圈和螺丝/螺栓周围的一些聚四氟乙烯胶带将热电偶与被测设备电绝缘。不要忘记使用一些导热化合物来保持良好的导热性。 

您现在可以调整控制器了。

第 8 步 -

 
pYYBAGOkGWiAD6X6AAA9e59xFUs241.jpg
在 Processing 中使用 AutoTune 前端
 

注意:- Autotune 功能步进输出并观察输入的变化以计算比例、积分和微分带的参数。

转到用于处理的 Google 代码页- 
https://code.google.com/p/processing/downloads/detail?name=processing-1.5.1-windows.zip&can=2&q= 下载 zip 文件夹并将其解压缩到您的电脑。

现在去这里 -  http://www.sojamo.de/libraries/controlP5/
并下载 ControlP5 库。按照网页上“安装”下列出的说明进行操作。

现在转到您提取 Arduino PID ZIP 的位置并查找“AutoTune Front and Backend”文件夹。将文件夹复制到您的 Arduino 文件夹(很可能在您的文档文件夹中)。

打开 Arduino IDE,然后单击“文件”、“打开”。导航到提取的 zip 文件并将其打开。打开文件夹 Autotune Front and Backend,然后打开文件夹 AutotuneMAX31855Backend,然后打开文件夹 AutotuneMAX31855。双击 ino 文件 AutotuneMAX31855。这将在 Arduino IDE 中打开 Autotune 代码的后端。Ctrl
F (FIND)“//EDIT”(不带引号)并按 ENTER 键以查找用户 (YOU) 可以更改的参数。如果更改参数,建议您使用不同的名称保存代码,以便轻松改回原始代码。
将代码上传到 Arduino PID 控制器(确保编程电缆方向正确,RESET 按钮时序正确)。完成编程后,将电缆连接到 Arduino PID 控制器,因为处理前端将使用它。关闭 Arduino IDE。

打开 Processing IDE,点击 File,Open,然后找到你解压的 zip 文件夹,AutoTune Front and Backend,ProcessingFrontend,PID_FrontEnd_v0_3。选择名为 PID_FrontEnd_v0_3 的 PDE 文件。
这将在新的处理窗口中打开代码。
执行 CTRL F(查找),输入“//EDIT”(不带引号),然后按 ENTER。这将为您提供可能由最终用户 (YOU) 在运行调整前端之前调整的参数。
如果您进行了任何更改,请以新名称保存更新后的文件,以便在需要时轻松返回到原始文件。

现在单击“运行”(看起来像一个播放按钮)。这将打开一个窗口,您可以在其中手动调整或自动调整控制器。如果大约 20 秒后您看不到设置点、输出和输入的图形(窗口的 RHS),请尝试关闭窗口并再次单击运行按钮。如果您在处理图表值时遇到问题,请检查您是否已关闭所有 Arduino IDE。Windows 有时会导致问题,需要重新启动。

我假设您想使用 Autotune,因为它对初学者来说要容易得多。检查编程电缆是否仍然连接。
Processing 窗口中按钮的 RHS 值是当前使用的值。LHS 或按钮下方的值可以更改为您需要的值。单击 SEND_TO_ARDUINO 按钮时,将移入这些值。 
将 TOGGLE_AM 按钮设置为 MANUAL,将 SETPOINT 按钮设置为所需的设置点,检查 TOGGLE_DR 是否设置为 DIRECT,检查 TOGGLE_TUNING 是否设置为 OFF。现在单击 SEND_TO_ARDUINO 按钮。

这会将控制器置于手动模式。从小处开始,每次更改时缓慢增加 OUTPUT 按钮 (0-1000),单击 SEND_TO_ARDUINO 按钮(将 TOGGLE_AM 按钮切换为 AUTO,然后在单击 SEND_TO_ARDUINO 之前返回 MANUAL),继续缓慢增加 OUTPUT 直到系统处于平衡状态与所需的温度。这可能需要一些时间,特别是对于缓慢的温度循环,所以请耐心等待!

当您的系统与所需的 SetPoint 达到平衡时,将“Toggle Tuning”按钮更改为 ON,然后单击“Send to Arduino”。Toggle_Tuning 按钮的 RHS 值应更改为 ON。这意味着它现在正在自动调整循环。如果您观察 OUTPUT 图,您将看到 AutoTune 函数对输出进行多次步进。当 Toggle Tuning 旁边的值从 ON 变为 OFF 时,它就完成了。您现在在 P、I 和 D 旁边看到的值是自动调谐值。记下这些值。

注意:- Autotuned 值是开始手动微调以获得更好的调整参数的好地方。有很多关于手动调整 PID 回路的指南。根据我的个人经验,我发现先运行 Autotune,然后逐渐调整值会产生相当不错的结果。

现在您可以花更多时间手动微调循环,也可以将 Arduino_PID_for_Espresso 草图上传到 PID 控制器(将您记下的参数插入 Arduino PID 控制器草图的第 120-122 行)。

菜单系统的结构是 
MENU     |                                
BREW ESPRESSO -- 这会将设置点更改为 Brew Setpoint
   |
蒸汽牛奶——这会将设定点更改为蒸汽设定点
   |
BREW TEMP--SET BREW POINT --按 L 和 R 键更改 Brew Setpoint
   |
STEAM TEMP--SET STEAM POINT--按 L 和 R 键改变蒸汽设定值
   |
OFFSET--SET OFFSET--按 L 和 R 键更改偏移(这用于显示浓缩咖啡机的“组内”温度)
   |

SCALE——当前未使用,将在 GitHub 提供的软件更新中实施。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !