digitalRead

動作

Arduinoボードのピンの電圧状態をデジタルで読み取ります

電圧状態をデジタルで読み取る」とは、ピンの電圧が高いか低いかの2つの状態(デジタル)で読み取る、という意味です。

例えば、5V動作のArduino Unoシリーズでは、ピンの電圧が5Vであれば高い電圧(HIGH)、0Vであれば低い電圧(LOW)と読み取ります。

中間の電圧はどちらに読み取るかは状況によります。例えば4.9Vなど5Vに近い電圧はHIGH、0.2Vなど0Vに近い電圧はLOWとして読み取りますが、2.5Vなどの中間付近の電圧はどちらに読み取るかは不定になります(状況に応じてHIGHLOW)。詳しくは「補足」セクションを参照ください。

また、ピンが出力モードになっていても(pinMode(pin, OUTPUT);に設定していても)、digitalRead関数を使用することができます。詳しくは「補足」セクション「Arduinoボードの内部動作」セクションを参照ください。

主な用途

  • プッシュボタンやトグルスイッチ状態(ONかOFFか)の読み取り
  • デジタル人感センサーなどのデジタルで信号を出力するセンサーの読み取り
  • 他のモジュール(他のArduinoボードなど)のデジタル出力の読み取りなど
ポイント

digitalRead関数は、電圧が高いか低いかの2つの状態を読み取ります。
(「高い」と「低い」の2つの状態」=「デジタル」)

例えば温度に比例した電圧を出力する温度センサーなどの連続した電圧値を読み取ることはできません。そのような場合はanalogRead関数を使います。

書式

digitalRead(pin);
引数pin電圧を読み取るピンを指定します。
ピン番号(10など)やピン名(A5)で指定します。
戻り値HIGH(=1)またはLOW(=0)
(電圧が動作電圧に近い時はHIGH、0Vに近い時はLOW

使用例

次のコードにより、指定したピンの電圧値をデジタルで読み取ることができます。

int button_state = digitalRead(12);  // ピン番号指定 - 12ピンの電圧値を読み取って変数に代入
int switch_state = digitalRead(A5);  // ピン名指定 - A5ピンの電圧値を読み取って変数に代入
補足

ピン名に「A」が付いているアナログピン(A0〜A5またはA6)もdigitalRead関数で電圧状態を読み取ることができます。

サンプルスケッチ

12番ピンに接続したスイッチの状態を読み取り、読み取った結果をシリアルモニタに表示するスケッチです。

ボタンをクリックするとシミュレーターが動作します。スケッチを変更することもできます。変更した場合、シミュレーションを一度 ボタンをクリックして停止してから再度シミュレーターを開始してください。