3. デジタルリード

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

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

以下は、必要な関数です。

  • pinMode(pin, mode): 特定のピンを INPUT または OUTPUT として設定します。ここでは 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. ピン13について。

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

  3. アナログピン。

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

関連コンポーネント

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