3. デジタルリード

センサーは実世界の情報をキャッチし、デジタルやアナログのピンを通じてメインボードに情報を伝達します。これにより、コンピュータは現状を知ることができます。

したがって、Arduinoボードは、ボタンやIR障害回避モジュールのようなデジタルピンの値を読むことで、デジタルセンサーの動作状況を知ることができます。

以下は必要な関数です。

  • pinMode(pin, mode): 指定のピンを INPUTOUTPUT として設定します。この場合は INPUT として設定する必要があります。

    構文

    pinMode(pin, mode)

    パラメータ
    • pin: モードを設定するArduinoのピン番号。

    • mode: INPUT、OUTPUT、または INPUT_PULLUP。

  • digitalRead(pin): 指定されたデジタルピンからの値(レベル状態)を読み取ります。

    構文

    digitalRead(pin)

    パラメータ
    • pin: 読み取りたいArduinoのピン番号

    返り値

    HIGH または LOW

デジタルリードの例

int ledPin = 13;  // LEDはデジタルピン13に接続されています
int inPin = 7;    // プッシュボタンはデジタルピン7に接続されています
int val = 0;      // 読み取った値を保存する変数

void setup() {
   pinMode(ledPin, OUTPUT);  // デジタルピン13を出力として設定
   pinMode(inPin, INPUT);    // デジタルピン7を入力として設定
}

void loop() {
   val = digitalRead(inPin);   // 入力ピンを読み取り
   digitalWrite(ledPin, val);  // LEDをボタンの値に設定

注意事項と警告

  1. プルアップ & プルダウン。

    ピンがレベル信号を受け取っていない場合、 digitalRead() はランダムな、不確定な値を出力する可能性があります。入力ピンを既知の状態に指向させることで、プロジェクトの信頼性を高めることができます。 デジタル入力ピンに並列してプルアップまたはプルダウン抵抗を接続することが通常必要です。

    プルアップ抵抗を直接接続するのではなく、コード内でピンモードを INPUT_PULLUP に設定することもできます。例: pinMode(pin,INPUT_PULLUP) 。この場合、ピンはソフトウェア経由でAtmegaの内蔵プルアップ抵抗にアクセスし、プルアップ抵抗を接続するのと同じ効果が得られます。

  2. Pin13について。

    R3ボード上のすべてのデジタルピン(1-13)は digitalRead() として使用できます。 ただし、デジタルピン13は他のデジタルピンよりもデジタル入力として使用するのが難しいです。 これは、LEDと抵抗が接続されていて、ほとんどのボードにはんだ付けされているためです。 内蔵の20kプルアップ抵抗を有効にすると、オンボードのLEDと系列抵抗が電圧レベルを低くするため、期待される5Vの代わりに約1.7Vになります。これは、常にLOWを返すことを意味します。もしピン13をデジタル入力として使用する必要がある場合は、 pinMode() をINPUTに設定し、外部のプルダウン抵抗を使用してください。

  3. アナログピン。

    デジタルピンが不足している場合、アナログピン(A0-A5)もデジタルピンとして使用できます。 pinMode(pin,mode) でINPUTに設定する必要があります。

関連コンポーネント

以下は関連コンポーネントです。クリックして使用方法を学ぶことができます。