这个采集频率应该是只有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是处于高速选择,米思齐改为代码显示代码当中应该是有一个延时函数的将其删掉或更改时间。保证串口波特率足够这样就是高速了。
#include <DFRobot_HX711_I2C.h>
// 动态变量
volatile float mind_n_m, mind_n_w;
// 创建对象
DFRobot_HX711_I2C MyScale(&Wire, 0x64);
// 主程序开始
void setup() {
Serial.begin(115200);
mind_n_m = 0;
while (!MyScale.begin());
for (int index = 0; index < 200; index++) {
mind_n_w = (MyScale.readWeight());
if ((mind_n_w>mind_n_m)) {
mind_n_m = mind_n_w;
}
Serial.print(mind_n_w);
Serial.print(",");
Serial.println(mind_n_m);
}
}
void loop() {
}
改好的代码
看楼主的和这个差不多,可这样修改(红圈)改完后为80hz
15引脚高电平(16 15引脚连上就行) 断开15引脚与地的连接
如果是这种的,更好弄,把10hz的电阻拆下,80hz位置直接一坨锡(焊0R电阻也可以)
补充一下个人的意见:lz的教程基本没问题,但是杜邦线最好用焊锡焊上,我实测有概率一直输出0.00,重新接线后问题就消失了,很有可能就是杜邦线接触不良导致
引用bbbbmmdddd发表于22楼的内容[图片][图片][图片]看楼主的和这个差不多,可这样修改(红圈)改完后为80hz15引脚高电平(16 15引脚连上就行) 断开15引脚与地的连接[图片]如果是这种的,更好弄,把10hz的电阻拆下,80...
请问是把在10Hz位上的电阻换到80hz的位置上吗?感谢
请问LZ这个样子算弄好了嘛,但是后面又测试了几次数据都是0.00,怀疑是杜邦线的接触不良,后面检查了一下杜邦线的连接又测试了很多次发现数据始终是0.00,打算过几天等吸锡器到货然后给针脚拆了直接给杜邦线焊在电路板上在进行测试
引用bbbbmmdddd发表于22楼的内容[图片][图片][图片]看楼主的和这个差不多,可这样修改(红圈)改完后为80hz15引脚高电平(16 15引脚连上就行) 断开15引脚与地的连接[图片]如果是这种的,更好弄,把10hz的电阻拆下,80...
奥奥好的,感谢!
我做的为什么接数据线电脑上测试可以读到数据,但是离开电脑只接9v供电测试SD卡里面什么也没有,这是为什么啊?因为我米思齐是3.0?
请问可以给下编程软件的下载网站吗,找了一个小时也没找到,全是乱七八糟的广告
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
如果浏览器是360的话,就别用了哈
请教一下作者,为何我的装置在编程软件里可以正常回传数据,但是一旦脱离电脑,改用电池盒供电以后,就无法往sd卡里存数据了,sd卡的数据都是乱的,并且每次采集结束前都会有两个非常高的波峰,或者是三个。我用的是512M的SD卡,不知道能不能兼容。希望作者可以做一个正常工作的指示灯,就是当正常存储的时候,可以在开发板上亮一个灯,不然我不知道是卡的问题,还是存储器的问题
感谢 感谢 感谢