最初のセンサとして何がてっとり早いか。
http://qiita.com/azusa9/items/26e74e4e0d5773ce9c41
にてAD取込みの方法が紹介されている。
http://qiita.com/7of9/items/f74335021eff43857821
にて購入したフォトトランジスタがある。
ということでESP-8266のTOUTでフォトトランジスタの電流値をI-V変換して取込みをすることにした。
ただし、1Vを超えてはいけないので、下調べを再度する。
RPiの時は5VをNJL7502-Lに接続したが、今回は3.3Vを接続する。
抵抗1.1kΩでの測定
ブレッドボードで以下のように試してみた。
- CR-123Aの3V側をNJL7502-Lのコレクタに接続
- NJL7502-Lのエミッタ側に抵抗1.1kΩを接続
- 抵抗1.1kΩの電圧をデジボルで測定
以下となった
- 室内の蛍光灯 (21時現在) : 8.2mV
- フラッシュライト[正面から] : 最大 2300mV
1Vを超えてしまう。
抵抗470Ωでの測定
I-V変換の電圧が高いので抵抗の値を落とした。470Ωに変更。
- 室内の蛍光灯 (21時現在) : 0.7mV
- フラッシュライト[正面から] : 最大 330mV
今度は1V以内に収まる。これでAD取込をしてみる。
しかし抵抗の値を2.3倍程度落としたのに、電圧がそのx3ほど(6.9倍)落ちているのはなぜかよくわからない。
100Ωだった
TOUTでの取込み
上記の抵抗値は470Ωでなく100Ωだった。計算が合う。
ユニバーサル基板の実装に、NJL7502-Lと100Ωの抵抗をハンダ付けした。
http://qiita.com/azusa9/items/26e74e4e0d5773ce9c41
を参考にプログラムを以下とした。
extern "C" {
# include "user_interface.h"
}
void setup() {
Serial.begin(115200);
}
void loop() {
uint ADC_Value = 0;
ADC_Value = system_adc_read();
Serial.println("AD:" + String(ADC_Value));
delay(900);
}
以下のようになった
AD:1
AD:2
AD:2
AD:2
AD:1
AD:1
AD:2
AD:1
AD:1
AD:2
AD:26
AD:34
AD:29
AD:32
AD:34
AD:1
AD:1
AD:1
AD:1
AD:1
AD:1
AD:1
AD:1
AD:1
AD:1
ADの値が2桁になっている時は、フラッシュライトで照らしている時。
AD取込ができた。
0.7mVと330mVでだいたい470倍だが、そうなっていないのは0.7mVの方が1より小さくなりすぎているのだろう。
次の段階としては、この取込値をWR2側に送る仕組みの作成。
写真
フォトトランジスタは基板の右上に接続した。緑色のもの。
I-V変換の抵抗はESP-WROOM-02の右下(プッシュスイッチの左下)に接続。
配置があやしくなってきた。