スポンサーサイト

.-- -- スポンサー広告 comment(-) trackback(-)
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

続 LEDのキャパシタンス

.07 2011 LED-sens comment(0) trackback(0)
以前のエントリで書いたことの検証実験をやってみました。
LEDの温度を上げると「暗い」判定が出やすくなることの検証です。
これは簡単で、起動後(キャリブレーション後)LEDの端子にコテ当てて温度を思いっきり上昇させればよさそうです。
結果。コテ当てた途端「暗い」判定しかでなくなりました。放置してLEDが冷えてくると最初と同じ感度で影に反応してくれるようになりました。
よって前に書いた仮説は正しいのではないかと思われます(キャパシタンス以外にも高温でVfが低下するとかいろいろ考えられますがキャパシタンスの変化が一番大きなファクターだと思っています)。

さて、昨日久々に秋葉行ってきました。今週もちゃんと巡礼して一安心です。
特に買うものはなかったのですが、LED-sensプロジェクトでダイナミック制御するとき、ひとつのセルにLEDの他にトランジスタも乗せることになりそうなので日米で安く買えるチップトランジスタの型番を調べました。
# チップじゃないと影ができるので却下。さすがにチップじゃないトランジスタを基板の裏に配線するのは気持ち悪すぎるw
日米でおじさんに聞いたらチップトランジスタの在庫表をくれました。毎度日米では本当にお世話になります。
定番の2SC1815とか2SA1015とかはありませんでしたが、まぁこいつら生産終了予定なのでこの機会に他のトランジスタの特性とか調べることにします。


今更ですが、微小電流の測定は普通はこんな変な方法は使いません(少なくとも精度が欲しい時は)。
大抵は非常に大きな値の抵抗を使って電圧を大きく降下させてその電圧を測定して流れた電流を割り出すと思います。
また、今回の場合ならLEDに並列に数Mohmの抵抗を付けてLEDの両端の電圧を計測すればその抵抗を流れた電流(~LEDの起電力)が割り出せます。LEDの起電力なんてたかが知れていて数Mohm挟んでも数十mVにしかならないのでこれをOPアンプでリファレンス電圧と比較するのが正統派です。

ではなぜこんな変な方法で計測しているのかというと、たくさん並べてダイナミック制御をするときにひとつのセルに高い部品とかかさばる部品とかを使うのはどうしても避けたいからです(OPアンプはちょっと…)。
それから影の濃さも判定したいので(かつダイナミック制御のことを考えるとセンサからの線は1本にしたい)電流を時間に変換するという怪しい方法になっているのです。
当然安物なので部品の性能にばらつきはありますが、大体はキャリブレーションでカバーできると考えています。
ただ人体の接近によるノイズとかは対処しようがない気がしています。

スポンサーサイト

LEDのキャパシタンス

.05 2011 LED-sens comment(0) trackback(0)
いろいろ実験してみた結果、どうも点灯して消した直後と点灯しなかった場合でLEDの静電容量が結構違うのではないかという結論に至りました。
LEDのキャパシタンスで検索してもvoltage - capacitanceのグラフしかでてこなくて正確な値はわからないのですが、キャパシタ同様、温度によってかなり変化するのではないかと思われます。
アルミ電解や積層セラコンのキャパシタンスをプロットすると10~20度あたりで最大になる放物線っぽいグラフになります。
参考にしたLEDのvoltage - capacitanceグラフは-5Vで35pF, 2Vで75pFになる指数関数っぽいグラフになっていました。

今回はLEDの両端にかかる電圧はほぼ一定なのですが、ある程度点灯してから消した場合LEDの温度が上がっているのでキャパシタンスが小さくなり、トランジスタがOFFするまでの時間が短くなる気がします。
今回の場合は暗いときにLEDを点け、LEDが点くことでキャパシタンスが低下し、トランジスタがOFFしやすくなってますます暗い判定が出やすくなるというあまりよくない現象が起きていると思われます。
実際、暗いところに長時間放置(LEDが温まってキャパシタンス低下)してから明るいところに移すとなかなかLEDが消えてくれません(明るい判定が出てくれない)でした。

現在残っている課題は次の3つです。
  1. LEDのキャパシタンスの変化によると思われる感度の低下
  2. 全体的に遅い発振を繰り返している
  3. 人体の接近で変な反応を示す
3については人体の接近で明るい判定が出やすくなることもあればその逆もあり、原因の特定が難しいところです。
2についてはS/Wで適切な処理をすればなんとかなる気がしています(高周波なら前後数回の平均とかで対処できるのだが遅い発振なので補正が難航している)。

このプロジェクトは気分転換程度に進めていくことにして今日はParallel Computer Architectureの本を読み進めることにします。

ちょっと賢いLED

.03 2011 LED-sens comment(0) trackback(0)
一日LED-sensプロジェクトに時間を使ってしまいましたが、なんとかLEDで照度を測って明るさに応じてそのLED自身を光らせるというところまでできました。
詳細はそのうち書くとして、アイディアだけ。

前のエントリでダイオードを使うとリーク電流によって感度が鈍る(トランジスタがOFFになりやすい)と書きました。
また、LEDを一旦光らせるとその後はなかなかトランジスタがOFFにならないということも実験の結果分かっています。
それならLEDを一瞬だけ光らせてそのあと入力を見るようにすれば影響が相殺されそうです。

というわけでやってみました。
実際に波形を確認したわけではないのですが、おそらく次のようになっています。
  1. 光が十分強い時:トランジスタはOFFしない
  2. 光がそれなりに強い時:トランジスタはゆっくりOFFする
  3. 光が弱い時:トランジスタは割とすぐOFFする
屋外で日光のもとで実験するときは1と3を区別すればいいので簡単なのですが、屋内での実験では2と3を区別する必要があります。
そうすると一瞬だけLEDを点灯したあと、トランジスタがOFFするまでの時間を測り、その時間が一定値を超えるかどうかで2と3を区別すればよさそうです。
で、その一定値ってのは起動時にキャリブレーションするようにします。
# はじめは定数をちょこちょこ弄っていたのが時刻と共に部屋の明るさが変わって面倒になった。

今回はある程度暗くなったら照度に応じた強さでLEDをつけるようにしていて、ちゃんと影に反応してくれます。
ただ薄い影だとゆっくり点滅してしまっていてまだまだ改善の余地があります。

LEDで照度センサ

.02 2011 LED-sens comment(4) trackback(0)
まずは一ヶ月前にやっていたことのまとめです。

LEDに光を当てると微弱な電流が取り出せるので劣化版フォトダイオードとして使えるわけですが、その応用を考えてみました。
ggってみるとLED一つでは…とか室内光では…とかいろいろ書いてあります。

まぁそんなこと気にせず次の回路(上)で実験します。
うまくいけば左側のLEDに光を当てると右のLEDが光るはずです。




確かに室内光では無理でした。電気スタンドの電球のすぐ近くまで持って行ってなんとか反応するレベル。
これでは確かに無理があります。
相当な光を当てないとトランジスタがONにならない、つまりベース電圧が0.6Vにならないわけです。
原因はなんだ?

LEDを直列につないでも変化なし。
いろいろなところで書かれているようにLEDを並列につなぐと確かに少し改善された感じはあります。
ということはトランジスタがONにならない原因はLEDの発電の結果生じた電圧が低いことではなく、電流が少なすぎることのようです。

2SC1815のデータシートのグラフ(IBとVBE)を見ると、VBEが0.6VになるときIBは3uAほど流れていることがわかります。
つまり逆にIBが3uAに達しないとVBEは0.6Vに達することができず、スイッチがONにならないわけです。
ここまで原因が絞れれば後は簡単。エミッタフォロワ回路を突っ込めばいいだけの話。LEDを100個(2SC1815のベータ値)ほど並列につないで発電させたのと同程度の効果が得られます。

結局先ほどの図の下側の回路ができました。


適当なトランジスタで実験した割にはちょうどいい感じで室内光に反応してくれます。

問題はここからです。
LEDをただのセンサとして使っただけでは「フォトダイオードにすればいいじゃん」と言われて反論できません。
# フォトダイオードは150円くらい、この方法で自作すれば10円程度なので一応「ヤスモノプロジェクトの一環: 10円でできるフォトダイオード」という言い訳はできますがちょっと苦しい。

そこで照度に応じてこのLEDを点灯させたり消灯させたりしたくなるわけです。
そうするとこの回路のLEDのアノード側にAVRのピンを直結して、センサとして使うときは入力モードにし、LEDを光らせる時だけ出力モードにするというような制御をすればよさそうに思えます。

しかし、残念ながらAVRに接続した途端(当然入力モード)、トランジスタが常にONになってしまいました。
データシートを見ると…
リーク電流1uA程度。これは大きすぎる。
エミッタフォロワの入力段に1uA流したら出力段では100uA程度、確実にトランジスタはONします。

仕方がないので次のようにダイオードを挟んで、LEDを光らせる時だけHを出力し、センサとして値を読むときはLを出力するようにしてそこそこ改善できました。
しかしそれでもダイオードの逆方向電流の影響(数nA)で感度がかなり悪化してしまいました。


今度は逆方向リーク電流の小さいダイオードを探す仕事。
なかなか見つかりませんでしたが、「FETのS-Dを接続すると逆電流が数pAのオーダーの良質なダイオードとして使える」という記事を発見。
早速ゲート遮断電流が-1nA程度のFETを見つけて買ってきました。
これで万事解決。

と思ったのも束の間。
AVRからLを出力している間は想定通りセンサ入力に影響しなかったのですが、LEDを点灯させるために一旦Hを出力するとそのあとずっとトランジスタがONになってしまいました。

こんな感じで一ヶ月ほどこのプロジェクトは放置状態だったのですが、今日はちょっとこのプロジェクトを進めてみます。


 HOME 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。