文号
t58561
阅读
34355
回复
23
收藏
37
USB推力计套件
2013/07/14
IP:广东
前言:ASR要推力计,猴子诈死,本人救急。

除绿色板子STM8单片机为自制外,全部物料采购自淘宝,花费两小时安装调试完毕。实际上没有什么难度,主要是俺接错线了。
应变片这里用的是40kg量程的,当然,可以换。

串口输出16bit有符号数(是以字符串的形式输出的,当然也可以改成二进制),范围从-32768 ~ +32767。
应变片一致性相当好,校准之后可以当电子称用。

图就两张。
DSC_3470.jpg

QQ截图20130714040957.png
漏注:纵轴单位kg

按照KC惯例,接下来就是出套件,出套件,出套件。。。
清单包括:
任何你会用的单片机(并且你知道怎么写串口通信程序),
图中的一条PL2303 USB转串口线,
图中红色的HX711模块(淘宝现成的模块,不建议大家自己做,省下来的钱不够吃半碗饭的),
应变片(买最便宜的,其实一致性都不错,写个程序做个校准,好得很)。
+1
科创币
【四方】
2013/07/14
高质量发帖
+99
科创币
bh,王者归来
2013/07/14
叉辛苦了!!
+1
科创币
51区总管
2013/07/14
接……错……线
+1
科创币
布布卡
2013/11/10
电脑和烙铁和我的很像
novakon作者
13年5个月前修改于 12年2个月前IP:未同步
547647
1楼
源汁源味
//pfm.c
#include <stmduino.h>
uchar per=0;
void datacame(){
  pinHigh(C3);
  pinmode(A1,INPUTFL);
  
  uchar dbuf[24];
  for(uchar i=0;i<24;i++)
  {
    //send clock
    pinhigh(A2);
    pinlow(A2);
    
    //read out
    dbuf=pinread(A1);
  }
  
  for(uchar k=0;k<3;k++)
  {
    //send code for next transfer
    pinhigh(A2);
    pinlow(A2);
  }
  pinmode(A1,INPUTWAITING);
  if(per==0){
    uchar buf[3]={0,0,0};
    for(uchar b=0;b<3;b++)//24bit -> 3byte
    {
      
      for(uchar i=0;i<8;i++)
      {
        if(dbuf[b*8+i])//if this bit is 1
        {
          //set this bit of this buffer byte to 1
          buf|=1<<(7-i);
        }
      }
    }
    //most significant 16bit to int
    int value;
    *(((uchar*)&value)+0)=buf[0];
    *(((uchar*)&value)+1)=buf[1];
    
    printf("%d",value);
    endl();
  }
  pinlow(C3);
}

void main()
{
  clock(16M);
  cpudivider(1);
  
  //connect D0 to A1
  //connect CK to A2
  pinmode(A1,INPUTWAITING);//data
  pinmode(A2,OUTPUT);//clock
  
  pinmode(C3,OUTPUT);//status pin
  
  attach(datacame,A);
  waitfor(A,FALL);
  
  serial(115200);
  interrupts();
  while(1){
    sleep();
    //save power
  }
}
引用
评论
2
13年5个月前IP:未同步
547648
2楼
求详细套件清单。。就那么几样东西?       程序先收下了。。这么晚还不睡?
引用
评论
13年5个月前IP:未同步
547657
3楼
PL2303还是换成CH430之类的吧
+1
科创币
daxus
2013/07/14
考虑通用性以及易购性,还是PL2303好
引用
评论
1
novakon作者
13年5个月前IP:未同步
547717
4楼
回 2楼(cszal) 的帖子
是的,就这么几样。

贵的东西没有推广意义。
引用
评论
13年5个月前IP:未同步
547724
5楼
回 3楼(.........) 的帖子
加SD卡去掉串口,防止电脑炸飞
+5
科创币
清纯小萝莉
2013/07/14
绝对超高质量发帖
引用
评论
novakon作者
13年5个月前IP:未同步
547739
6楼
回 5楼(warmonkey) 的帖子
做的跟你一样,还不如用你的。。。
+1
科创币
kc地毯清洁员
2013/07/14
高质量发帖
引用
评论
novakon作者
13年5个月前IP:未同步
547769
7楼
花30分钟写了上位机软件,使用方法非常简单:

1 将PL2303线插入计算机USB口
2 打开本人编写的软件
QQ截图20130714141627.png
可以看到数字随着应变片受力变化在跳动

3 按下Start/Stop 按钮,开始记录采样
4 再按一次,停止记录
5 按Save,存为CSV格式
QQ截图20130714141715.png

6 打开MATLAB,导入保存的CSV文件
QQ截图20130714141826.png
第一列是时间戳(毫秒),第二列是16bit量化的电压值,随推力变化而变化。

7 输入命令作图(当然,一般应该先做数据处理,包括校正、单位化)
QQ截图20130714141924.png
QQ截图20130714142127.png
+1
科创币
20!Dopaminor
2013/07/14
压力计放在音响上能采集音频么
引用
评论
novakon作者
13年5个月前IP:未同步
547784
8楼
关于20!同志的问题:显然不能
红色板子是24bitADC模块(自带放大),速度只有80sps,专门用来对付各种应变片的。

如果需要24bit 192kHz采样,请将3.5mm音频线插入电脑声卡,并打开Audition等上位机软件进行采集。。。
+1
科创币
20!Dopaminor
2014/06/25
?
引用
评论
13年5个月前IP:未同步
547828
9楼
RS485+超长电缆.......................
引用
评论
13年5个月前IP:未同步
547902
10楼
楼主强大啊,matlab也会啊。。。。[s:271]
引用
评论
novakon作者
13年5个月前IP:未同步
548303
11楼
asdfd.jpg

修改了上位机程序,加入较零和设定重量功能。

运行此程序需要.NET Framework4支持。
attachment icon mvmeterPC.zip 9.61KB ZIP 224次下载
引用
评论
13年5个月前IP:未同步
548453
12楼
N同学一如既往的强大,例行吹捧~
曾经设想过一个同样的试车台,几乎没啥进展,羡慕一个
引用
评论
novakon作者
13年5个月前IP:未同步
548773
13楼
最新进展:qharryq订货1套,应变片自备。
感谢qharryq对本人研发工作的支持!!
引用
评论
13年5个月前IP:未同步
554999
14楼
2B铅笔亮了,图像还可以处理一下,光滑一点
引用
评论
12年2个月前IP:上海
728353
15楼
我也要 订货1套,应变片和hx711自备。
引用
评论
11年10个月前IP:河北
747012
16楼
上位机软件开下源呗~~~~
引用
评论
novakon作者
11年10个月前IP:广东
747184
17楼
引用 yuchouxuan:
上位机软件开下源呗~~~~
源码不幸弄丢了
引用
评论
11年6个月前IP:浙江
773456
18楼
楼主强大,点个赞
引用
评论
11年6个月前IP:浙江
774417
19楼
引用 .........:
PL2303还是换成CH430之类的吧
ch340的稳定性捉鸡成狗,还是换cp2105或者ft232吧
引用
评论
10年8个月前IP:山东
816932
20楼
上位机软件怎么做的?VB?
引用
评论
10年7个月前IP:河北
818350
21楼
还有货吗给我来一套给我一个你的联系方式
引用
评论
10年7个月前IP:广东
819512
22楼
记录数据,不断电,直接送入电脑
引用
评论
6年7个月前IP:山东
879755
23楼

想问一下作者,那个程序是怎么刷的(我是用的arduino uno r3,连到电脑上之后不知道怎么弄了)

引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的