質問: Arduino初心者です。 Arduinoのアナログ入力を使おうと思っております。 (1) アナログ入力端子は5.5V以上を印加すると壊れると聞きました。 ですが私の接続したいセンサーは希に5.5Vを超えることがあります。 (例えば1分に1秒ぐらい9Vぐらいが印加されてしまう) こういった場合、端子を保護する回路をつければよいかと思うのですが その回路を教えて下さい(センサーの出力を縮小させるのではなくクランプしたい)。 (2) 上記において、勉強した結果、ショットキーバリアダイオードで電源ライン(+5V端子)からクランプ すればいいようなことが書いてありました。確かに5V以上(例えば9V)がかかれば、ダイオードを 通って電源ラインに電流が流れると思うので、アナログ端子は守られる気がします。 しかしながら私の理論では、こんどは電源ライン(+5V端子)に逆電圧がかかるわけで、 結局ボードが壊れてしまうのではないかという気がします。私の理論のどこが間違っているか ご指摘お願い致します。
回答: 質問者さん自身が(2)で書かれている、「ダイオードによるクランプ回路」が一番簡単ですね。 その場合、ダイオードのアノードおよびアナログ入力が繋がっている端子と、測定したい電圧源との間に、ある程度の抵抗を入れます。 そうすることで、入力電圧が5Vを超えた場合でも、その電圧は主に抵抗が受け持ちますので、電源ラインに過電圧がかかることはありません。 (例えば、抵抗とLEDを直列にしたLED点灯回路を想像してみてください。これは言ってしまえば「+5V電源を、LEDというダイオードと抵抗を通して0V端子に直結」する回路です。でも、そういう回路を作ったからといって「0V端子にそれより5V高い電圧がかかって過電圧になる」ような心配はありません。ダイオードと抵抗の端子間が5Vという電圧を受け持ちますので、過電圧にならないのです。ダイオードクランプ回路も、ダイオードと抵抗が4Vの電圧を受け持ちますので、「+5V端子にそれより4V高い電圧がかかる」ようなことはないのです) そういったクランプ回路については、 このページなんかが参考になるでしょうか。 抵抗値は、小さすぎると、過電圧がかかったときに流れる電流が大きくなってしまいます。 でも、抵抗値が大きすぎると、その部分での電圧低下などで、電圧測定の精度が落ちてしまいます。 どのぐらいの抵抗値がいいかは、センサー側の出力インピーダンス(出力性能)によっても変わってきますので、試行錯誤してください。