关于arduino:MPU 6050加速度计值给出一个动作的正值和负值吗?

mpu 6050 accelerometer value gives positive and negative values for one movement?

我正在使用arduino uno,gy-521 mpu 6050和Jeff Rowberg库。虽然代码很完美,但结果却不尽人意。我正在使用RealAccel选项,但是当我将加速度计向右移动时,由于向右移动,数据首先正确地是正数,从而增加了速度。但是一旦我停止移动设备,就会出现负值。在大多数情况下,正值和负值都是相等的,这意味着如果我停止移动加速度计,则在正方向上移动等效于" 100"的值时,也将有多个其他负值加起来大约为" -100'的值。我认为这是因为对于每个动作,都会有相反且相等的反应,但如果不是,我想知道为什么会发生这种情况,即使有这种情况,也必须有解决的办法,对吗?我以前用多个if语句解决了这个问题,基本上是说后7个数字中的任何一个都是正数(由于噪声),那么下一个x个数字将是零,但是我想听听这个问题的其他想法或解决方案。您。


如果沿一个方向加速对象,则该对象将永远不会减速或停止。 它将永远朝着这个方向前进。 减慢或停止的唯一方法是产生负加速度。 在您的情况下,负数等于正数是正确的-这是因为您从速度零开始,到速度零结束。

我认为您实际上是在尝试计算该方向的速度,该速度将从0开始,超过0,然后返回0。要获取该数字,请将时间= 0到任意值的总和(加速度*(时间差)) 时间,您需要速度。 这称为加速度的黎曼和。

为了进一步阅读,请查找"一维运动学"。