« シャープ製関数電卓 EL-566 | トップページ | 東芝インパルス TNH-3A(2400mAh)JIS C8708:2019充放電試験 »

2020年10月27日 (火)

Arduino-UNO 12bit×4chアナログ データロガーほぼ完成

Arduino-UNO 12bit×4chアナログ データロガー計画中
ざっとカタチになりました。
全体はこんな回路。
Analog_log1

SDカード部はaitendo製の基板。
SDカードスロットDIP化きっと [WV-N09WG]
レベル変換ICでATmega328Pにつないでいます。

A/Dコンバータは12bit 4chのMCP3204
14ピンDIPなんで配線は楽。

4行x20文字の液晶で表示。
11_20201027152801

中身。
12_20201027152801

SDカードに記録する電文フォーマットに悩み中。
現在は、こんな具合。

# 1 Cyc time 2sec  ←設定値の一部をヘッダーに置いて
# 2 Ch1 Range 2V
# 3 Ch2 Range 2V
# 4 Ch3 Range 2V
# 5 Ch4 Range 2V
# 6 Rx chr max 40
# 7 Rx start 0
#LOG on 2sec
00:00:00 0.896 0.896 0.897 0.897 21.23
00:00:02 1.452 1.451 1.451 1.451 21.23
00:00:04 1.504 1.504 1.504 1.503 21.23
00:00:06 0.961 0.961 0.961 0.960 21.24
00:00:08 0.494 0.492 0.493 0.493 21.23
00:00:10 -0.034 -0.034 -0.034 -0.034 21.31
00:00:12 -0.553 -0.553 -0.553 -0.553 21.38
 経過時間 A/D ch1 ch2 ch3 ch4  外部シリアル電文
                     max 40文字

24時間を越えたら「1 00:00:01」と出力。

サンプリング周期は1秒、2秒、5秒、10秒、30秒
1分、2分、5分、10分、30分、1時間の11種類。

長期間の記録を考えると24時間「12:34:56」表記では
不足。
「日」を入れなければなりません。

ところが・・・
グラフ化はGNUPLOTを使います。
しかし、GNUPLOTの日時処理はカレンダーになっています。

例えば、時分秒の前に「日」を付加して「123 01:12:34」という
「日時分秒」という書式は扱えるんですが、これは経過日数が
123ということではなく、年の初めから123日目の日を示すのです。
ですんで、この数値範囲は「1~366日」。
ログ開始からの経過日、「最初は0」で「0 00:00:00」から始めたい。
でも、「0日」は許してもらえません。
最初のデータは「1 00:00:00」にしておかないと怒られます。
そして、1年、閏年もあるんで最大が366日。
これも越えられません。
これに従っていれば、日時のフォーマット変換が簡単に済ませられ
ます。

GNUPLOT、
  set xdata time
  set timefmt "%j %H:%M:%S"
で、「12 12:34:56」と日付+時刻が得られ(秒に換算されて)
ます。

いろんな機能があるGNUPLOT、何か方法はあるんでしょうが、
まだ探し出せてません。


※日時の規約
日と時分秒の間に「T」を入れるかどうか・・・
日時を分ける「T」、調べたらこんな規約があるんですな。
    https://ja.wikipedia.org/wiki/ISO_8601


※おまけでシリアル電文を付加
12bit 4chのA/Dデータに加えて、シリアルで受けた電文を
40文字だけ付加できるようにしています。
他の装置が出すデータをシリアルで受けて、SDカードに
同時に記憶しておこうという魂胆です。
バッファを大きくできないんで、1行40文字で制限してい
ます。
ただし、1行の文字の先頭何文字目までは捨てちゃえという
設定もありますんで、行のうちの必要な所だけを取り込
めるかと。

 

|

« シャープ製関数電卓 EL-566 | トップページ | 東芝インパルス TNH-3A(2400mAh)JIS C8708:2019充放電試験 »

電子工作」カテゴリの記事

ツール」カテゴリの記事

Arduino」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« シャープ製関数電卓 EL-566 | トップページ | 東芝インパルス TNH-3A(2400mAh)JIS C8708:2019充放電試験 »