
Air001+AD转换芯片+应变片用于3D打印热床调平
简介
制作简单成本低的3D打印压感热床调平方案,兼容HX71708或者CS1237,高采样率达到320或者1280Hz
简介:制作简单成本低的3D打印压感热床调平方案,兼容HX71708或者CS1237,高采样率达到320或者1280Hz开源协议
:MIT License
描述
获取程序
3D打印机压力热床,主控使用PY32F002AF15P(普冉) Air001(合宙) 本质是同一款,Arduino开发环境由合宙提供,可以使用HX71708、CS1237(推荐)两种AD转换芯片。
电路简单易于修改,可以很容易嵌入各种其它主板或项目电路中。
芯片可选数据速率
HX71708 10、20、80、320
CS1237 10、40、640、1280
基础版

新增RGB版本

- 5档LED进度条显示功能,触发进度转换成百分比,从30-100%控制LED点亮。
- 一颗LOGO灯光,4颗文字背景灯光,电阻跳线位选择颜色和常亮或者呼吸灯
- 外置基准源芯片,也可以选择20R电阻使用LDO作为基准源,外置更精准稳定
- 外置基准源在1280Hz速率下,重量读数跳变可以从30g降到10g左右,低阈值更稳定
使用参考


RGB灯光说明

触发逻辑
实时读取ADC芯片的压力传感器数据,并转换成压力值,速率最高1280Hz
滤波后的压力值大于阈值即可触发两个输出引脚的电平变化,有最长时间限制,超过后更新阈值回到未触发状态
当前的静态压力值+预设阈值=触发阈值,超过一定时间没有压力值突变,更新一次触发阈值
压力值长时间的缓慢增减不会导致误触发,仅在当前压力值的基础上发生突变大于预设阈值触发
测试条件:CS1237 1280Hz,5mm/s速度,皮带Z 80:20减速比,触发重量150g
连续10次重复精度测试结果:
| Range | Deviation |
|---|---|
| 0.0025 | 0.001146 |
| 0.0025 | 0.001146 |
| 0.0050 | 0.001581 |
| 0.0050 | 0.001581 |
| 0.0025 | 0.001000 |
| 0.0075 | 0.001871 |
| 0.0050 | 0.002000 |
| 0.0050 | 0.001658 |
| 0.0050 | 0.001581 |
| 0.0050 | 0.001346 |
klipper官方建议调平探针的重复精度范围(range)在0.025以内,如果使用HX711,数据速率最高80Hz的情况下,只能降低速度勉强达到要求,高采样率的HX71708和CS1237可以显著提高重复精度以获得更好的探测数据
如果测试结果显示范围(range)值大于25微米(0.025毫米),那么探针不满足典型的床面调平流程的精确度要求。可以尝试调整探测速度和/或探测起点高度以提高探头的重复性。

对比HX71708 80和320Hz的数据间隔,还有CS1237的数据间隔
下载说明
需要自备串口下载器,连接预留的串口排针插座进行下载
根据合宙官方教程配置开发环境Air001基于Arduino的用户手册
[重点]下载时将主频设置为48MHz

程序说明
程序都来自ChatGPT4编写
-
修改代码中
const int THRESHOLDS[] = { 50, 150, 300 };自定义触发阈值重量,boot按键在运行中可以用于切换。 -
串口波特率设置为115200,其它设置和调试都可以使用串口命令进行修改。
-
串口发送
HELP获取帮助信息 -
使用命令:
SET SPEED 索引,重启后生效,用于修改CS1237数据速率,降低可以得到更精准的重量,0=10,1=40,2=640,3=1280。 -
使用串口发送命令:
ADC 数值,此值是一个校准因子,用于将 ADC(模数转换器)的读数转换为实际的重量,不同传感器结果不同,需要自行测试修改得到准确的称重结果。 -
使用命令开启串口输出
SERIAL,则串口始终实时输出当前重量读数,使用已知重量物品称重,观察读数,修改校准因子,直到读数接近所称重物品的实际重量。[重点]air001的性能不足以在640Hz以上采样率开启串口稳定运行,仅在调试时降低采样率使用,高采样率下务必关闭 -
调试说明:
-
SERIAL命令开启实时重量读数输出,每100ms输出一次三个数据:重量、滤波后的重量、触发阈值。 -
开启
SERIAL输出后,可以使用Arduino IDE的串口绘图仪,将数据使用可视化图表展示。
-

-
RECORD命令开始记录读取重量的最高值和最低值,可以用于观察空载下读数浮动,或者触发力度。 -
EMA用于开启、关闭指数移动平均滤波器,此选项设置后不保存,默认开启
以上特性只有CS1237版本代码可用,HX71708已弃用,下方内容仅供参考,不建议使用
HX711库不支持HX71708修改数据速率,HX71708只有一个通道,增益固定,通过代码修改数据速率;而HX711通过硬件修改速率,代码修改增益,所以需要修改hx711.cpp的库文件


代码中scale.set_gain(64);设置增益,再把对应增益在,cpp库文件中的脉冲数改为4,即可实现对数据速率的控制
HX711程序以绝对压力值判断,压力值超过阈值即触发,每隔一段时间读数归零
CS1237以相对压力值判断,以实现不归零动态检测压力突变,实时压力值>参考值+阈值触发,参考值每隔一段时间更新一次,缓慢增长的重量到了阈值不会导致触发
都使用Boot键切换代码中的预设阈值
输出两个相反的高低电平信号,短接跳线处选择
建议使用CS1237,相对价格更低、性能更好,代码调试功能更丰富
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程工程成员
知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论