アプリ版:「スタンプのみでお礼する」機能のリリースについて

Arduino Unoで図のような回路を組んでいます。
なぜか矢印のターミナルに触るとその先のスイッチがONになったと勘違いした動作をします。
なぜこのようになってしまうかと対策など、ご存知の方に教えていただけたらとおもいます。

最初はこの回路でなく、内蔵プルアップにしました(その時は4.7kΩは無かった)。内臓プルアップでこれと同じ誤動作が起きたのでそれを止めてこの形になりました。

ターミナルに触ると言うのはドライバの先やテスターのプローブの片方だけが触れると言う意味です。それは手持ちで、身体やその物のどこか一部が別の場所に触れていると言う事はありません。

図は、実際の基板のレイアウトとほぼ同じです。ターミナルの列から上はユニバーサル基板に乗っていて半田付けされています。Arduinoの電源はUSB経由です。

「Arduinoでターミナル等に触ると誤動」の質問画像

質問者からの補足コメント

  • 画像を追加します。

    「Arduinoでターミナル等に触ると誤動」の補足画像1
      補足日時:2017/02/28 18:38

A 回答 (3件)

回答NO.2です。


 すみません、回路でLEDの抵抗3本の共通ラインはGNDにつながってたのを見落としてました。
回路図を書き直して添付しました。この回路でそういう現象が起きるという事はAC電源の誘導電圧が大きいとしか考えられませんので添付図のように電解コンデンサC1とC2(それぞれ10uF/10V)を追加すれば誤動作はなくなると思います。
「Arduinoでターミナル等に触ると誤動」の回答画像3
    • good
    • 0
この回答へのお礼

xpopo様
重ね重ねありがとうござます。
本当に助かります。
すぐにやってみます。

お礼日時:2017/03/01 16:53

回答NO.1です。



図のMicroSWはN.C(Normaly Closed)なのを見落としてました。回答を以下のように訂正いたします。
 まず、LEDは赤色?それとも白色?どんなLEDを使ってますか?いずれにしてもLEDのドライブポートすべてがOFFの場合はINへは5Vから抵抗4.7kΩを経て抵抗4.7kΩを経てIN端子へ5Vが加わってますので誤動作は考えにくいです。
 しかし、LEDドライブのOUT端子のどれかがONになった場合、3本のLEDのアノードからそれぞれ4.7kΩを介して共通に結ばれたポイントは十分にLOW電圧まで落ちません。LEDのVF(赤色LEDで1.8V程度ある)のためにその共通ポイントは5Vからの抵抗4.7kΩとLEDにシリーズの抵抗4.7kΩ(LEDが1本だけドライブされてる場)で5VとVFの電圧を分圧されてしまいます。つまりLOWの状態がVF分かさ上げされてしまいます。ここでVFを1.8Vとした場合でかつLEDドライブが1本だけONだとした場合、INに入力される電圧VINは
  VIN=VF+(5V-VF)×4.7k/(4.7k+4.7k)=1.8V+(5V-1.8V)×0.5=3.4V
LEDが2本ONしてる場合は
  VIN=1.8V+(5V-1.8V)×2.35k/(4.7k+2.35k)=2.87V 
LEDが3本すべてONしてる場合は
  VIN=1.8V+(5V-1.8V)×1.57k/(4.7k+1.57k)=2.6V

となりますので、いずれにしてもINに入力されるLOWレベルが中途半端な電圧になってるようです。これではちょっとでもAC電源の誘起電圧が乗ると誤動作を起こしても不思議ではないですね。
更に、本来の動作も期待できないんじゃないでしょうか。
    • good
    • 0
この回答へのお礼

xpopo様
ご回答ありがとうございます。
実はこの隣にリレーでAC220Vの電磁弁を駆動しています。家で試していた時にはリレーの先が繋がっていませんでしたので問題は無かったようです。実際の物に取り付けてみたらこうなってしまいました。ご回答の趣旨納得いたしました。デジタル的にON-OFFだけ考えていたのが失敗です。
LEDは赤が2個、青1個で青だけが1秒サイクルで0.2秒間の点滅です。赤は異常時だけなので点灯していません。
対策ですが、GNDをちゃんとどこかアースに落とすべきなのでしょうか?

お礼日時:2017/02/28 23:40

この回路でLEDをドライブしているOUTポートはOpenドレインだとしますとスイッチが入っていない状態では図の+5Vの隣のINにつながっているラインはハイ・インピーダンスになってます。

LEDのOUTの内どれかがONしてLOWになってれば問題ありませんが、OUTすべてがOFFだとドライバなどでそのポイントを触っただけで体に誘起してるAC電源の50Hz又は60Hzの電圧(誘起電圧に寄りますが数Vから数十V)がINに加わってしまい誤動作になってしまいます。対策としてはIN端子とGND間に47kΩ程度以上の抵抗を取り付ければよいと思います。
    • good
    • 0
この回答へのお礼

xpopo様
ご回答ありがとうございます。No.2までいただいて嬉しく思います。

お礼日時:2017/02/28 23:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!