Arduino IDEのdigitalRead()
関数とanalogRead()
関数は、Arduinoボードの異なるタイプの信号を読み取るために使用されます。これらの関数は、デジタル信号とアナログ信号をそれぞれ処理します。以下に、それぞれの関数の詳細と比較を示します。
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()
: デジタル信号を読み取り、ピンがHIGH
かLOW
かを判断します。シンプルなスイッチやボタンの状態確認に適しています。analogRead()
: アナログ信号を読み取り、ピンにかかる電圧の連続的な変化を数値として取得します。センサーからの詳細なデータ収集やアナログ信号の測定に適しています。
これらの関数を適切に使用することで、Arduinoのデジタルおよびアナログ入力ピンを効果的に活用し、さまざまなプロジェクトに応じたデータの取得と処理が可能になります。
コメント