' INPUTとINPUT_PULLUPの違いは何ですか?

新しいArduinoでは、pinModeを次の3つの状態のいずれかに設定できます:OUTPUTINPUT、およびINPUT_PULLUP

このページの内容:

ArduinoのAtmegaチップには、アクセス可能な内部プルアップ抵抗(内部で電源に接続する抵抗)があります。外部プルダウン抵抗の代わりにこれらを使用したい場合は、pinMode()でINPUT_PULLUP引数を使用できます。これにより、動作が効果的に反転します。HIGHはセンサーがオフであることを意味し、LOWはセンサーがオンであることを意味します。

動作を反転することは間違いありません。ただし、それが行うのはそれだけではありません。

INPUT_PULLUPは何をしますか? INPUTとの違いは何ですか?また、どちらを使用するかをどのように決定しますか?

コメント

  • INPUT_PULLUPはIDE1.0.1で追加されました。どのArduinoボードを使用するかは関係ありません。すべてPULLUPをサポートしています。

回答

デフォルトはivですピンをINPUTとして設定するid = “5c62d1a9d4″>

。ピンが完全に切断されている場合、ランダムにHIGHLOWが読み取られます。 + 5Vまたは0Vに接続すると、明らかにHIGHまたはLOWと表示されます。

Arduinoの内部にあるAtmegaチップには、約20kオームの値の内部プルアップ抵抗があります。 (詳細については、 DigitalPins のドキュメントを参照してください)これらの抵抗は、オプションでINPUT_PULLUPを使用して内部で接続できます。これは、ピンと+ 5Vの間に約20kオームの抵抗を接続することと機能的(および電気的)に同等です。唯一の違いは、外部コンポーネントを必要とせず、プログラムの実行中にソフトウェアでオンとオフを切り替えることができることです。

では、なぜプルダウンではなくプルアップなのですか?いくつかの理由が考えられますが、ボタンやスイッチなどを「通常開」に配線する場合は、それらをアースに接続するだけで、+ 5Vを出力する必要はありません。ほとんどのボードはとにかくシールドの理由で大規模なグランドポアを使用して設計されていますが、実際にはグランドに接続することが理由です。

ARMチップなどの一部の注目のICにはプルアップとプルダウンの両方がありますが、8ビットAVRラインにはプルのみが付属しています-ups。HIGHは「開いている」、LOWは「閉じている」ことを覚えておく必要があります。

コメント

  • 賛成。参考までに、ドキュメントによると、内部プルアップは20Kであり、50Kと大きく異なるわけではありません。arduino.cc/en/Tutorial/DigitalPins

回答

前に注意してください1.0.1までは、digitalWrite()を使用してプルアップをオンにすることができます。それでも可能です。

コード:

INPUT_PULLUPは明らかにプルアップ抵抗をオンにするため、これは重要な違いです。ただし、あまり明白ではありませんが、1.0.1以降、INPUTを呼び出すだけで、プルアップが強制的にオフになります。 (以前は、プルアップの状態は同じままでした)。

プルアップがある場合とない場合のピンの動作を確認するには、次のビデオをご覧ください。

オシロスコープのフローティングピン: http://www.youtube.com/watch?v=dBIBFLYCjMM

プルアップを有効にした場合: http://www.youtube.com/watch?v=SAIw7LLVl-U

プルアップに関する完全なチュートリアルビデオ(INPUT_PULLUPがArduinoライブラリに追加される前に作成したことに注意してください): http://www.youtube.com/watch?&v=jJnD6LdGmUo

コメント

  • 非常に賢い。これを書いてくれてありがとう。賛成。

コメントを残す

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