思いつきで

主に夏場のエアコン自動ON/OFFのために、USBで温度計るやつで定期的に室温監視してるのだけれども

こいつには、CapsLockを何秒か押していると、勝手に温度データがキー入力される。というやっかいな機能が付いていて、Excel等を開いておいて、capsを数秒押すと自動的にExcelに温度が入力されていく、というような使い方をするようだけど、コレがたまに暴走して勝手にそのモードに入ってしまうことがある。文字の送信だけならともかく、Enterキーも送ってきやがるので、デスクトップにあるアイコンとかが勝手に開かれていく阿鼻叫喚状態となる。
で、これを止めるだけなら、devconとかでこのusbデバイスを無効にしちゃえばいいんだけど、無効→有効 ではリセットにならないん。物理的に電源を切らないとリセットされないのよね。ということでUSBの電源をPC側から切れる方法ないかなーってことで考え中

いきなり完成だけども(わらい L字型の基板使ってるのは、そこらに落ちてたのがコレだったので使ってるだけ。

usbの電源線以外はオスメス直結で、電源のみPchMOSFET、手持ちが2SJ380しかないのでソレに繋げてある。usb-ttlコンバータが接続されていない、または電源入っていない場合はJ380のゲートはlowでusbの電源は接続されている状態。
ゲートにはpchトランジスタが繋げてあり、ttlコンバータの電源とdtrが接続されている。ttlコンバータは電源入れた直後dtrはONのようなので、pchトランジスタはOFFなのでmosfetはONのまま。PCからdtrをlowにしてやれば、mosfetはOFFとなり、USBの電源が切れると。
dtrは、.netなら serialPort1.DtrEnable = false; みたいにON/OFFが出来る。
これで物理的にusb-temperのON/OFFが出来るようにはなった。けども。


おすすめ