デジタルピンのモードを定義するINPUTとINPUT_PULLUP、OUTPUT
デジタルピンは、INPUTもしくはINPUT_PULLUP、OUTPUTとして利用できる。pinMode()を使ってピンのモードを変えると、ピンの電気的な振る舞いが変わる。
INPUTと設定されたピン
pinMode()によってINPUTと設定されたArduino(Atmega)のピンは、高インピーダ ンス状態となる。この状態は、例えば、100メガオームの抵抗が直列接続されて いてほとんど電流が流れないような状態と同様である。センサの値を読むには都合がいいが、LEDに電流を供給するのには向いていない。
スイッチを接続したピンをINPUTに設定し、そのスイッチが開いた状態のときにスイッチの値を読むと、そのピンは浮いている状態なので、読み取った結果は不定である。切断状態のスイッチの値を正しく読むためには、プルアップ抵抗もしくはプルダウン抵抗を用いる。この抵抗の目的は、切断状態のスイッチを確定した状態にすることである。10kΩの抵抗がよく用いられる。これは、浮いた状態を確実に防ぐために十分小さく、かつ、スイッチが閉じた状態に多くの電流を流さないために十分大きいためである。詳細はDigital Read Serialを参照のこと(英語です)。
プルダウン抵抗を利用すると、スイッチが開いている場合LOWとなり、スイッチを閉じるとHIGHになる。
プルアップ抵抗を利用すると、スイッチが開いている場合HIGHとなり、スイッチを閉じるとLOWになる。
INPUT_PULLUPと設定されたピン
Arduinoで使われているAtmegaチップはプルアップ抵抗(内部で電源に接続されている抵抗)を持っており、利用可能である。外部のプルアップレジスタの代わりに内蔵のプルアップレジスタを使いたい場合は、pinMode()でINPUT_PULLUPを設定すればいい。
INPUT_PULLUPの使用例はInput Pullup Serialのチュートリアル(英語)をⅢ保証のこと。
INPUTもしくはINPUT_PULLUPで入力に設定されているピンにマイナスの電圧や入力電圧(5Vもしくは3.3V)以上の電圧をかけると、ピンが壊れるかもしれない。
OUTPUTと設定されたピン
pinMode()によってOUTPUTと設定されたピンは、低インピーダンス状態となる。これは、他の回路に十分な量の電流を供給できることを意味する。Atmegaのピ ンは40mAまでの電流を他のデバイスや回路に供給したり吸い込むことができる。これは、LEDに電流を供給するには便利だがセンサの値を読むには不都合だ。 OUTPUTと設定されたピンは、接地や5V電源に直接接続されると壊れる可能性がある。Atmegaのピンから供給される電流はほとんどのリレーやモーターを駆動 するには不十分なので、接続のための回路が必要となる。
出力に設定されているピンに電圧をかけると、ピンが壊れるかもしれない。
オリジナルのページ
https://www.arduino.cc/reference/en/language/variables/constants/constants/
Last Revision: 2019/11/24
最終更新日
January 4, 2024