0. 简介

需要的工具:PLX-DAQ,其是一个带有宏定义的Excel表,通过适当的配置可以从Arduino直接读取并保存数据,功能十分的强大。

下载链接:PLX-DAQ version 2 - now with 64 bit support! (and further new features) - Using Arduino / Interfacing w/ Software on the Computer - Arduino Forum

可能遇到的问题:无法运行,原因EXCEL中宏被禁用了

解决方法:

1.单击 Excel 左上角“Office”图标,弹出菜单,单击 “Excel选项”跳转至操作页面;

2. “Excel 选项”操作页面,选择“信任中心”,然后点击“信任中心设置”;

3. “宏设置”选项下,点选 “启用 VBN 宏(不推荐;可能运行……)” ,设置完成,点击确定按钮,Excel 2010 宏 即可正常运行。

1.  编写传感器数据采集程序

采集12V锂电池电池电量,并采用冒泡排序法进行滤波处理。

简单的电池电量测量程序如下:

void setup() {Serial.begin(9600);
}void loop() {int sensorValue = analogRead(A0);   // A0读取到的模拟量float battery_voltage = sensorValue*(1.0/1023.0)*12.37; Serial.println(battery_voltage);delay(500);
}

2. 将数据传入上位机写入EXCEL中

第1步,在void setup()中添加以下程序:

Serial.begin(9600);
Serial.println("CLEARDATA");
Serial.println("LABEL,TIMER,Gyro_x,Gyro_y,Gyro_z");

第二行:清除数据

第三行:LABEL,让PLX-DAQ知道写的是表格

TIME:是当前时间,Timer是从启动后开始算时间,从0开始

//Label后面的就是要在excel中列的名字

后面这个几个参数都是表头

第2步: 修改void loop()中的程序

Serial.print("DATA, TIMER,");
Serial.print( gx );
Serial.print(",");
Serial.print( gy );
Serial.print(",");
Serial.println( gz );

第2行代表要输出的变量,第3行代表换一列存储下一个变量的值,接下来调整连接的端口和波特率即可正常使用了。

void setup() {Serial.begin(9600);Serial.println("CLEARDATA");Serial.println("LABEL,TIMER,BAT_V");
}void loop() {int sensorValue = analogRead(A0);   // A0读取到的模拟量float battery_voltage = sensorValue*(1.0/1023.0)*12.37; Serial.print("DATA, TIMER,");Serial.println(battery_voltage);delay(50);
}

 

3. 采用冒泡排序法进行滤波

