バイトが残っています。2,048バイトです。2KBですがプログラムがコンパクトなのでメモリ空間がとっても広く感じますね。動作確認オシロ(RIGOL・DS1104Z、100MHz/4ch)で動作確認を行いました。#5(計測開始を示すインジケータLED)です。スイッチ押下からLED点灯までの遅延時間を数十回観測したところ約10μs~約25μsでした。変数time_startへmillis()の値をストアするのはLED点灯よりも前のため、スイッチ押下から遅くとも約25μs以内に値がストアされます。ストップウォッチの用途としては十分な速さです。#3(計測終了スイッチの入力ポート)です。予想に反しチャタリングは見られませんでした。このタクタイルスイッチを使う場合は5ミリ秒のdelay()で十分そうです。計測時間1ミリ秒から120秒まで時間を変えながら約130点の測定を行いオシロと比較しました。Unoの測定値のずれがどれくらいの割合となるかを図示したのが以下のグラフです。1点目(500.0%)、2点目(177.78%)、3点目(87.50%)、5点目(6.67%)はグラフからはみ出していてプロットされていません。N=11(計測時間としては約40ms)以降±1%、N=30(計測時間としては約200ms)以降±0.5%に収まっていてストップウォッチの代替として十分と思います。計測開始スイッチを押下する計測終了スイッチを押下するUARTコマンド"d"を送信し戻り値(=経過時間)を受信する※時間はミリ秒表記です。VBAのサンプルです。Pi、Jenkins、Pythonでテストランナーを作ってテストウェアをGitHubやSubversionで管理するのは今後のネタに取っておき、まずはExcelでスモールスタートします。今回は5回の測定を行って結果の整理とグラフ作成を行うテストランナーを製作します4。・コマンド"d"を送信し戻り値をアクティブセルに格納する・アクティブセルを左に2つ、下に1つ移動する(GetDuration()を登録しています)5回の測定を行って結果の整理とグラフ作成を行う自動テストのデモ動画です。ステップ数かぞえチャオ!Ver.1.68でステップ数を数えました(ファイル名はかぞえチャオで開けるよう適当に変更しています)。12実ステップ数はストップウォッチ121行、テストランナー145行、トータル266行でした。おわりにストップウォッチの代替となるものをArduinoと数点のパーツでサクッと作ることができました\(^o^)/実ステップ300行に満たないテスト自動化システムとはいえ投入している技術を並べてみると抽象的なソフトウェアのレイヤから具象的な物理レイヤまでQAはフルスタックだなあと改めて思いました5。プログラム更新に伴い測定をやり直しましたが、Excelからオシロとストップウォッチにコマンドを送って値を自動取得するようにしていなかったら手作業での転記で心が折れるところでした。自動化しておいて良かったです。時間を計るだけの単機能なテストツールにもかかわらず記事にまとめたら結構なボリュームになってしまいました。最後までご覧いただきありがとうございます。Testを行うで作成したテストコードをマージしたスケッチです。詳しくはこちらをご参照ください。1.8.9でビルドを確認しています6。VBAでもPythonでも拾えるしいったんCI/CDに組み込んだらストップウォッチの画面は見ないと思うので。待ち時間を数十ミリ秒より大きくしてもチャタリングが発生する場合はスイッチを別のものに交換することをお勧めします。チャタリング除去をdelay()で済ませているためこのストップウォッチはスイッチの品質に強く依存します。1.8.xはM5Stack用と分けています。↩テストベンチにテキストデータで制御する機器とバイナリデータで制御する機器が混在しても対応できるよう、バイナリ通信対応版を移植しています。↩テストツールの開発はソフトウェアのほかにも無鉛はんだでの実装やケース加工などが伴うこともあります。p.42)という話がありますが開発者が専門分野を深掘りするのに対してQAは横に広げていく印象があります。1.6.4ではArduinoUnitを組み込んだスケッチのビルドが通りませんでした。