照度センサー S9648 と S9648-100 の使い方を検討

浜松ホトニクス製の照度センサー S9648 と S9648-100 の使い分けって、どう決めるんだろう?

絶対定格電流が決まっていて、 S9648-100 は 5mA、S9648 は 10mA。 特性図見ると、S9648-100 の電流が高い部分は点線になっている。(当たり前かも)

USB から受け取る 5V の電圧を使うことを前提にすると、S9648-100 に直列に 1KΩをつなぐと、5mA = 5V / 1KΩ、ということで最大定格はクリアするっぽい。 色温度 2856k、100lux、5V のときに 0.18mA から 0.34mA の電流が流れるらしい。 Typical 値は 0.26mA 。 ということは 5mA 流れる場合は、 Typical の場合に 1923lux = 5 / 0.26 * 100lux、範囲としては 1470lux から 2778lux 。結構範囲があるのね。

S9648 の場合は、直列に 510Ωをつなぐと、 9.8mA = 5V / 510Ωになる。100lux、5V のときにTypical 値は 0.29mA。 10mA 流れる場合は、 3448lux。

大阪市立博物館のHPに照度の目安があって、蛍光灯照明事務所が 400 から 500lux、デパートの中が 500 から 700lux、パチンコ店内が 1000lux くらいらしい。室内に限定すると、1000lux 未満を計れるように設計しておけばいいのかもしれない。 太陽の光を直接計るときは桁が一つ以上多くなるようだ。

http://www.sci-museum.jp/publish/text/koyomi/66.html

桁が多くなると、 S9648 と S9648-100 と両方とも アウト。おおよそ 1500lux 未満なら S9648-100、 3500lux 未満までの範囲が必要なら S9648 という選択になるのだろうか。

ところで S9648-100 と 1kΩ、または S9648 と 510Ωの接続点から mbed アナログ入力につなぐと、ウッカリ外から直射日光が当たった場合に mbed のアナログ入力に 3.3V 以上がかかって壊れてしまうかも。 分圧したほうが良さそうだ。 3.3V / 5.0V = 0.66 なので、 S9648-100 と 360Ωと680Ωを直列につないで、360Ωと680Ωの接続点からmbed のアナログ入力につなぐのがいいかもしれない。 このときの分圧比は 680 / (360 + 680) = 680 / 1040 = 0.65 。 5V をかけたときに最大で流れる電流は 5V / 1040 Ω = 4.8mA 。 mbed のアナログ入力にかかる電圧は最大でも 3.25 V = 5 * 0.65

S9648 なら 180Ωと 330Ωを直列につないで、その2つの抵抗の接続点からアナログ入力に入れると、分圧比は 330 / (180 + 330) = 330 / 510 = 0.65 になるようだ

/media/uploads/strysd/s9648_first.png

S9648-100、 360Ω、680Ω の他に、2つの抵抗の合計の1040Ω に並列になるように 0.1μF を追加してサーバールーム内とオフィスの居室内を30秒間隔で計測したのがこちら。

/media/uploads/strysd/ieee1888new.jpg

計算式は、 mbed アナログ入力値(0から1の範囲) * (3300 mV / 680 ohm) / 0.26 mA * 100.0 lux = アナログ入力値 * 1866.5

/media/uploads/strysd/shoudo.png

サーバールームの場合には窓を通じて入ってくる日光の影響で、時間と共に lux が変動することがわかります。 居室内は約 850 lux のほぼ一定の明るさ。

このときの 360Ω と 680Ω の接続点の電圧を X mVとすると、

X / 680 Ω / 0.26 * 100 = 850 lux

X = 約 1500mV (1.5V)。 680Ω を流れる電流は 2.2mA のはず。

グラフにときどき異常値が現れますがこの原因は何でしょうね。

(2013年4月26日追記)

先週直射日光に照度センサーを当てると、約1400lux と算出されます。 上記の回路では、おそらくこれが計測できる上限なのでしょう。 このときの抵抗接続点の電圧 は約 2500mV = (1400lux /100 * 0.26)mA * 680Ω 抵抗で分圧する前は約 3.8V = 2.5V * 1040Ω/680Ω、電流は 3.64mA = 1400lux /100 * 0.26。

