用c语言写一个加速度传感器检测震动的例子
时间: 2023-03-26 20:00:53 浏览: 180
你好,以下是使用 C 语言编写加速度传感器检测震动的示例代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define SAMPLE_RATE 100 // 采样率,单位为 Hz
#define WINDOW_SIZE 10 // 窗口大小,单位为采样点数
#define THRESHOLD .5 // 震动阈值,单位为 g
int main()
{
// 模拟加速度传感器采集数据
float data[SAMPLE_RATE] = {};
for (int i = ; i < SAMPLE_RATE; i++) {
data[i] = sin(2 * M_PI * 10 * i / SAMPLE_RATE) + sin(2 * M_PI * 20 * i / SAMPLE_RATE) + sin(2 * M_PI * 30 * i / SAMPLE_RATE);
}
// 滑动窗口检测震动
int count = ;
for (int i = ; i < SAMPLE_RATE - WINDOW_SIZE; i++) {
float sum = ;
for (int j = ; j < WINDOW_SIZE; j++) {
sum += fabs(data[i + j]);
}
float avg = sum / WINDOW_SIZE;
if (avg > THRESHOLD) {
count++;
}
}
// 输出结果
printf("震动次数:%d\n", count);
return ;
}
希望对你有所帮助。
阅读全文