Arduino IDEのdigitalRead()関数とanalogRead()関数の比較

AruduinoIDE関数
Arduino
記事内には広告が含まれています。

Arduino IDEのdigitalRead()関数とanalogRead()関数は、Arduinoボードの異なるタイプの信号を読み取るために使用されます。これらの関数は、デジタル信号とアナログ信号をそれぞれ処理します。以下に、それぞれの関数の詳細と比較を示します。

analogRead関数に関してはこちらの記事もご覧ください。
digitalRead関数に関してはこちらの記事もご覧ください。

digitalRead() 関数

概要

  • 目的: デジタルピンからの入力信号を読み取ります。
  • 返り値: HIGH(高電圧、通常は5Vまたは3.3V)またはLOW(低電圧、0V)のいずれかの値を返します。

構文

int digitalRead(int pin);


  • pin: デジタルピンの番号(例: 2, 3, 4など)。

使用例

const int buttonPin = 2; // スイッチが接続されているピン

void setup() {
  pinMode(buttonPin, INPUT); // ピンを入力モードに設定
  Serial.begin(9600); // シリアル通信を開始
}

void loop() {
  int buttonState = digitalRead(buttonPin); // ピンの状態を読み取る

  if (buttonState == HIGH) {
    Serial.println("Button is pressed");
  } else {
    Serial.println("Button is not pressed");
  }
  delay(500);
}


  • 説明: スイッチの状態を読み取り、押されているかどうかをシリアルモニタに表示します。

analogRead() 関数

概要

  • 目的: アナログピンからの入力信号を読み取ります。アナログ信号は連続的な電圧レベルを示します。
  • 返り値: 0から1023の範囲の整数値。これは、通常10ビットの解像度で0Vから5V(または3.3V)をスケーリングした値です。

構文

int analogRead(int pin);


  • pin: アナログ入力ピンの番号(例: A0, A1, A2など)。

使用例

const int sensorPin = A0; // センサーが接続されているアナログピン

void setup() {
  Serial.begin(9600); // シリアル通信を開始
}

void loop() {
  int sensorValue = analogRead(sensorPin); // アナログピンからの値を読み取る
  Serial.print("Sensor Value: ");
  Serial.println(sensorValue);
  delay(500);
}


  • 説明: センサーからのアナログ値を読み取り、シリアルモニタに表示します。

digitalRead() と analogRead() の比較

1. 信号の種類

  • digitalRead(): デジタル信号を読み取ります。信号は明確にHIGH(高電圧)またはLOW(低電圧)であり、信号は二値です。
  • analogRead(): アナログ信号を読み取ります。信号は連続的な電圧レベルを示し、0から1023の範囲で表現されます(通常、10ビットの解像度)。

2. 使用されるピンの種類

  • digitalRead(): デジタルピン(通常は0から13までのピン)で使用します。
  • analogRead(): アナログ入力ピン(通常はA0からA5など)で使用します。

3. 返り値の形式

  • digitalRead(): HIGHまたはLOWの2つの値を返します。
  • analogRead(): 0から1023までの整数値を返します。値は入力電圧の比例として解釈されます。

4. 精度と解像度

  • digitalRead(): 単純なデジタル読み取りで、解像度はビット数や変化の範囲とは無関係です。
  • analogRead(): 10ビットの解像度で、0から1023までの範囲の値を提供し、より細かい電圧変化を読み取ることができます。

5. 用途

  • digitalRead(): スイッチやボタン、デジタルセンサーなど、単純なオン/オフ信号の読み取りに使用します。
  • analogRead(): センサーのアナログ出力(温度センサー、光センサー、ポテンショメータなど)、電圧レベルの測定に使用します。

まとめ

  • digitalRead(): デジタル信号を読み取り、ピンがHIGHLOWかを判断します。シンプルなスイッチやボタンの状態確認に適しています。
  • analogRead(): アナログ信号を読み取り、ピンにかかる電圧の連続的な変化を数値として取得します。センサーからの詳細なデータ収集やアナログ信号の測定に適しています。

これらの関数を適切に使用することで、Arduinoのデジタルおよびアナログ入力ピンを効果的に活用し、さまざまなプロジェクトに応じたデータの取得と処理が可能になります。

コメント

タイトルとURLをコピーしました