ESP-WROOM-02 ユニバーサル基板実装 (以下ESP8266)
Analog Disocvery 2 (以下AD2)
関連 http://qiita.com/7of9/items/0256996d9cf94fd2abc8
S-12用の電源として1.5V 1AをON/OFFしようとしている。
リレーではESP8266のGPIOの出力電流が170mAは無理なのでMOSFETを調べ始めた。
P型MOSFET
MOSFETはまだよくわからないが、P型MOSFETを買ってみた。
2SJ681
http://akizukidenshi.com/catalog/g/gI-08358/
MOSFETをON/OFFするための電圧はVSGと思っていたが、実際にはVthという値でthはthresholdの略のようだ。
VSGは印加電圧の方でsource-gate間電圧のようだ。
2SJ681のVthは-0.8Vから-2.0V。この部分を理解してなかった。
回路図
きむ茶工房ガレージハウスさんの「P型FETの接続回路」を真似した。
R1, R2の抵抗は1.1kとした。
Vccの値をS-12駆動用の1.5Vとした。ESP8266の電源にはCR123A(3V)を使っている。
この時点で間違いを生じていることは後で気づいた。
code
以下のcodeをそのまま利用。
http://qiita.com/7of9/items/6bcce4bf70154d89c4b5
3.3secおきに300msecGPIO14のピンがHになる。
結果
AD2で波形を見た。
3.3秒おきに画像のような振れが見えるが、1.5Vが立つことはない。
間違った点
2SJ681のVthが-0.8Vから-2.0Vという部分を理解してなかった。
ESP8266のGPIOは3V立つのにマイナスとは?という疑問があった。
以下のように理解した。
MOSFETにかける電圧はVSG, source-gate間電圧である。sourceを基準としたgateの電圧、と見てみる。
VSGに関して、sourceにはVccの電圧がかかっている。Vccは今回1.5Vを使用。
GPIO14をH/Lした時、Lの時はgate電圧は0V(に近い値)になり、Vccは1.5Vなので、VSGは-1.5Vとなる。
2SJ681のVthは-0.8Vから2.0Vなので、VSGが-1.5Vではうまく動かなく、今回の結果となっている。
Vccを変えてみる
Vcc=2.5V
AD2にはSuppliesという機能により任意の電圧を出力することができる。これにより、Vccの値を1.5V以外で試してみた。
Vccを2.5Vにした場合、GPIO14がL時にVSGは-2.5Vとなる。Vthの範囲を超えてMOSFETが動作するはず。
通常は2Vが出力され、3.3secごとに300msec間0Vとなる。想定した動作に近いが、Vccを2.5Vにしているのに2Vまでなのが未消化。
Vcc=3V
Vccを3Vにしてみた。
通常は3Vが立って、GPIO14がHレベルの時に0Vになっている。
こちらは想定した通りの動作となった。
TODO
今回使用したP型MOSFET 2SJ681ではVthが-0.8Vから-2.0Vである。この場合、Vccに1.5Vとした場合に正常に動かないことを理解した。
N型MOSFETにするとVcc(1.5V)に関係なく、GPIO14の電圧がVthを超えることで、動作するのだろうか。とりあえずN型MOSFETを買ってみる。
あるいは、GPIO14の出力を正負逆転するようにする、というのも可能かもしれない。
インバーター用ICを使うことになるだろうか。
http://akizukidenshi.com/catalog/g/gI-10588/
OPアンプで反転増幅回路、増幅率1としたら、手持ちで試せるだろうか。