极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 25024|回复: 4

如何利用arduino对实时采集的数据进行处理

[复制链接]
发表于 2018-7-20 09:25:05 | 显示全部楼层 |阅读模式
我的情况是这样的:运动机构与压力传感器相连。机构在运动的时候,压力传感器检测到的压力会发生变化。我想通过实时监测到的压力值来控制机构的运动,比如说当压力值没有达到设定的压力时,机构就往前运动,那么压力就变大,当超过设定的压力1(比如50N)之后,机构换向(后退),那么压力就变小,当低于设定的压力2(比如30N)之后,机构换向(前进),重复之前的过程。在这个过程中,压力是需要实时检测的,以此作为机构前进后退的判据。

想用r3做机构执行,mega2560做数据采集并将采集到的数据显示在lcd上,之后mega 2560与r3用IIC进行连接。我试了一下,mega2560可以把数据传输到r3。但是数据是字符型的。。。而我下一步是想要根据这些数据来进行机构执行,这一步就做不了了。。
回复

使用道具 举报

 楼主| 发表于 2018-7-20 09:26:31 | 显示全部楼层
这是主机程序
#include <Wire.h>
#include <HX711.h>
#include <LiquidCrystal.h>

HX711 hx(9, 10, 128, -0.115);
LiquidCrystal lcd(12,11,5,4,3,2);
double F=0;
const int address=4;
double val;

void setup() {
  Wire.begin();
  Serial.begin(9600);
  hx.set_offset(-16000);
  lcd.begin(16,2);
  lcd.print("START!");
  delay(3000);
}
void loop()
{
  lcd.clear();
  F=Get_F();
  if(F<1)
  {
    F=0;
  }
  val=F;

  Wire.beginTransmission(address);
  Wire.println(val);
  Wire.endTransmission();
  
  lcd.print("F = ");
  lcd.print(F);
  lcd.print(" N");
  delay(500);
}

double Get_F()
{
  double sum0 = 0;
  double sum1 = 0;
  double Weight_Shiwu0;
  double Weight_Shiwu;
  
  for (int i = 0; i < 10; i++)
  {
    sum0 += hx.read();
    sum1 += hx.bias_read();
  }
  Weight_Shiwu0=(double)(sum0/10);
  Weight_Shiwu=(double)(sum1/10);
  F=(double)(Weight_Shiwu/100-1);
  return F;
}

void requestEvent()
{
  Wire.write("F");
}
回复 支持 反对

使用道具 举报

发表于 2018-7-20 10:28:37 | 显示全部楼层
就这一点功能用一个片子不就可以了,还弄俩,给自己找麻烦呀这是
回复 支持 反对

使用道具 举报

发表于 2018-7-20 15:08:27 | 显示全部楼层
本帖最后由 brucewoo 于 2018-7-20 15:12 编辑

1,一个2560就够了,没必要多个UNO
2,注意,HX711的输出速率是10Hz(手册上说可以设置到80Hz,但淘宝上的全都是10Hz,且rate引脚已经接地,没法改),这个压力检测的响应做不到“实时性”,可能会造成你运动机构过压了才反应过来,你需要在算法上下功夫,每读取一次就要预测再走多少会达到预期值,提前停机。
3,你自己打开hx711库文件的源码看看,它read()的时候有一个死循环,要读到输出数据为止,你如果运动机构是采用步进电机,需要使用定时中断ISR()里面驱动步进电机,否则一调用读数就卡壳了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-20 17:10:25 | 显示全部楼层
brucewoo 发表于 2018-7-20 15:08
1,一个2560就够了,没必要多个UNO
2,注意,HX711的输出速率是10Hz(手册上说可以设置到80Hz,但淘宝上的全 ...

感谢您的回复。我会好好参考你的建议的,我玩arduino时间也不长,懂的东西也不够多。还需要各位前辈多多指点,真心地表示感谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 06:21 , Processed in 0.056029 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表