const byte dataReadinglength = 10; //数组长度
int dataReading[dataReadinglength] = {0}; // 数组初始化// 进行冒泡排序
void bubbleSort(int array[], int size) {//外循环 : 循环总次数为 (size -1) :  step = 0 to size -2for (int otter = 0; otter < size - 1; ++otter) {// 内循环 - 总次数为 (size-1-step) : i = 0 to size - 2 - stepfor (int inner = 0; inner < size - 1 - otter; ++inner) {// 比较数组中当前数值和下一个的数值// 如果当前数值大,则交换位置if (array[inner] > array[inner + 1]) {int temp = array[inner];array[inner] = array[inner + 1];array[inner + 1] = temp;}}}
}//气泡排序,去掉最小的,去掉最大的,然后平均
int getValue(int array[], int size) {bubbleSort(array, size); //气泡排序//对于array size小于3个的数组,选择全部数据byte arrayBegin = 0;byte arrayEnd = size - 1;//对于array size 大于3个的数据,//去掉最小和最大,然后选择中间的30%数据if (size > 3) {arrayBegin = size * 0.3;arrayEnd = size * 0.7;}int readingSum = 0;for (int i = arrayBegin; i < arrayEnd; i++) {readingSum += dataReading[i];}int readingAvg = readingSum / (arrayEnd - arrayBegin);return readingAvg;
}// 根据冒泡法计算电压
float Battery_V()
{for (int i = 0; i < dataReadinglength; i++){// 将读数放入到数组中dataReading[i] = analogRead(A0);//   delay(50);}int sensorValue = getValue(dataReading, dataReadinglength); //A0读取到的模拟量float battery_voltage = sensorValue * (1.0 / 1023.0) * 12.37;      return battery_voltage;     // 电池电压
}void setup() {Serial.begin(9600);Serial.println("CLEARDATA");Serial.println("LABEL,TIMER,BAT_V");
}void loop() {float battery_voltage =  Battery_V();Serial.print("DATA, TIMER,");Serial.println(battery_voltage);delay(50);
}

Arduino读取传感器数据存进Excel中相关推荐

  1. python 从excel中抓取数据_使用Python抓取美团数据存于Excel中

    0.程序是针对美团中的美食部分数据按好评排序采集. 要抓取保存的数据为: 商家名类型  地理位置 评论人数  均价  最低价格 1.首先编写网页数据采集函数,使用request采集网页源码,具体实现如 ...

  2. 使用Python批量实现某一Excel文件中每3行数据存一个Excel文件

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 远芳侵古道,晴翠接荒城. 大家好, ...

  3. WebServer应用示例2:Siri语音识别读取传感器数据 | ESP32轻松学(Arduino版)

    本系列历史文章目录: ESP32 概述与 Arduino 软件准备 ESP32与掌控板IO接口编程入门 蓝牙翻页笔(PPT 控制器) B 站粉丝计数器 Siri 语音识别控制 LED 灯 Siri 语 ...

  4. 【Arduino串口数据保存到excel中常用三种方法】

    [Arduino串口数据保存到excel中常用三种方法] 1. 前言 2. 利用excel自带Data Streamer读取 2.1 启用 Data Streamer 加载项 2.2 刷写代码并将微控 ...

  5. 用Arduino玩转掌控板(ESP32):Siri语音识别读取传感器数据→WebServer应用示例2

    众所周知,掌控板在创客教育中用的非常广泛,它是一块基于 ESP32 的学习开发板.大家对掌控板编程,用的比较多的都是图形化编程的方式,比如 mPython.Mind+ 等.但是,既然掌控板是基于 ES ...

  6. arduino i2c 如何写16位寄存器_基于STM32使用I2C读取传感器数据

    撑腰会儿:I2C通信协议介绍​zhuanlan.zhihu.com 上文介绍了I2C协议的基本结构,今天,使用STM32和LM75A温度传感器来实现I2C读取信息. 首先,为了使用I2C读取传感器测量 ...

  7. matlab将数据输出到excel中,matlab将数据保存为excel表格-怎样将MATLAB中的数据输出到excel中...

    怎样将MATLAB中的数据输出到excel中? xlswrite()函数可以将matlab中数据保存到excel中,请面例子: >> data = magic(5) % 示例数据 data ...

  8. python处理大量excel数据-使用python将大量数据导出到Excel中的小技巧分享

    (1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到python中,该如何导出数据到Excel呢?如果碰到需要导出大量数据又该如何操作呢? 本文主要解决以 ...

  9. python输出数据到excel-使用python将大量数据导出到Excel中的小技巧分享

    (1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到python中,该如何导出数据到Excel呢?如果碰到需要导出大量数据又该如何操作呢? 本文主要解决以 ...

最新文章

  1. 2019,归零自己,为自己重生,为自己而战
  2. 2014 7-8月MoonCake新增功能更新
  3. C#可选参数、命名参数、参数数组
  4. java 取pdf表格内容数据_Java 在PDF中添加表格
  5. Java8 Lamdba表达式 002
  6. 链表常见面试题二:约瑟夫环
  7. 发红包案例(RedPacketFrame简介)
  8. leetcode: 451. Sort Characters By Frequency
  9. Session共享的四种方法
  10. 华为P50系列开始量产:Pro+版或进一步延期
  11. 3D Bounding Box Estimation Using Deep Learning and Geometry
  12. Spring实战(使用数据)
  13. 公共基础知识:地理之八大行星
  14. PG数据库按照30分钟时间片统计数据
  15. 某计算机内存容量8GB,按字编址,每个字包括2字节,需要多少根地址线?
  16. Unexpected exception parsing XML document from class path resource
  17. 如何设计一个API快速开发平台?
  18. python标准库不需要导入即可使用其中的所有对象和方法_Python编程及应用-中国大学mooc-题库零氪...
  19. [渝粤教育] 天水师范学院 无机及分析化学 参考 资料
  20. 为什么企业需要两化融合管理体系?

热门文章

  1. 植物微生物组文章目录(170912更新)
  2. 百度HTTPS认证Apache http自动跳转到https
  3. 基于 GraphQL 的 BFF 实践
  4. My Batis Plus 学习笔记 一
  5. 如何阅读datasheet(数据手册)(1)
  6. Filter 过滤器的介绍及使用
  7. mysql最大公约数_最大公约数用算法
  8. 工欲善其事必先利其器——办公篇
  9. 元气骑士多终端跨网远程联机解决方案
  10. leetcode 6 -- ZigZag Conversion