#norelated #contents * A/D変換サンプル [#a65c1d55] A/D変換機能を使って、アナログな電圧を数値化する。~ 今回はこれとフォトトランジスタを使って、照度計を作ってみよう。~ ** 回路図 [#rac11946] #ref(ADConvTest_old.png,left,nowrap,A/D変換サンプル) LCDの回路に、フォトトランジスタ(NJL7502L)と、レンジ切り替え用の抵抗を4種類追加。~ データシートによれば、光が当たることにより流れる電流は、0.3μA〜10mA。~ てことは、オームの法則でこんな感じ?~ 最小レンジ:E=0.0000003(0.3μ)A*100000(100k)Ω=0.03V 最大レンジ:E=0.01(10m)A*100Ω=1V A/D変換の精度は10bit(1024段階)なので、基準の5Vを1024で割って、最小0.005Vくらいか。~ 最小レンジの方が微妙かと思ったけど、変化を捕まえられないことはないかね。~ まぁ、このあたりだと、データシートでは10ルクスにも届かないような範囲なので、ロウソク未満、月明かりくらい……? ---- で、書いて試してみてから気づいたんだけどね?~ 普段、AVRをいじってるのは夜の時間帯で、せいぜいが蛍光灯の明かりなわけですよ。~ 昼間だったとしても、窓と反対側の壁際にいるので、下手したら蛍光灯より暗いわけですよ。~ で、蛍光灯の下で、100kΩの抵抗をつけて、最小レンジで計ってみても、最大値はぎりぎり5V*(1000/1024)いくかどうかってとこで、あとちょっとなんだけど、オーバーフローするところまでいかないのね。~ 安い懐中電灯を買ってきて、直接当ててみても、同じくらいだった。~ てことは、流れてる電流は、I=(5V*1000/1024)/100000(100k)Ω=0.000049(49μ)Aなんで、これをルクスに換算すると、100〜200ルクス。~ レンジ切り替えをする意味がないようです。~ というわけで、今回は、100kΩの抵抗のみでいきます。~ 1MΩの抵抗とかがあれば、100kΩと切り替えて使えるかもね。~ #ref(ADConvTest.png,left,nowrap,A/D変換サンプル) ** ソースコード [#m3e37833] *** 基本動作 [#af0c8e19]