抵抗の比率を 360 : 680 からもう少し小さくしても良いかもしれませんね。

アナログ入力で扱える 3.3V の電圧範囲のうち、2.5V を使うので、4096 / 3.3 * 2.5 = 3103 段階。 2 を底とした場合の 3103 の対数を計算すると、 log 3103 / log 2 = 11.6 。12bit をほとんど活用できていると判断してもいいだろう。分解能は 1400lux / 3103段階 = 約 0.5 lux ということでよいかな?

(2013年9月23日追記)

グラフの異常値は、蛍光灯のちらつきに影響されるのではないかと考えてみた。 というわけで交流電源の 50Hz に由来する成分を除去できれば改善できるかもしれない。 S9648-100 のデータシートによれば 1/(2 * π * C * R) が遮断周波数。 R= 1040Ω、C=0.1μで計算すると、約 1.6KHz 。これだと高すぎる。周波数が 50Hz になるような C を求めると、3.2μF と計算される。これに近いのは 3.3μF と 4.7μF なので、0.1μF と入れ替えて試してみよう

そんなわけで試してみた結果がこちら。 R の合計は 1040Ωです。 /media/uploads/strysd/s9648withc.png

  • 0.1μF のみ積層セラミックで、4.7μF、33μF、47μFおよび100μFはアルミ電解コンデンサです。
    • 実際には、0.1μF は常に回路に存在していて、両方にクリップが付いたジャンパー2本を使って、他の容量のコンデンサーを回路に追加しました
  • 4.7μF だとあっても無くてもほとんど同じでした。これにはがっかり。
    • 実際には 0.1μF がもとからあるので4.8μFですが、これは使用した 4.7μF の電解コンデンサーの誤差20%の範囲内に入ってしまいます。
  • 33μF および 47μF でも多少ばらつきます。 47μF は多少良い感じ
  • 100μF では、ばらつきがあまり気にならなくなります。これなら良いんじゃない?
    • ちなみに R= 1040Ω、C=100μF のときの 遮断周波数は 約 1.6Hz と計算されます。意外に低い周波数でした。
  • 以上の結果を踏まえて、下記の回路を試してみることにしました
    • オペアンプは、入出力フルスイング(Rail To Rail) の NJM2732D (新日本無線)をボルテージ・フォロワーとして使用しました。
    • なお、照度センサー S9648-100 のノイズ低減方法が他にないか調べると、Interface 2013年1月号の「人間センシング」特集のなかに、田中 電工さんによる「実験! アナログ出力センサでちゃんと測るための勘どころ」という章があり、若干触れられていました。その章の例では、オペアンプによる電流ー電圧変換回路の負帰還に C=10μF と R=10kΩが使用されています。

/media/uploads/strysd/s9648result.png

15秒間隔でデータを取ってみた結果がこちら。最初のセットアップ中(10:36 から 10:40 )は、腕で光がさえぎられたりして不安定ですが、10:40 から 10:53 までの間と、10:53 以降との間できれいに段差ができているのがわかります。

下図は、センサーの真上の蛍光灯を付けたままにして、横方向に1.5m程度離れた場所の蛍光灯を消してみた結果です。

/media/uploads/strysd/s9648withc_res1.png

これだけだと、きれいな結果だけを切り取った疑いがあるかもしれないので、より長時間の結果を下図に載せます。

途中、11:08 から 11:11 の間の振幅が大きくなっていますが、これは意図的に 100μF をはずした期間です。はずした間は積層セラミックの 0.1 μF だけになっています。影響がはっきりわかります。

一番最初のグラフの後半と同じ場所 (Office Room) で測定したのですが、明るさの変化の仕方が見やすくなりましたね。

/media/uploads/strysd/s9648withc_res2.png

最後に、蛍光灯を使用せず、外部からの自然光の変化も計測してみました。天気はくもりで、ときどき雲の間から日が差しました。窓を通じて間接的に入ってくる光を1分間隔で測定しています。こちらも一番最初のグラフの前半と同じ場所 (Server Room )ですが、変化の様子がきれいにとらえられています。

/media/uploads/strysd/s9648withc_res3.png


Please log in to post comments.