STM32G0使ってみる4 -1wireデバイスをいろいろ使ってみる-

さて、珍しく飽きずに続いているSTM32G0シリーズですが今回は1wireデバイスを
使っていこうと思います。前々回の回路図より1wire用にGPIOポートを一つ開けており、
こいつをフルに活用します。


●DS18B20

金属ケースに入って見えませんが1wireデバイスの代名詞というべきデジタル
温度センサDS18B20です。いろんなマイコンで数多くの作例があり大人気のICです。

基本はVcc,Data,Gndの3線式ですが、ストロングプルアップを行いData線の電力
だけで動かす2線式の動作方式もあります。今回はお手軽に3線式で動かします。


私のSTM32G0のプロジェクトではすでに動作するようになっております。
DS18X20の#defineを有効にしてください。


動かし方はネット上に大量に作例がありますのでそちらに任せるとしてとりあえず
動作させたところです。今回は一つしかつけていませんがDS18B20はROM内に
固有IDがあり、同一のバス上に複数のDS18B20を接続することができます。


さて動作時のデータの波形を記録してみました。
固有IDを指定して温度を取得しているところです(CRC計算は実装してない頃のです)。
Picoscope5444DはDS18x20用のプロトコルアナライザ機能があり、どのような
状態かが一目でわかるので大変便利です!そうだね宣伝だね。



●Aosong製のDHT系の温湿度センサたち


DHT11から始まり今ではAHT20(これはI2C)まで進化しているAosung系の温湿度
センサモジュールが今回はその中でAM2303とAM2322を紹介します。


AM2303はDHT11よりも値段は高いですが性能が良い1-wireのモジュールです。
DS18B20とは互換性はなく独自のプロトコルでデータのやり取りを行います。


AM2322BはAM2303が一まわり小さくなったAM2322にプラスティックのケースで
覆われ、機器に取り付けてすぐに使用可能なモジュールとなっています。
こちらはI2CとDHT系の1wireと2通りのインターフェースを選ぶことができます。
SCLをGNDに落とした状態で電源を投入すると1wireモードになります。
動かし方についてはAM2303と同一になりますがI2cモードで動かすと逆に煩雑に
なってしまうので1wireモードのほうがめっぽう使いやすいです。



てわけでサクッと動かしてみました。ちゃんと検証はしていませんが温度や
湿度の精度もそこそこありそうで実用に足りると思います。

…が…


●AM2322の通信間隔の注意

↑SamplingPeriodが最小2Secだから2秒ごとにアクセスできる!と思い込み2秒ごとに
AM2322と通信して温湿度表示とかやると突然得られるデータがめちゃくちゃになり
しまいには何やってもデータを返さずへそを曲げで黙り込んでしまいます!!!!

AM2303ではこの変な現象にならないのでAM2322(さらにAM2322Bも)
固有の特性だと思います。
RockSolidHead Oyaji様の"AM2322を使ってみた その3 "の記事にて私が
遭遇したものと酷似した現象に遭遇しております。
I2Cで動作させても同じ感じですね。

先のブログの方はI2Cで動作させており、AM2322がへそ曲げたらAM2322の
電源を一旦落とす荒業で対応しております。ねむいさんは何秒間隔開けたら
へそ曲げないか検証してみました。

条件
 ・電源は+3.3V
 ・2秒から0.5秒刻みで間隔を広げていきへそ曲げないところを見つけます。
 
結果
 2.0Sec :即死
 2.5Sec :即死
 3.0Sec :即死
 3.5Sec :3分ほどおいてたら死んだ。1時間以上大丈夫なこともあり不安定。
 4.0Sec :1週間連続通電動作させても問題なし。
 4.5Sec :1週間連続通電動作させても問題なし。
 5.0Sec :1週間連続通電動作させても問題なし。

う〜〜んたぶん個体差のばらつきがあるから5Sec以上間隔開けるようにしましょ


ちなみにAM2322のセンサ素子そのものの反応時間は結構遅いです。

湿度は8Secあります。

温度に至っては最大30Secですって!
5Sec間隔どころか1分でもいいんじゃないかしら…

ちなみにt63%というのは1-exp(-t/τ)で示される一次遅れのシステムにおいて
tのタイミングで0->1のステップ入力を加えたときにtがτの時 1-exp(-1)≒0.6321...
話を戻すとこのセンサでは時定数τは温湿度変化が起こった時変化量の63.2%に
達する時間という意味となります。

すみませんこういう重要なこと今までちゃんと見ないまま動作させていましたが、
このt63%が小さいほど反応性がよいセンサということになりますね。これからは
新手のセンサが現れたら精度や確度だけでなく反応性にも焦点を向けてみます!


Go to top of page