这个采集频率应该是只有10赫兹,这对于火箭来说实在是太丢失细节了,首先确保HX 711是处于高速选择,米思齐改为代码显示代码当中应该是有一个延时函数的将其删掉或更改时间。保证串口波特率足够这样就是高速了。
前言:试车台及推力测试计在固体火箭发动机的检验,迭代更新中起到重要作用,本人发现目前网络上缺乏较为完整的试车台及推力测试计的制作教程,故决定尽自己的能力做出这篇教程,如有疑问或建议,欢迎提出!
首先先放一张主要所需材料及购买成本表:
A列所示材料为必要材料,E列材料可根据个人实际情况酌情购买,其中铝板可以换成其余合适板材,T型螺母及对应螺丝,垫片应按照所购买条形压力传感器上的螺丝孔径购买,不同型号压力传感器螺丝孔径不一样。这里给出的尺寸供20KG条形压力传感器参考。电池盒及电池用于通过DC口给Arduino uno r3开发板(以下简称为单片机)供电,如有合适的USB电源可以不购买。另外铝板或其他板材上需要打两个孔,孔的大小间距需要针对自己压力传感器上螺丝孔的间距大小来打。关于SD卡的容量大小需要注意,由于大部分SD卡模块不支持读取大于2GB的SD卡,所以需要购买几十或者几百MB的小容量SD卡。
A列2至6均为试车台支撑部分所需零件,按照下图进行组装即可:
组装所用到的紧固件(螺丝,螺母及垫片)推荐使用下面这种,搭配对应尺寸的内六角扳手:
组装完成后,试车台的主体支撑部分就基本完成了。这时候会剩下一根120mm的铝型架,这是用于后续固定压力传感器的,先不用安装上。
接下来就是最主要的推力测试计的制作了:
首先进行硬件部分连接,将条形压力传感器上的四根线按红接E+,黑接E-,绿接A-,白接A+用电烙铁焊接至HX711模块上,HX711另一端的四个口各自焊好杜邦线,这里需要保证每个口焊接的杜邦线颜色不一样,方便后面连接单片机引脚。随后将连接了VCC的杜邦线连在单片机任意一个5V的引脚上 ,连接了GND的杜邦线连接至单片机任意一个GND引脚上,另外两根连接了DT和SCK的杜邦线可连接在单片机0-13,A0-A5中任意两个引脚上。我是将DT连接在A2引脚,SCK连接在A5引脚上。这样压力传感器及HX711模块的连接就完成了。接下来连接SD卡模块,将SD卡模块的VCC引脚通过杜邦线与单片机的任意5V引脚相连,两个GND引脚也用杜邦线相连。SD卡模块剩下的四个引脚可在单片机0-13,A0-A5中选择任意四个引脚相连,我是CS连10,SCK连13,MOSI连11,MISO连12。随后将256MB的SD卡插入SD卡模块后,单片机及各模块硬件部分的连接就结束了。再将带孔铝板用螺丝,垫片,T型螺母安装在压力传感器上,并将压力传感器固定在剩余那根120mm的铝型架上调整好位置就行了,这里需要注意,垫片放置的数量应保证铝板不会压到压力传感器上白色胶封部分,且不会与另一端螺丝头接触,如图:
安装好后整体是这样:
随后再将铝型材通过角码,紧固件安装到试车台的主体支撑部分上,如图:
完成后试车台各硬件部分的连接就结束了。
先将单片机用购买时带的数据线与电脑USB口相连,随后进行软件安装及编程:这里用到的编程软件是Mixly,可以直接在浏览器搜索“Mixly”进入官网免费安装,B站上也有不少安装教程。另外还需要安装一个CH340串口驱动,也可以直接在浏览器搜索“CH340串口驱动”找到安装网站进行安装,B站上同样也有不少安装教程。待软件和驱动安装好后,打开Mixly,找到这个Arduino AVR:
点开后进入这个页面,有一定Scratch编程基础会对下面的编程有较大帮助:
左侧分区点击后就可以看到许多模块:
找到以下图片中的模块,并将他们如图拼接(其中Mixly给出的HX711称重模块中的初始比例系数为1992,先不用更改。图中的比例系数为我针对我压力传感器计算得出的,不可照搬。):
图中框内选择的“A2”“A5”“11”“12”“13”“10”均为先前连接单片机对应的引脚,如连接的引脚与我的有不同,需要根据实际连接情况更改。
关于框内的比例系数,不同的压力传感器的比例系数不一样,需要通过以下步骤计算得出自己压力传感器的比例系数。Mixly给出模块中的初始比例系数为1992,先不更改此比例系数,确保其余模块摆放正确,引脚输入正确后,最小化Mixly,在桌面上找到“此电脑”,左键单击找到“管理”:
打开管理后点开设备管理器——端口(COM和LPT):
找到这个USB-SERIAL CH340,这后面的(COM5)就是对应的端口,记住这个端口,然后回到Mixly,点开右上角端口选择处,选择对应的端口,我的端口是COM5所以选择的COM5:
选择好后将我们的压力传感器及铝板水平放置,并保证铝板上表面无重物压着:
回到Mixly,点击左上角的上传,上传成功后下方就会出现压力传感器传来的数据了:
然后找一个已知质量m的物体作为砝码,放置在铝板上,观察压力传感器稳定传来的数据n(可能会有零点几的误差,取平均值)然后利用以下公式:1992*n=x*m 算出我们所需要的比例系数x,将这个比例系数x填入对应的模块框中,再进行一次上传,我们的推力测试计就完成了(这里m单位的选择就会影响最终传出数据的单位,比如我选用的单位是g,那么后续测得的推力数据的单位就是0.01N,可以根据自己情况酌情选择)。
另外关于单片机的供电,可以选择9VDC电池盒搭配9V电池然后连接至单片机DC口(如图):
这种供电方式我个人比较推荐,当然也可以使用USB电源连接刚刚数据线的USB口进行供电,但由于我之前用充电宝进行供电时有突然断电情况出现,且不太清楚原因,所以最终选择用DC口配合9V电池供电,这也可以更具自己电源的实际情况酌情选择。
在所有都完成后,连接电源,试试用手或者砝码给一些压力来测试推力测试计是否工作正常,在停止给于压力后,将SD卡抽出,插入读卡器中看能否正常读取正确数据,如读取正常,数据正常,推力测试计及试车台就制作完成了。接下来就可以用铁丝将发动机固定在试车台上去试车采集数据了:
那么本教程就到此结束,感谢各位的阅读。如关于教程中有不明白的地方欢迎提出问题,有好的建议或者批评也欢迎提出,第一次出教程还请多多担待!
这个采集频率应该是只有10赫兹,这对于火箭来说实在是太丢失细节了,首先确保HX 711是处于高速选择,米思齐改为代码显示代码当中应该是有一个延时函数的将其删掉或更改时间。保证串口波特率足够这样就是高速了。
这个采集频率应该是只有10赫兹,这对于火箭来说实在是太丢失细节了,首先确保HX 711是处于高速选择...
只需要删除延时代码就行了吗?采集数据确实慢了些,只足够采集大概的数据。之前听说速度慢是因为HX711模块的原因,需要改一个电阻?如果只用删延时代码的话我有空试试。
好帖,正愁搞不懂hx711放大器呢,文章细节很多,帮大忙了
充电宝突然断电应该是因为电流太小了,充电宝自动断电
是这样吗,明白了感谢。这样看来还是用9V电池更好,之前用了两次充电宝都导致中途断电丢失数据了,还以为是我充电宝电量或是我单片机有问题。
是这样吗,明白了感谢。这样看来还是用9V电池更好,之前用了两次充电宝都导致中途断电丢失数据了,还以为...
arduino的单片机端口输出电流不是很够点燃成品点火头。用单片机io口去控继电器或者拉MOS管,点火单独一路供电会可靠很多。
是这样吗,明白了感谢。这样看来还是用9V电池更好,之前用了两次充电宝都导致中途断电丢失数据了,还以为...
丢失数据还有一个可能是使用杜邦线连接SD卡与arduino并不可靠(SD卡与arduino的连接是你这个电路中相对高速的东西了
#include <DFRobot_HX711_I2C.h>
// 动态变量
volatile float mind_n_m, mind_n_w;
// 创建对象
DFRobot_HX711_I2C MyScale(&Wire, 0x64);
// 主程序开始
void setup() {
XXXXXXXXXgin(115200);
mind_n_m = 0;
while (!XXXXXXXXXXgin());
for (int index = 0; index < 200; index++) {
mind_n_w = (XXXXXXXXXXadWeight());
if ((mind_n_w>mind_n_m)) {
mind_n_m = mind_n_w;
}
XXXXXXXXXint(mind_n_w);
XXXXXXXXXint(",");
XXXXXXXXXintln(mind_n_m);
}
}
void loop() {
}
改好的代码
很高兴教程能对你有所帮助,如果有不明白的地方欢迎提出!
我按照lz的方法连接了hx711,单片机和称重传感器(买的是200kg大量程的),可是不知道为啥串口...
可以检查一下接线以及代码。我不太清楚hx711模块是否适用于200kg的称重传感器,可以咨询一下店家。另外你加的多少kg的配重?称重传感器是条形的吗?
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |
200字以内,仅用于支线交流,主线讨论请采用回复功能。