google-site-verification: google3bd66dd162ef54c7.html
FC2ブログ

アナログ気圧計2号機の電池電圧、1年目

 センサーにLPS-25Hを使ったアナログ気圧計を動かし始めて1年経ちました。ちょうど良い節目なので電池電圧の変化グラフを見てみます。運転開始時点の記事はこちら。

 どんな物なのか、ご存知無い方もいそうなので、先に外観の写真です。

▼アナログ気圧計
LPS-25Hを使ったアナログ気圧計
 アナログ時計のムーブメントを使って気圧を表示しています。

▼電池電圧変化
電池電圧変化

 予想通り電圧低下のペースが落ちてきました。このあたりの電圧でしばらく粘ってくれると思います。この調子なら、目標の電池寿命3年はいけそうな気がします。なお、電池は単三のアルカリ電池を3本使っています。

 ちなみに、3.3V まで電圧が下がると、指針を Low batterry 表示の位置へ移動させ、LEDを点滅させて電池切れを知らせる仕組みになっています (いるはずです) 。

 4本組で買った電池の残りの1本は、リファレンス用として気圧計の後ろのスペースに保管しているのですが、その電圧は、1.6256Vでした。初期電圧は1.6441Vだったので、1年間の電圧の低下は僅か 18.5mVだったということになります。ダイソーで4本100円で買った物ですが、なかなか優秀な成績だと思います。

◆まとめ
 機械式表示なんて時代遅れと言われそうです。でも、気圧のようにゆっくりとした変化を表示させるなら、この方法はものすごく省エネです。置き針式なので、待機時の表示部の消費電力はゼロです。それに液晶よりずっと見易いと思います。

 このまま電池の減り具合をモニターして、本当に3年間動くか確認しようと思っていたのですが、少し状況が変わってきました。というのは、この気圧計はスリープ中の消費電流を減らすのにdelayWDT という関数を使っていますが、最近その改良版の delayWDT2 という関数を作りました。新しい関数に差し替えれば消費電流が現在の半分になるはずなので、これを使わない手はありません。

 ということで、手の空いた時にプログラムを書き換えたいと思っています。その様子はまた記事で紹介したいと思います。

 なお、この気圧計については、LPS-25Hを使ったアナログ気圧計のカテゴリに関連記事をまとめています。興味のある方はご覧ください。

Arduino よもやま話 -4 (コンパイラの設定など)

1.まえがき
 今回は Arduino IDE のコンパイラの設定など、私が普段やっていることについて書いてみます。なお、使っている IDE のバージョンは 1.8.1 なので少し古いものです。

2.コンパイラの警告
 バージョン1.8 あたりから「環境設定」のメニューの中に、「コンパイラの警告」というメニューが追加され、ここで、ワーニングを出すレベルを調整出来るようになりました。

▼コンパイラの警告
IDEの環境設定

 デフォルトは「初期値」で、普段はこの状態で使えば良いと思います。

 ブログなどでプログラムを公開する場合、私はこの設定を「全て」にしてコンパイルしています。こうしておくと、エラーではないけど、ちょっと変な書き方になっている個所を指摘してくれます。指摘された個所を修正すれば、プログラムの品質が上がるので、みっともないコードを世の中に晒さないで済みます。具体的には、のような点を指摘してくれます。(もっとあったはずですが思い出せません)
 ・定義されただけで、使われていない変数
 ・符号付きと符号無し変数間の比較
 ・型の定義の矛盾

 ちなみに、たとえコンパイラの警告を「無し」にしても、無しになるのは警告(ワーニング)だけで、コンパイルエラーは無しにはなりません。つまり、文法エラーがあればコンパイルは中断されます。

▼ワーニングの例
ワーニングの例
 小さくて読めないですが、こんな感じでワーニングが出ます。ちなみにこれは、EEPROMライブラリを使った時に出るワーニングで、たぶんライブラリ内部の問題だと思います。これはライブラリそのものを修正しないといけないので、そのまま放置しています。

3.ついでに
 プログラムの話なので似たような話をもう少し触れておきます。
1) スケッチファイルの命名方法
 いろいろな流儀があると思いますが、私は先頭に年月日を表す数字6桁を YYYYMMDD形式で付けています。プログラムを修正した場合は、その日の日付を先頭に付けるので、どんどんファイルが増えていきますが、気にしないことにしています。

▼スケッチ名の例
コンパイルエラー無し

 これは先日記事を書いた delayWDT2 のデモプログラムですが、ファイル名(スケッチ名)は_20180418_delayWDT2.ino にしています。当然ですが、このファイルが入っているフォルダ名も、_20180418_delayWDT2 です。なお、スケッチ名は数字で始まってはいけないというルールがあるので、先頭の _ は ArduinoIDE が勝手に付けてくれます。

 こうしておくと、ファイル名(フォルダ名)でソートすればプログラムの新旧がすぐに判って便利です。なお当然ですが、プログラムの保存フォルダは、「環境設定」で「スケッチブックの保存場所」として指定している場所です。

2)スケッチのファイルのエンコード
 Arduino IDE で作ったスケッチのファイル ( .ino ファイル) は UTF-8 でエンコードされています。これは普段は意識しなくても大丈夫です。でも、ブログの記事からスケッチのファイルにリンクを貼って、これをWebブラウザで読もうとすると、ほとんどのブラウザでコメントの日本語が文字化けします。

 もちろん、一旦ダウンロードして、そのファイルをしかるべきプログラムで開けば正常に読めます。でも、ブラウザでそのまま内容を見たい場合がほとんどなので、そんな面倒なことはやってられません。また、スマホで閲覧している場合は、そんなことまで出来ません。

 そういう問題を回避するには、ファイルのエンコードをUTF-8 からShift-JISに変換しておけば大丈夫です。変換方法はいろいろありますが、私はエディタ(秀丸)でやっています。

 あと、ブログの記事の中にプログラムを直接表示させたい場合は、半角の<などがタグとみなされてしまう問題がありますが、話が長くなるのでそのあたりの話は割愛します。

◆まとめ
 コンパイラの警告を「全て」にしておくと、きれいなプログラムを書くための支援機能になります。

 一方で、Arduino は細かいことは考えずに、とにかく作って動かしましょう、という文化なので、あれこれワーニングを出すと、思考の妨げになって良くないという考え方もあると思います。

 あと当然ですが、コンパイラのワーニングはアルゴリズムの間違いまで指摘してはくれないので、元がしっかりとしていないとダメなのは間違いありません。
カレンダー
03 | 2018/04 | 05
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 - - - - -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード