LoginSignup
28
25

More than 3 years have passed since last update.

arduinoからのデータをExcelに保存する

Last updated at Posted at 2020-10-03

arduinoからのデータをExcelに保存する

この記事ではOffice365のExcelを使用しています。また、DataStreamerのバージョンは5.10.7451を使用しています。

概要

Excelでcsv形式のシリアル通信を受け取り、このように時間ごとに表として取得できます。
image.png

また、ただ単なる表としての扱いですのでこのようにグラフで見ることもできます。
image.png

1. DataStreamerを有効化する。

Excelの[ファイル]>[オプション]を開く。
image.png
image.png

[Excelのオプション]の[アドイン]
image.png

管理(A):"Excel アドイン"となっているところを"COM アドイン"に変更し、[設定]を押す。
image.png
image.png
image.png

"Microsoft Data Streamer for Excel"の項目にチェックを入れてOKを押す。
image.png
image.png

"Data Streamer"というタブがあったら完了です。
image.png

2. シリアル通信を受信する。

シリアル通信が可能なデバイスをパソコンに接続し、のタブの中の<デバイスの接続>の中から接続したデバイスのCOMを選択する。
image.png

<データの開始>を押すとデータを記録し始めます。
image.png
image.png

また、データの範囲を選択することでグラフを作ることもできます。
image.png

ここではarduinoに以下のコードを書き込み、120度ずつ位相がずれているsin波をcsv形式で出力するようにした。(ex:0.21,0.74,-0.95\n)

Excel_test.ino
#include <math.h>

double out1, out2, out3;
int t = 0;
byte d = 3;
float t_rad;

void setup() {
  Serial.begin(9600);
}

void loop() {
  t += d;
  t = t % 360;

  t_rad = t * 2 * M_PI / 360;
  out1 = sin(t_rad);
  t_rad = (t + 120) * 2 * M_PI / 360;
  out2 = sin(t_rad);
  t_rad = (t + 240) * 2 * M_PI / 360;
  out3 = sin(t_rad);

  Serial.print(out1);
  Serial.print(",");
  Serial.print(out2);
  Serial.print(",");
  Serial.println(out3);
  delay(40);

}

3. 設定

[詳細]>[設定]からシリアル通信関係の設定が行える。arduinoで9600bpsでシリアル通信をする場合、特に何もしなくてもよい。(デファルトで9600bpsに設定されている感じ)
image.png
image.png
image.png

また、"設定"のシートで表示する行の数などの設定ができる。
image.png

参考文献
Microsoft What is Data Streamer?
https://support.microsoft.com/en-us/office/what-is-data-streamer-1d52ffce-261c-4d7b-8017-89e8ee2b806f

28
25
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
25