デジタル読み取りシリアルチュートリアル-抵抗値の計算


9

Arduino Digital Read Serialチュートリアルでは、シンプルなボタンの配線について説明します。私の質問は抵抗器を中心にしています。

なぜ抵抗器が必要なのですか?

私はこれを理解していると思いますが、間違っている場合は修正してください。入力ピンが低信号を読み取り、フロートしないようにするには、ボタンが押されていないときにピンをグラウンドに接続する必要があります。ボタンが押されると、5V信号がピンとグラウンドの両方に流れます。キルヒホフの電圧法則では、閉ループの合計電圧はゼロに等しい必要があるため、直接グラウンドに流れるこの5Vに対処する必要があります。そのため、ボタンとグランドの間に抵抗を配置しました。

抵抗値はどのように選択されましたか?

これは私には不明確です。オームの法則によれば...

resistance = voltage / current

これは5V電源であり、Arduino Uno仕様では、このピンは40 mAのDC電流を提供するとしています。そう..

resistance = 5V / 0.04A = 125 Ohms

デジタル・リード・シリアルチュートリアル、なぜ我々は、10Kオームの抵抗を持っていますか?やりすぎですよね?これは別の質問につながります。唯一の目的が電圧を消去することである場合、あまりにも多くの抵抗を配置できますか?

フィードバックをお寄せいただきありがとうございます。

回答:


6

あなたはとても近いです。抵抗はプルダウン抵抗として機能するためにあります。入力ピンがフローティングの場合は、ランダムな静電気を拾うアンテナにすぎません。重要なのは、(ボタンを押すことによって)正の電圧が供給されると、入力ピンが正の値を示すように、正のソースがプルダウン抵抗を「圧倒する」必要があるということです。

抵抗がない場合、入力ピンは、正または負を優先しない直接パスの途中で読み取ります。発生している直接的な短絡とは別に、arduinoがどの状態を読み取るかは、ランダムであるか、または電源装置の一部のプロパティであると思われます。それはおそらくまだ地面を読むでしょう。

抵抗を使用すると、信号は負荷抵抗の前に正に直接接続されて読み取られます。このようにして、必ずHIGH信号を取得します。

抵抗の正確なサイズはほとんど重要ではありません。小さすぎると電流を浪費しますが、抵抗が多すぎると、単にアースを切断するだけです。それらの間でうまく機能する非常に広い範囲の値があります。

arduinoピンが入力モードに設定されている場合、事実上電流が供給されないことに注意したいと思います。それは100メガオームの抵抗器と直列になっているので、改造することができます。詳細については、http://arduino.cc/en/Tutorial/DigitalPins を参照してください。


2
ここで重要なのは、抵抗を使用しない場合、スイッチが閉じているときに+5ボルトがアースに短絡していることです。直接短絡すると、電源装置が過負荷になり、電源装置の保護回路が作動し、Arduino全体がシャットダウンします。電流を低く保つのに十分な高インピーダンスの抵抗が必要です。私は通常100kの抵抗を使用します。これは、スイッチが開いているときに入力信号を0ボルトにプルするのに十分であり、わずか.00005 pasの電流しか流れないため、わずかな電流です。10k抵抗も機能しますが、これにより10倍の電流を流すことができます。
ダンカンC

2

なぜ抵抗器が必要なのですか?

Arduino入力には非常に高い抵抗があります。Atmega328のデータシートは、ADCに対して100 MOhmを示しています。このような高い値は適切ですが、寄生効果(抵抗、インダクタンス、静電容量)に対処するという欠点もあります。このような効果は、静電容量センサーとしても使用できます。

抵抗値はどのように選択されましたか?

抵抗は、入力抵抗よりも小さい任意の値である必要があります。10k以上は、入力リークを無効にするのに適しています。

ただし、内部プルアップ抵抗を使用する場合は、抵抗を省略することもできます。この場合、否定論理を扱います。

pinMode(3, INPUT);
digitalWrite(3, HIGH);

ピン3で測定HIGHし、ボタンをピンとグラウンドに接続する必要があります。内部I / 0プルアップ抵抗の値は50kです。


1

プルダウン抵抗が必要な理由については、すでにいくつかの良い答えを得ています。

要約すると、入力をグランドに接続して、入力が高と低の間で半ランダムに浮動しないようにする必要があります。抵抗器を使用して、スイッチを閉じるときに、+ 5V電源とアースの間に短絡が発生しないようにします。

ただし、別のポイント。Arduinoの入力には、オプションの内部ソフトウェア制御のプルアップ抵抗が含まれています。最初にピンを入力として設定してから、そのポートにHIGH値を書き込むと、プルアップ抵抗がアクティブになります。これにより、何も接続されていないときにピンがHIGHとして読み取られます。

その後、スイッチを+ 5Vの代わりにグランドに接続できます。次に、HIGH値を押されていないものとして扱い、LOW値を押されたものとして扱うようにコードロジックを変更する必要があります。これにより、外部抵抗が不要になるため、配線を少し簡略化できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.