外部プルアップと内部プルアップ

Arduinoのピンをプルする方法は、内部抵抗と外部抵抗の2つです。 INPUT_PULLUPの代わりに外部抵抗を使用する必要があるのはいつですか。

コメント

  • 私の経験から、唯一の違いは"外部プルアップ/プルダウンは簡単に置き換えることができます"また、回路を見るだけで"外部を見ることができます。抵抗器なので、'数か月後にデザインを理解しやすくなります"

回答

通常のアプリケーションでは内部抵抗または外部抵抗のいずれかを使用できます。

それぞれの方法にはそれぞれ独自の利点があります:

内部抵抗

  • 長所:コードを変更することで柔軟に変更できます
  • 長所:PCBサイズを縮小
  • 長所:コストを削減(非常に小さい)
  • 短所:MCUが熱くなる可能性がある

外部抵抗

  • Pr os:MCUの熱を減らす
  • 短所:PCBが組み込まれていると交換が簡単ではない
  • 短所:PCBサイズを大きくする

、プルアップ抵抗とプルダウン抵抗は、INPUTポートだけでなく、OUTPUTポートにも使用されます。 OUTPUTポートの場合。外部抵抗には別の利点があります。異なるI / O電圧を持つデバイスを接続する際の柔軟性です。たとえば、I2CハードウェアではハードウェアレベルのI2Cを参照してください

注:私が知る限り、執筆時点ではArduinoライブラリはINPUT_PULLDOWNをサポートしていません

コメント

  • 1。内部プルアップによって発生する熱はごくわずかです。 2.一部のボード(AVRベースのボードではない)にはINPUT_PULLDOWNがあります。

回答

“短所:MCUが熱くなる可能性があります”
そうではありません。 P = V ^ 2 / R、つまり5 * 5 / 20,000 = 1.25mWであり、プロセッサが熱くなることはありません。 Mega2560で80をすべて回し、それらをすべて低くすると、消費電力は0.1Wになります。

「注:私が知る限り、執筆時点では、ArduinoライブラリはINPUT_PULLDOWNをサポートしていません」つまりAtmega328P、 “1284、” 2560などのデバイスファミリにはプルダウン抵抗が内蔵されていないためです。プルアップのみ。データシートのセクション14「I / Oポート」を参照してください。

このプルアップは一般にI2Cプルアップには不十分であり、20Kから50Kの内部プルアップによって作成される立ち上がりエッジは非常に遅いです。外部4.7Kから約2.2K(接続されているI2Cデバイスの数によって異なります)が必要です。また、I2Cバスの仕様では、バスの起点(通常はプロセッサ)ではなく、バスの終点に配置する必要があると規定されています。

ボタンまたはスイッチから長いワイヤが接続されている場合は、一般に、外部プルアップを使用して、高低間の適切な切り替えレベルを確保するのに適したタイミングです。

回答

「Arduino言語」(つまり、pinMode()関数)はINPUT_PULLUPしか認識しません。

したがって、プルダウン抵抗には外部抵抗が必要です。

OUTPUT信号はフローティングではないため、PULLUP / PULLDOWN抵抗という用語は実際には適用されません。

さらに、内部プルアップ抵抗の値は調整できません。その値(20 .. 50k)が適切でない場合(I²Cには10k未満のものが必要)、外部抵抗が必要です。

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です