秋月のI2C接続8x2LCDを使ってみた。
変換基板付きで\600、なしだともっと安い。
写真はLCDのみだが、後でRTCも繋いでみた。
LCDとRTCの制御自体はI2Cの作例がいくつもあるので割愛。
コマンド通りに叩くだけ。
検証したいのは、水晶とセラロックや、基板ごとの周波数精度の違い。
1ヵ月くらいのロギングをやるのに、ATmega+セラロックでOKか、水晶が必要かを見極めたい。
使用予定はLeonardoとUno 3(ATmega単体動作も)とArduino Nanoクローン。
温度ログなのでそこまでずれても痛くないけど、せめて1ヵ月で数分くらいの誤差に収めたいところ。
時間はFlexiTimer2でカウント。
LCD表示器に時計を表示して、電波時計を基準にずれを測定。
目視なので、1秒未満の誤差は防げない。
キッチリやるならRTCを正として差分を蓄積していくべき?
↓↓至ってシンプルなコード。
void setup() {
Wire.begin();
init_LCD();
FlexiTimer2::set(1000, timer);
FlexiTimer2::start();
pinMode(13, OUTPUT);
}
■結果
何と、正規品のArduino Uno 3が一番ずれずれ。
次いで、Ceralock動作のATmega。
Leonardoが最良なのは不思議ではないけど、Maid in Chinaのコピー品のNanoが大健闘。
たった400円なのに凄い。
MsTimer2にすると、Uno 3もいい結果なのかもしれない。
また、Nano以外はばらつきが小さいのでuSleepを適当に入れれば十分な精度になりそう。
■温度ロガー(Arduino Nano + microSD + RTC)
小さいし安いので、本番はArduino Nanoでロガー作成した。
結局、安いRTCが手に入ったのでArduinoのクロック評価は実は意味なし。
タッパーに入れて、サーバの温度データを外部で保存してみた。
会社だとN/W経由で情報を取れないので、ArduinoでMicroSDに貯めると非常に便利。
## 実験は'17/4~5月にやったが、まとめが延び延びになっていた。
ブログって、気を抜くとすぐに間が空いてしまいますね。
0 件のコメント:
コメントを投稿